Module:ετυμολογία

Από Βικιλεξικό
Πήδηση στην πλοήγηση Πήδηση στην αναζήτηση

Module:ετυμολογία/τεκμηρίωση
Το Module:ετυμολογία χρησιμοποιείται αυτή τη στιγμή στα πρότυπα

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

Επίσης, {{μσν}}, {{ετυμ-επιθ}} (επίθημα) και {{ετυμ-υποκ}} (υποκοριστικό).

Είναι όμως ακόμα σε πρωτόγονη μορφή.


--1. κανονικά το module θα πρέπει πάντα να εντάσσει το λήμμα σε κάποια κατηγορία ετυμολόγησης
--2. μάλλον δεν χρειάζεται το frame:preprocess
--αν χρειάζεται το προσθέτουμε...
export = {}

local Ld = {}
--Ld['γλώσσες'] = mw.loadData("Module:γλώσσες")
Ld['γλώσσες'] = mw.loadData("Module:Languages")
--πίνακας με τις τοπικές συναρτήσεις
local Lf = {}

--βρες το όνομα του Προτύπου που κάλεσε το Module
--αλλά μόνο αν κλήθηκε από σελίδα που κάλεσε το πρότυπο
Lf['πρότυπο'] =  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

Lf['σφάλμα'] =  function(astring)
    return '<div class="error">' .. astring .. '</div>[[Κατηγορία:Σελίδες με σφάλματα στο πρότυπο ετυμ]]'
end

export['από πρότυπο'] = function(frame)
    lc = {}
    lc['παράμετροι λήμματος'] = frame:getParent().args
    --lc['παράμετρος 1'] = lc['παράμετροι λήμματος'][1] or ''
    --lc['παράμετρος 2'] = lc['παράμετροι λήμματος'][2] or ''
    lc['τίτλος λήμματος'] = mw.title.getCurrentTitle().text
    lc['πρότυπο'] = Lf['πρότυπο'](frame)
    if lc['πρότυπο'] == 'αρχ' then return Lf['αρχαία'](lc) end
--δοκιμή
    if lc['πρότυπο'] == 'αρχ3' then return Lf['αρχαία'](lc) end

    if lc['πρότυπο'] == 'μσν' then return Lf['μεσαιωνική'](lc) end
    if lc['πρότυπο'] == 'ελνστ' then return Lf['ελληνιστική'](lc) end
    if lc['πρότυπο'] == 'ιε' then return Lf['ινδοευρωπαϊκή ρίζα'](lc) end
    if lc['πρότυπο'] == 'μτφδ' then return Lf['μεταφραστικό δάνειο'](lc) end
    if lc['πρότυπο'] == 'σμσδ' then return Lf['σημασιολογικό δάνειο'](lc) end
    --if lc['πρότυπο'] == 'μτφδ-τεστ' then return Lf['μεταφραστικό δάνειο'](lc) end
    if lc['πρότυπο'] == 'ετυμ-επιθ' then return Lf['επίθημα'](lc) end
    --ίσως προσωρινή, ίσως μόνιμη λύση.
    if lc['πρότυπο'] == 'ετυμ-υποκ' then return Lf['υποκοριστικό'](lc) end
    if lc['πρότυπο'] == 'ετυμ-μεγεθ' then return Lf['μεγεθυντικό'](lc) end
    --if lc['πρότυπο'] == 'μσν' then return Lf['μεσαιωνική'](lc) end
    --if lc['πρότυπο'] == 'μσν' then return Lf['μεσαιωνική'](lc) end

    --δοκιμαστικό πρότυπο Πρότυπο:Χρήστης/Xoristzatziki/τεσταρχ με {{#invoke:Πρότυπο:ετυμ|βασική}} και στο λήμμα {{Χρήστης/Xoristzatziki/τεσταρχ...
    if lc['πρότυπο'] == 'Χρήστης/Xoristzatziki/τεσταρχ' then return Lf['τεσταρχ'](lc) end

    --δοκιμαστικό πρότυπο Πρότυπο:Χρήστης/Xoristzatziki/τεστιε με {{#invoke:Πρότυπο:ετυμ|βασική}} και στο λήμμα {{Χρήστης/Xoristzatziki/τεστιε...
    if lc['πρότυπο'] == 'Χρήστης/Xoristzatziki/τεστιε' then return Lf['ινδοευρωπαϊκή ρίζα'](lc) end


    --δοκιμαστικό πρότυπο Πρότυπο:Χρήστης/Xoristzatziki/τεστυποκ με {{#invoke:Πρότυπο:ετυμ|βασική}} και στο λήμμα {{Χρήστης/Xoristzatziki/τεστυποκ|υποκ...
    if lc['πρότυπο'] == 'Χρήστης/Xoristzatziki/τεστυποκ' then return Lf['υποκοριστικό'](lc) end

    --για τα υπόλοιπα:
    --αν η πρώτη παράμετρος είναι κάποια από τις:
    --αρχ, μσν, ελνστ, ιε ΙΣΩΣ να πήγαινει στις παραπάνω συναρτήσεις
    --αλλά θέλει αλλαγές στις παραμέτρους (στη σειρά τους δηλαδή)
    --ή μπορεί να κάνουμε ενδιάμεση συνάρτηση που να δημιουργεί νέες παραμέτρους

    --αν η πρώτη αριθμητική παράμετρος είναι κενή επέστρεψε σφάλμα
    --(δεν υπάρχει ακόμα κάποια χρήση για τέτοιες περιπτώσεις...)
    if lc['παράμετροι λήμματος'][1] == nil then
        error( 'Δεν δόθηκε καμία παράμετρος!' .. "#" .. type(frame.args) .. "#" .. type(frame.getParent) .. "#" .. lc['πρότυπο'] .. "#")
    end

    --αν είναι υποκ
    --(ή κάποιες που μπορεί να προστεθούν αργότερα όπως πρόθημα, επίθημα κλπ κατά τα αγγλικά Template:suffix κλπ.)
    --πήγαινε στην αντίστοιχη συνάρτηση (δες εκεί για τις υπόλοιπες παραμέτρους)
    --Αλλιώς θεώρησε ότι είναι το iso της γλώσσας του ετύμου
    --και η επόμενη είναι το iso της γλώσσας του λήμματος
    --τότε η τρίτη παράμετρος θα είναι το λήμμα για παραπομπή
    --και η τέταρτη ίσως είναι το τι θα εμφανίζει
    if lc['παράμετροι λήμματος'][1] == 'υποκ' then return Lf['υποκοριστικό'](lc) end

    if lc['παράμετροι λήμματος'][1] == 'επίθημα' then return Lf['επίθημα'](lc) end


    --περίπτωση κανονικής ετυμολόγησης
   
    return Lf['απλή ετυμολόγηση'](lc)


end

--ΔΟΚΙΜΑΣΤΙΚΑ ΓΙΑ ΑΡΧΙΚΟ ΕΛΕΓΧΟ. ΝΑ ΑΦΑΙΡΕΘΟΥΝ. ----------------------------------------------
Lf['τεσταρχ'] = function(lc)
    return Lf['αρχαία'](lc)
end
Lf['τεστυποκ'] = function(lc)
    return Lf['αρχαία'](lc)
end
--ΤΕΛΟΣ ΤΟΥ ΝΑ ΑΦΑΙΡΕΘΟΥΝ. --------------------------------------------------------------------

--ΚΥΡΙΕΣ ΣΥΝΑΡΤΗΣΕΙΣ ΓΙΑ ΤΗΝ ΕΤΥΜΟΛΟΓΗΣΗ
--ΚΛΑΣΙΚΑ ΠΡΟΤΥΠΑ
Lf['αρχαία'] = function(lc)
    lc['κείμενο'] = "[[w:Αρχαία ελληνική γλώσσα|''αρχαία ελληνική'']] "
    return Lf['αρχαία τελικό'](lc)
end

Lf['ελληνιστική'] = function(lc)
    lc['κείμενο'] = "[[w:Ελληνική γλώσσα#Ελληνιστική κοινή|''ελληνιστική κοινή'']] "
    return Lf['αρχαία τελικό'](lc)
end

Lf['επίθημα'] = function(lc)
	lc['λέξη'] = lc['παράμετροι λήμματος'][1] or ''
	lc['επίθημα'] = lc['παράμετροι λήμματος'][2] or ''
	lc['iso γλώσσας'] = lc['παράμετροι λήμματος'][3] or ''
	lc['εμφάνιση'] = lc['παράμετροι λήμματος'][4] or ''
	--αν δεν υπάρχει iso γλώσσας τότε υποθέτουμε (κακώς;) ελληνικά
	if lc['iso γλώσσας'] == ''  then lc['iso γλώσσας'] = 'el' end
	lc['κείμενο'] = Lf['σφάλμα']('Δόθηκαν λάθος παράμετροι.')
		
	if (lc['iso γλώσσας'] ~= '') and  (Ld['γλώσσες'][lc['iso γλώσσας']] ~= nil)  then
		lc['ενότητα γλώσσας'] = Ld['γλώσσες'][lc['iso γλώσσας']]['link']
		if lc['εμφάνιση'] == '' then lc['εμφάνιση'] = lc['λέξη'] end
		if lc['λέξη'] ~= '' then
			--if lc['iso γλώσσας'] == 'el' then
				--lc['κείμενο'] = "[[" ..  lc['εμφάνιση'] .. "]]"
			--else
				lc['κείμενο'] = "[[" .. lc['λέξη'] .. "#" .. lc['ενότητα γλώσσας'] .. "|" ..  lc['εμφάνιση'] .. "]]"
			--end
			if lc['επίθημα'] ~= '' then
				--lc['παραπομπή επιθήματος'] = "[[-" .. lc['επίθημα']
				--if lc['iso γλώσσας'] == 'el' then 
					--lc['παραπομπή επιθήματος'] = lc['παραπομπή επιθήματος'] .. "]]"
				--else
					lc['παραπομπή επιθήματος'] = "[[-" .. lc['επίθημα'] .. '#' .. lc['ενότητα γλώσσας'] ..  "|-" .. lc['επίθημα'] .. "]]"
				--end
				lc['κείμενο'] = lc['κείμενο'] .. " + επίθημα " .. lc['παραπομπή επιθήματος']
				if mw.ustring.sub(lc['τίτλος λήμματος'],-mw.ustring.len(lc['επίθημα'])) == lc['επίθημα'] then
					lc['κείμενο'] = lc['κείμενο'] .. "[[Κατηγορία:" .. Ld['γλώσσες'][lc['iso γλώσσας']]['words'] .. " με επίθημα: -" .. lc['επίθημα'] .. "]]"
					--Αν χρειαστεί να αφαιρέσουμε το "Ελληνικές λέξεις"
					--if lc['iso γλώσσας'] == 'el' then
						--lc['κείμενο'] = lc['κείμενο'] .. "]]"
					--else
						--lc['κείμενο'] = lc['κείμενο'] .. " (" .. Ld['γλώσσες'][lc['iso γλώσσας']]['name'] .. ")]]"
					--end
				else
					mw.addWarning('Η ετυμολόγηση του επιθήματος δεν αναφέρεται στο λήμμα!')
				end 
			else
				mw.addWarning('Δεν δώσατε τιμή στη δεύτερη παράμετρο (επίθημα).')
			end
		else
			mw.addWarning('Δεν δώσατε τιμή στην πρώτη παράμετρο.')
		end	
	else
		mw.addWarning('Δώσατε λάθος τιμή στην παράμετρο iso γλώσσας της ετυμολογούμενης λέξης.')
	end
    return lc['κείμενο']
end

Lf['μεταφραστικό δάνειο'] = function(lc)
    lc['iso γλώσσας ετύμου'] = lc['παράμετροι λήμματος'][1] or ''
    lc['iso γλώσσας λήμματος'] = lc['παράμετροι λήμματος'][2] or ''
    lc['έτυμο'] = lc['παράμετροι λήμματος'][3] or ''
    lc['κείμενο'] = '[[μεταφραστικό δάνειο]] από την '
    if lc['iso γλώσσας ετύμου'] ~= '' then
        lc['γλώσσα ετύμου frm'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['frm'] or ''
        if lc['γλώσσα ετύμου frm'] == '' then
            mw.addWarning('Σφάλμα στην παράμετρο του iso της γλώσσας του ετύμου (1η παράμετρος).')
        else
            lc['κείμενο'] =  lc['κείμενο'] .. lc['γλώσσα ετύμου frm'] .. ' '
            lc['γλώσσα ετύμου'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['name'] or ''
            lc['ενότητα γλώσσας ετύμου'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['link'] or ''
            if lc['ενότητα γλώσσας ετύμου'] ~= '' and lc['έτυμο'] ~= '' then
                lc['κείμενο'] =  lc['κείμενο'] .. '[[' .. lc['έτυμο'] .. "#" .. lc['ενότητα γλώσσας ετύμου'] .. '|' .. lc['έτυμο'] .. ']]'
                lc['γλώσσα λήμματος'] = Ld['γλώσσες'][lc['iso γλώσσας λήμματος']]['name'] or ''
                if lc['γλώσσα ετύμου'] ~= '' and lc['γλώσσα λήμματος'] ~= '' then
                    lc['κείμενο'] =  lc['κείμενο'] .. '[[Κατηγορία:Μεταφραστικά δάνεια από τα ' .. lc['γλώσσα ετύμου'] .. ' (' ..lc['γλώσσα λήμματος'] .. ')]]'
                end
            end
        end
    end
    return lc['κείμενο']
end

Lf['σημασιολογικό δάνειο'] = function(lc)
    lc['iso γλώσσας ετύμου'] = lc['παράμετροι λήμματος'][1] or ''
    lc['iso γλώσσας λήμματος'] = lc['παράμετροι λήμματος'][2] or ''
    lc['έτυμο'] = lc['παράμετροι λήμματος'][3] or ''
    lc['κείμενο'] = '[[σημασιολογικό δάνειο]] από την ' or ''
    -- προσθέτω notext=1 (όταν επαναλαμβάνεται: σμσδ από την τάδε γλώσσα ή (σμσ) από τη δείνα γλώσσα (π.χ. [[συνδέω]])
    lc['όχικείμενο'] = lc ['παράμετροι λήμματος']['notext'] or ''
    if lc['όχικείμενο'] == '1' then lc['κείμενο'] = '' else lc['κείμενο'] = '[[σημασιολογικό δάνειο]] από την ' end
    -- τέλος notext-1
    if lc['iso γλώσσας ετύμου'] ~= '' then
        lc['γλώσσα ετύμου frm'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['frm'] or ''
        if lc['γλώσσα ετύμου frm'] == '' then
            mw.addWarning('Σφάλμα στην παράμετρο του iso της γλώσσας του ετύμου (1η παράμετρος).')
        else
            lc['κείμενο'] =  lc['κείμενο'] .. lc['γλώσσα ετύμου frm'] .. ' '
            lc['γλώσσα ετύμου'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['name'] or ''
            lc['ενότητα γλώσσας ετύμου'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['link'] or ''
            if lc['ενότητα γλώσσας ετύμου'] ~= '' and lc['έτυμο'] ~= '' then
                lc['κείμενο'] =  lc['κείμενο'] .. '[[' .. lc['έτυμο'] .. "#" .. lc['ενότητα γλώσσας ετύμου'] .. '|' .. lc['έτυμο'] .. ']]'
                lc['γλώσσα λήμματος'] = Ld['γλώσσες'][lc['iso γλώσσας λήμματος']]['name'] or ''
                if lc['γλώσσα ετύμου'] ~= '' and lc['γλώσσα λήμματος'] ~= '' then
                    lc['κείμενο'] =  lc['κείμενο'] .. '[[Κατηγορία:Σημασιολογικά δάνεια από τα ' .. lc['γλώσσα ετύμου'] .. ' (' ..lc['γλώσσα λήμματος'] .. ')]]'
                end
            end
        end
    end
    return lc['κείμενο']
end

Lf['αρχαία τελικό'] = function(lc)
    --για παραμέτρους που θα δείχνουν άλλη λέξη από τη λέξη παραπομπής
    --και για παραμέτρους που θα περιέχουν τη γλώσσα του ετυμολογούμενου λήμματος
    --καλύτερα να μπουν ονομαστικά
    --π.χ. γλ και λ:
    --γλ=la (ή it ή de κλπ.)
    --λ=λέξησεάλληπτώση
    if lc['παράμετροι λήμματος'][1] == nil then return lc['κείμενο'] end
    if lc['παράμετροι λήμματος'][1] == '' then
        lc['παραπομπή στο λήμμα'] = lc['τίτλος λήμματος']
    else
        lc['παραπομπή στο λήμμα'] = lc['παράμετροι λήμματος'][1]
    end
    lc['κείμενο'] = lc['κείμενο'] .. "[[" .. lc['παραπομπή στο λήμμα'] .. "#" .. Ld['γλώσσες']['grc']['link'] .. "|" .. lc['παραπομπή στο λήμμα'] .. "]]"
    return lc['κείμενο']
end

Lf['μεσαιωνική'] = function(lc)
    lc['κείμενο'] = "[[w:Ελληνική γλώσσα#Μεσαιωνική Ελληνική|''μεσαιωνική ελληνική'']]"
    if lc['παράμετροι λήμματος'][1] == nil then return lc['κείμενο'] end
    if lc['παράμετροι λήμματος'][1] == '' then
        lc['παραπομπή στο λήμμα'] = lc['τίτλος λήμματος']
    else
        lc['παραπομπή στο λήμμα'] = lc['παράμετροι λήμματος'][1]
    end
    lc['κείμενο'] = lc['κείμενο'] .. " [[" .. lc['παραπομπή στο λήμμα'] .. "#" .. Ld['γλώσσες']['gkm']['link'] .. "|" .. lc['παραπομπή στο λήμμα'] .. "]]"
    return lc['κείμενο']
end

Lf['ινδοευρωπαϊκή ρίζα'] = function(lc)
    --αν επεκτεθεί ώστε να προστεθούν διαφορετικές σελίδες σε διαφορετικές οικογένειες
    --θα πρέπει να προστεθούν ονομαστικές ή ανώνυμοι παράμετροι και να αλλαχθεί κάπως ο κώδικας εδώ
    lc['κείμενο'] = "[[w:Ινδοευρωπαϊκές γλώσσες|''ινδοευρωπαϊκή (ρίζα)'']] "
    lc['παραπομπή στο παράρτημα'] = lc['παράμετροι λήμματος'][1] or ''
    if lc['παραπομπή στο παράρτημα'] == '' then return lc['κείμενο'] end
    lc['κείμενο'] = lc['κείμενο'] .. "[[Παράρτημα:Αμάρτυρες λέξεις/ιε/*" .. lc['παραπομπή στο παράρτημα'] .. "|*" .. lc['παραπομπή στο παράρτημα'] .. "]]"
    return lc['κείμενο']
end

--ΥΠΟΠΕΡΙΠΤΩΣΕΙΣ
Lf['υποκοριστικό'] = function(lc)
	--αν χρειάζεται μπορεί να αλλαχθεί σε "της λέξης" ή ότι άλλο θέλουμε
    local TOYAPOTO = "του"
    lc['κείμενο'] = "[[υποκοριστικό|υποκοριστικό]] " .. TOYAPOTO .. " "
    --δεν έχει νόημα το κενό εδώ (δηλαδή στην πρώτη αριθμητική παράμετρο)
    --αν δεν υπάρχει σημαίνει ότι ο χρήστης θέλει μόνο ένα απλό "υποκοριστικό του"
    if lc['παράμετροι λήμματος'][1] == nil or lc['παράμετροι λήμματος'][1] == '' then return lc['κείμενο']  end
    lc['λέξη παραπομπής'] = lc['παράμετροι λήμματος'][1]
    lc['υποκοριστικό επίθημα'] = lc['παράμετροι λήμματος'][2] or ''
    lc['iso γλώσσας'] = lc['παράμετροι λήμματος'][3] or ''
    if lc['iso γλώσσας'] == '' then lc['iso γλώσσας'] = 'el' end
    --if lc['παράμετροι λήμματος']['γλ'] == nil or lc['παράμετροι λήμματος']['γλ'] == '' then lc['iso γλώσσας'] = 'el' else lc['iso γλώσσας'] = lc['παράμετροι λήμματος']['γλ'] end
    
    lc['ενότητα γλώσσας'] = Ld['γλώσσες'][lc['iso γλώσσας']]['link'] or ''
    --ευχής έργο θα ήταν να μπορούσαμε εδώ να κάνουμε έλεγχο αν είναι στη σωστή ενότητα γλώσσας. Μπορεί όμως να γίνει από μποτ.
    lc['γλώσσα για κατηγορία'] = Ld['γλώσσες'][lc['iso γλώσσας']]['name'] or ''

    lc['κείμενο'] = lc['κείμενο'] .. "«[[" .. lc['λέξη παραπομπής'] .. "#" .. lc['ενότητα γλώσσας'] .. "|" .. lc['λέξη παραπομπής'] .. "]]»"

    if lc['υποκοριστικό επίθημα'] ~= '' and lc['γλώσσα για κατηγορία']  ~= '' then
        lc['κείμενο'] = lc['κείμενο'] .. " + ([[κατάληξη]] [[υποκοριστικό|υποκοριστικού]]) "
        lc['κείμενο'] = lc['κείμενο'] .. "«[[-" .. lc['υποκοριστικό επίθημα'].. "#" .. lc['ενότητα γλώσσας'] .. "|-" .. lc['υποκοριστικό επίθημα'] .. "]]»"
        
        lc['κείμενο'] = lc['κείμενο'] .. "[[Κατηγορία:Υποκοριστικά σε -" .. lc['υποκοριστικό επίθημα'] 
        if lc['iso γλώσσας'] == 'el' then
        	lc['κείμενο'] = lc['κείμενο'] .. ']]'
    	else
        	lc['κείμενο'] = lc['κείμενο'] .. ' (' .. lc['γλώσσα για κατηγορία'] ..')]]'	
		end
        		
        --.. ' (' .. lc['γλώσσα για κατηγορία'] ..')]]'
    end
    return lc['κείμενο']
end

Lf['μεγεθυντικό'] = function(lc)
	--αν χρειάζεται μπορεί να αλλαχθεί σε "της λέξης" ή ότι άλλο θέλουμε
    local TOYAPOTO = "του"
    lc['κείμενο'] = "[[μεγεθυντικό]] " .. TOYAPOTO .. " "
    --δεν έχει νόημα το κενό εδώ (δηλαδή στην πρώτη αριθμητική παράμετρο)
    --αν δεν υπάρχει σημαίνει ότι ο χρήστης θέλει μόνο ένα απλό "μεγεθυντικό του"
    if lc['παράμετροι λήμματος'][1] == nil or lc['παράμετροι λήμματος'][1] == '' then return lc['κείμενο']  end
    lc['λέξη παραπομπής'] = lc['παράμετροι λήμματος'][1]
    lc['μεγεθυντικό επίθημα'] = lc['παράμετροι λήμματος'][2] or ''
    lc['iso γλώσσας'] = lc['παράμετροι λήμματος'][3] or ''
    --αν δεν έχει δοθεί η τρίτη παράμετρος θεωρούμε ότι είναι η ελληνική γλώσσα
    if lc['iso γλώσσας'] == '' then lc['iso γλώσσας'] = 'el' end
    --εναλλακτική πιθανή χρησιμοποίηση ονομαστικής παραμέτρου.
    --if lc['παράμετροι λήμματος']['γλ'] == nil or lc['παράμετροι λήμματος']['γλ'] == '' then lc['iso γλώσσας'] = 'el' else lc['iso γλώσσας'] = lc['παράμετροι λήμματος']['γλ'] end
    
    lc['ενότητα γλώσσας'] = Ld['γλώσσες'][lc['iso γλώσσας']]['link'] or ''
    --ευχής έργο θα ήταν να μπορούσαμε εδώ να κάνουμε έλεγχο αν είναι στη σωστή ενότητα γλώσσας. Μπορεί όμως να γίνει από μποτ.
    lc['γλώσσα για κατηγορία'] = Ld['γλώσσες'][lc['iso γλώσσας']]['name'] or ''

    lc['κείμενο'] = lc['κείμενο'] .. "«[[" .. lc['λέξη παραπομπής'] .. "#" .. lc['ενότητα γλώσσας'] .. "|" .. lc['λέξη παραπομπής'] .. "]]»"
    --αν έχει δόθεί το επίθημα ως δεύτερη παράμετρος, αλλά και η γλώσσα ως τρίτη
    if lc['μεγεθυντικό επίθημα'] ~= '' and lc['γλώσσα για κατηγορία']  ~= '' then
    	--δημιουργία «εμφάνισης»: ΧΧΧΧ + μεγεθυντικό επίθημα «-ΥΥΥ»
    	lc['κείμενο'] = "[[" .. lc['λέξη παραπομπής'] .. "#" .. lc['ενότητα γλώσσας'] .. "|" .. lc['λέξη παραπομπής'] .. "]]"
        lc['κείμενο'] = lc['κείμενο'] .. " + [[μεγεθυντικό]] [[επίθημα]] "
        lc['κείμενο'] = lc['κείμενο'] .. "[[-" .. lc['μεγεθυντικό επίθημα'].. "#" .. lc['ενότητα γλώσσας'] .. "|-" .. lc['μεγεθυντικό επίθημα'] .. "]]"
        
        --lc['κείμενο'] = lc['κείμενο'] .. "[[Κατηγορία:Μεγεθυντικά σε -" .. lc['μεγεθυντικό επίθημα'] 
        --Διαχωρισμός ονομασίας κατηγοριών.
        --Προσθέτουμε το όνομα της γλώσσας για άλλες γλώσσες.
        --if lc['iso γλώσσας'] == 'el' then
        	--lc['κείμενο'] = lc['κείμενο'] .. ']]'
    	--else
        	--lc['κείμενο'] = lc['κείμενο'] .. ' (' .. lc['γλώσσα για κατηγορία'] ..')]]'	
		--end
        		
        --.. ' (' .. lc['γλώσσα για κατηγορία'] ..')]]'
    end
    return lc['κείμενο']
end

--ΑΠΛΗ ΕΤΥΜΟΛΟΓΗΣΗ
Lf['απλή ετυμολόγηση'] = function(lc)
    --διαβάζουμε το iso γλώσσας ετύμου από την πρώτη παράμετρο
    lc['iso γλώσσας ετύμου'] = lc['παράμετροι λήμματος'][1] or ''
    --αν δεν υπάρχει ή είναι κενό επέστρεψε σφάλμα
    if Ld['γλώσσες'][lc['iso γλώσσας ετύμου']] == '' then
        return Lf['σφάλμα']('Η πρώτη παράμετρος (το iso της γλώσσας του ετύμου) είναι εσφαλμένη ή δεν δόθηκε!')
    end
    if lc['iso γλώσσας ετύμου'] == 'αρχ' then lc['iso γλώσσας ετύμου'] = 'grc' end
    if lc['iso γλώσσας ετύμου'] == 'μσν' then lc['iso γλώσσας ετύμου'] = 'gkm' end
    lc['ενότητα γλώσσας ετύμου'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['link'] or ''
    lc['γλώσσα ετύμου'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['name'] or ''
    --αν δεν υπάρχει καταχωρισμένο όνομα γλώσσας επέστρεψε σφάλμα
    if lc['γλώσσα ετύμου'] == '' then
        return Lf['σφάλμα']( 'Δεν βρέθηκε όνομα γλώσσας του ετύμου: "' .. lc['iso γλώσσας ετύμου'] .. '"!')
    end
    --και η δεύτερη αριθμητική παράμετρος πρέπει να υπάρχει
    --if lc['παράμετροι λήμματος'][2] == nil then
        --return Lf['σφάλμα']( 'Δεν δόθηκε δεύτερη παράμετρος (το iso της γλώσσας)!')
    --end
    lc['iso γλώσσας λήμματος'] = lc['παράμετροι λήμματος'][2] or ''
    --αν είναι κενή τότε υποθέτουμε τα ελληνικά
    if lc['iso γλώσσας λήμματος'] == '' then lc['iso γλώσσας λήμματος'] = 'el' end
    --αν δεν υπάρχει το iso επέστρεψε σφάλμα
    if Ld['γλώσσες'][lc['iso γλώσσας λήμματος']] == nil then
        return Lf['σφάλμα']('Η δεύτερη παράμετρος (το iso της γλώσσας της ετυμολογούμενης λέξης) είναι λάθος ή δεν υπάρχει ο κωδικός!')
    end
    lc['επίθετο γλώσσας'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['frm'] or ''
    if lc['επίθετο γλώσσας'] == '' then
        return Lf['σφάλμα']( 'Δεν βρέθηκε παράμετρος frm για τη γλώσσα του ετύμου: "' .. lc['iso γλώσσας ετύμου'] .. '"!')
    end
    --προετοιμασία παραπομπής
    lc['παραπομπή στη Βικιπαίδεια'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['wiki'] or ''
    if lc['παραπομπή στη Βικιπαίδεια'] ~= '' then
        lc['κείμενο'] = "''[[w:" .. lc['παραπομπή στη Βικιπαίδεια'] .. '|' .. lc['επίθετο γλώσσας'] .. "]]'' "
    else
        lc['κείμενο'] = "''" .. lc['επίθετο γλώσσας'] .. "'' "
    end

    --αν έχει δώσει και το έτυμο
    lc['έτυμο'] = lc['παράμετροι λήμματος'][3] or ''
    --θα δείξουμε το έτυμο αν δεν έχει δώσει 4η παράμετρο
    lc['λέξη που δείξουμε'] = lc['παράμετροι λήμματος'][4] or lc['έτυμο']

    if lc['έτυμο'] ~= '' then
        --αν έχει ενότητα η γλώσσα του ετύμου φτιάξε παραπομπή
        if lc['ενότητα γλώσσας ετύμου'] ~= '' then
            lc['κείμενο'] = lc['κείμενο'] .. "[[" .. lc['έτυμο'] .. '#' .. lc['ενότητα γλώσσας ετύμου'] .. '|' .. lc['λέξη που δείξουμε'] .. ']]'
        else
            lc['κείμενο'] = lc['κείμενο'] .. lc['λέξη που δείξουμε']
            --αν το έτυμο είναι διαφορετικό από τη λέξη που θέλει να δείξουμε βάζουμε το έτυμο σε παρένθεση
            --(αν βρεθεί περίπτωση που δεν θέλουμε να γίνεται, για κάποιον λόγο, μπορούμε να προσθέσουμε παράμετρο που να μην το έμφανίζει)
            if lc['έτυμο'] ~= lc['λέξη που δείξουμε'] then lc['κείμενο'] = lc['κείμενο'] .. '(' .. lc['έτυμο'] .. ')' end
        end
    end
    lc['γλώσσα λήμματος για κατηγορία'] = Ld['γλώσσες'][lc['iso γλώσσας λήμματος']]['words'] or ''
    lc['γλώσσα ετύμου για κατηγορία'] = Ld['γλώσσες'][lc['iso γλώσσας ετύμου']]['from'] or ''
    if lc['γλώσσα λήμματος για κατηγορία'] ~= '' and lc['γλώσσα ετύμου για κατηγορία'] ~= '' then
    	--ΚΑΝΩ ίδια line 366 και 368 διότι ΠΡΟΒΛΗΜΑ:αν η γλώσσα του λήμματος είναι η ελληνική δημιουργεί κατηγορία  Δάνεια από τα .. αλλιώς δημιουργεί κατηγορία ΧΧΧ λέξεις ΧΧΧ προέλευσης
    	if lc['iso γλώσσας λήμματος'] == 'el' then
    		lc['κείμενο'] = lc['κείμενο'] .. '[[Κατηγορία:' .. lc['γλώσσα λήμματος για κατηγορία'] .. ' ' .. lc['γλώσσα ετύμου για κατηγορία'] .. ']]'
    	else
        	lc['κείμενο'] = lc['κείμενο'] .. '[[Κατηγορία:' .. lc['γλώσσα λήμματος για κατηγορία'] .. ' ' .. lc['γλώσσα ετύμου για κατηγορία'] .. ']]'
        end
    else
        lc['κείμενο'] = lc['κείμενο'] .. '[[Κατηγορία:Eπιτήρηση:Πρότυπο:ετυμ με λάθος στη γλώσσα]]'
    end
    return lc['κείμενο']
end

export['δάνεια'] = function(frame)
    lc = {}
    lc['σφάλμα:άδειο'] = "[[Κατηγορία:Eπιτήρηση:Πρότυπο:δάνεια χωρίς παραμέτρους]]"
    lc['σφάλμα:iso'] = "[[Κατηγορία:Eπιτήρηση:Πρότυπο:δάνεια με λάθος σε γλώσσα]]"
    --lc['σφάλμα:χωρις 1'] = "[[Κατηγορία:Eπιτήρηση:Πρότυπο:δάνεια χωρίς πρώτη παράμετρο]]"
    lc['παράμετροι λήμματος'] = frame:getParent().args
    lc['τίτλος λήμματος'] = mw.title.getCurrentTitle().text
    
    lc['iso γλώσσας δανείου'] = lc['παράμετροι λήμματος'][1] or ''
    --lc['iso γλώσσας παραπομπής'] = lc['παράμετροι λήμματος'][2] or ''

    lc['παραπομπή γλώσσας δανείου'], lc['σφάλμα 1']  = export['εμφάνιση γλώσσας 1'](lc['iso γλώσσας δανείου'])
    if lc['παραπομπή γλώσσας δανείου'] == '' then
    
        return lc['σφάλμα:άδειο'] .. lc['σφάλμα:iso'] 
    end

    --έχουμε να στείλουμε κάποια γλώσσα, συνεχίζουμε.
    
    lc['κατηγορία γλώσσας δανείου'] = Ld['γλώσσες'][lc['iso γλώσσας δανείου']].cat or ''

    --η γλώσσα είναι έτοιμη να σταλεί: lc['παραπομπή γλώσσας δανείου']
    --δημιουργία κατηγορίας
    --δημιουργία λεκτικού «από»
    lc['από'] = Ld['γλώσσες'][lc['iso γλώσσας δανείου']].apo or ''
    if lc['από'] == '' then
        lc['για τα'] = Ld['γλώσσες'][lc['iso γλώσσας δανείου']].name or ''
        if lc['για τα'] ~= '' then
            lc['από'] = 'τα ' .. lc['για τα']
        end
    end
    
    if lc['παράμετροι λήμματος'][2] == nil then
    	--δεν έχει δεύτερη παράμετρο, δεν γνωρίζουμε τη γλώσσα αναφοράς στο λήμμα
        return lc['παραπομπή γλώσσας δανείου'] 
    else
        --έχει δεύτερη παράμετρο
        lc['iso γλώσσας λήμματος'] = lc['παράμετροι λήμματος'][2] or ''
        if lc['iso γλώσσας λήμματος'] == '' then
            --θεωρούμε ότι αφορά Δάνεια της ελληνικής γλώσσας
            lc['iso γλώσσας λήμματος'] = 'el'
            lc['κατηγορία'] = '[[Κατηγορία:Δάνεια από ' .. lc['από'] .. ']]'
        else
            --υπάρχει iso για τη γλώσσα του λήμματος
            lc['γλώσσα κατηγορίας'] = Ld['γλώσσες'][lc['iso γλώσσας λήμματος']].name or ''
            if lc['γλώσσα κατηγορίας']~= '' then
                --αν έχει name το βάζουμε
                lc['κατηγορία'] = '[[Κατηγορία:Δάνεια από ' .. lc['από'] .. " (" .. lc['γλώσσα κατηγορίας'] .. ")" .. ']]'
            else
                --αλλιώς δεν δημιουργούμε κατηγορία
                lc['κατηγορία'] = ''
            end
        end
    end
    --έλεγχος αν έχουμε λήμμα για παραπομπή
    local args2 = {}
    args2['λήμμα']  = lc['παράμετροι λήμματος'][3]
    --args2['λήμμα'] = 'for'
    args2['iso'] = lc['iso γλώσσας δανείου']
    args2['προεπιλεγμένο iso'] = 'el'
    lc['παραπομπή'] , lc['σφάλμα 2'] = export['παραπομπή'](args2)

    if lc['παραπομπή'] == '' then
        --δεν υπάρχει, επέστρεψε μόνο τη γλώσσα και την κατηγορία
        return lc['παραπομπή γλώσσας δανείου'] .. lc['κατηγορία']
    end
    return lc['παραπομπή γλώσσας δανείου'] .. ' ' .. lc['παραπομπή'] .. lc['κατηγορία']
end

--[=[Τι μπορούμε να κάνουμε;
:Να ελέγχουμε αν υπάρχει το λήμμα και η ενότητα γλώσσας 
:ώστε να στείλουμε ένα "ροζ" (ή άλλο χρώμα) σε περίπτωση που υπάρχει μεν λήμμα αλλά όχι η ενότητα γλώσσας]=]
export['παραπομπή'] = function(args)
    --δεν ελέγχουμε τον ονοματοχώρο
    --δέχεται προεπιλογή π.χ. για κενή παράμετρο
    --επιστρέφει 2 αλφαριθμητικά
    --1. την παραπομπή
    --2. κενό ή σφάλμα
    local lc = {}
    lc['λήμμα'] = args['λήμμα'] or ''
    lc['iso'] = args['iso'] or ''
    lc['προεπιλεγμένο iso'] = args['προεπιλεγμένο iso'] or ''

    if lc['λήμμα'] == '' then
        return '','λήμμα'
    end
    if lc['iso'] == '' then
        if lc['προεπιλεγμένο iso'] ~= '' then
            lc['iso'] = lc['προεπιλεγμένο iso']
        else
            return '','iso'
        end
    end
    lc['iso γλώσσας'] = Ld['γλώσσες'][lc['iso']] or ''
    if lc['iso γλώσσας'] == '' then
        return '','iso'
    end
    lc['κείμενο'] = lc['λήμμα']
    lc['γλωσσική ενότητα'] = Ld['γλώσσες'][lc['iso']].link or ''
    if lc['γλωσσική ενότητα'] ~= '' then
        lc['κείμενο']  = lc['κείμενο'] .. '#' .. lc['γλωσσική ενότητα']  .. '|' .. lc['κείμενο']
    end
    return '[[' .. lc['κείμενο'] .. ']]'
end

export['εμφάνιση γλώσσας 1'] = function(aniso)
    --επιστρέφει 2 αλφαριθμητικά
    --1. την παραπομπή ή τη «σκέτη» γλώσσα
    --2. κενό ή σφάλμα
    local lc = {}
    lc['iso γλώσσας'] = aniso or ''
    if lc['iso γλώσσας'] == '' then
        --υποχρεωτική η πρώτη παράμετρος iso γλώσσας
        --mw.addWarning('Δεν υπάρχει η πρώτη παράμετρος (παράμετρος γλώσσας ετύμου).')
        return '', 'σφάλμα:χωρίς iso'
    end
    --έλεγχος εγκυρότητας γλώσσας ετύμου
    if Ld['γλώσσες'][lc['iso γλώσσας']] == nil then
        --δεν υπάρχει το iso
        mw.addWarning('Δεν υπάρχει στο Module:Languages.' .. lc['iso γλώσσας'])
        return '', 'σφάλμα:iso'
    else
        lc['γλώσσα'] = Ld['γλώσσες'][lc['iso γλώσσας']].frm or ''
        if lc['γλώσσα'] == '' then
            --δεν υπάρχει το frm ή είναι κενό
            mw.addWarning('Δεν υπάρχει frm στο Module:Languages.' .. lc['iso γλώσσας'])
            return '', 'σφάλμα:χωρίς frm'
        end
    end
    --έχουμε να στείλουμε κάποια γλώσσα, συνεχίζουμε.
    --lc['κείμενο γλώσσας δανείου'] = ''
    lc['παραπομπή γλώσσας'] = lc['γλώσσα']
    lc['κατηγορία'] = Ld['γλώσσες'][lc['iso γλώσσας']].cat or ''
    if lc['κατηγορία'] == '' then
        --δεν έχουμε cat
        --αφήνουμε την παραπομπή σε: frm
        mw.addWarning('χωρίς κατηγορία στο Languages:' .. lc['iso γλώσσας'])
    else
        --θα παραπέμψουμε στην κατηγορία της γλώσσας
        lc['παραπομπή γλώσσας'] = '[[:Κατηγορία:' .. lc['κατηγορία'] .. '|' .. lc['παραπομπή γλώσσας']  .. ']]'
    end
    --πλάγια γραφή
    return "''" .. lc['παραπομπή γλώσσας'] .. "''" , ''
end

return export