>> Module:Πρότυπο:λ/τεκμηρίωση: Το Module:Πρότυπο:λ καλείται από το Πρότυπο:λ. Για τις γλώσσες χρησιμοποιείται το Module:Languages.
>> Module:Πρότυπο:λ/test


-- Done 2023.01.01 parameters in latin-letter terms
-- REPEAT similar to this module within [[Module:ετυμολογία]]
	-- also check similar, at [[Module:protypo:t]]
	-- also check similar, at [[Module:descendants]]
-- NOTE on font-size (larger for some scripts). They are not mentioned at [[MediaWiki:Common.css]]
-- self-link must be a separate Template. 
	-- See Ιστορικό, 25 Νοεμβρίου, it destoryed inner links (check [[Πάρις]])

export = {}

local Lf = {} --τοπικές συναρτήσεις
local Ld = {} --τοπικές μεταβλητές, μπορούν να έχουν τα ίδια ονόματα με τις συναρτήσεις
--local lc = {} σε όλες τις συναρτήσεις για τοπικές μεταβλητές μέσα σε αυτές
local languages = mw.loadData("Module:Languages")


export['λ'] = function(frame)
	
--	local lc = {}
	local args = frame:getParent().args
	style1 = 'color:#002000; border-bottom:1px dashed #dddddd;'		-- όπως στο [[Πρότυπο:style1]]
	word_target = args[1] or '' -- cannot write local word_target
	lang_iso = args[2] or ''
	word_show = args[3] or ''
	lang_show = args['δ'] or args['γλ'] or args['lang'] or ''
	lang_parenthesis = args['π'] or args['0'] or ''
	transliteration = args['tr'] or args['γ'] or ''	--μεταγραφή (τεστ στο [[βαλίτσα]])
	translation = args['t'] or args['μ'] or ''		--μετάφραση +link (τεστ στο [[βαλίτσα]])
	translation_nolink = args['tno'] or args['tnl']  or args['μχωρίς'] or ''		--μετάφραση no link (τεστ στο [[μπουρνούζι]])
	
	if word_target  == '' then
		word_target  = mw.title.getCurrentTitle().text	
	end
-- el (Modern Greek) as default
	if lang_iso  == '' then
		lang_iso  = 'el'
	end
	return Lf['παραπομπή'](args)	
end



export['παραπομπή σε λέξη'] = function(args)
	return Lf['παραπομπή'](args)
end



Lf['παραπομπή'] = function(args)
	local args = args
	mytext = ''
	lang_text = ''
	if word_target ~= '' then
		-- if asterisc is not wanted, use
		-- mytext = '[[' .. word_target:sub(2, -1)	-- αγνοώ το 1ο γράμμα, αρχίζω απ' το 2ο - σταματώ στο 1ο γράμμα από το τέλος
	-- for unattested terms with asterisc / για αμάρτυρους τύπους με αστερίσκο 
		if word_target:sub(1, 1) == '*' then 	-- λέξεις με 1ο γράμμα αστερίσκο - σταματώ στο 1ο γράμμα
			mytext = '[[' .. word_target	-- we accept asterisc
		else
			mytext = '[[' .. word_target
		end

    	--μας έχει δόσει γλώσσα παραπομπής (el εννοείται πάντα)
    	--αν η γλώσσα παραπομπής έχει link
    	if lang_iso ~= '' and languages[lang_iso] ~= '' and languages[lang_iso].link ~= '' then
    		mytext = mytext .. '#' .. languages[lang_iso].link 
    		if	word_show  ~= '' then
    			lang_script = languages[lang_iso]['script'] or ''
			  	if languages[lang_iso]['script'] == 'Arab' -- ar, fa, ota, ps, ur
			  	then		
    			mytext = mytext .. '|<span style="font-size:140%; line-height:1em;">' .. word_show
			  	elseif languages[lang_iso]['script'] == 'Hani' -- zh, ja (for both Han characters kanji & Kata (katakana))
				then
				mytext = mytext .. '|<span style="font-size:115%; line-height:1em;">' .. word_show
    			else
    			mytext = mytext .. '|' .. word_show
				end
			else -- no word_show
-- We accept asterisc. check [[πατήρ]] If not, then mytext = mytext .. "|*" .. word_target:sub(2, -1)
    		-- αστερίσκος asterisc
				if word_target:sub(1, 1) == '*' then
					mytext = mytext .. "|<i>" .. word_target .. "</i>"
    			else
    			lang_script = languages[lang_iso]['script'] or ''
			  	if languages[lang_iso]['script'] == 'Arab' -- ar, fa, ota, ps, ur
			  	then		
    			mytext = mytext .. '|<span style="font-size:140%; line-height:1em;">' .. word_target
			  	elseif languages[lang_iso]['script'] == 'Hani' -- zh, ja (for both Han characters kanji & Kata (katakana))
				then
				mytext = mytext .. '|<span style="font-size:115%; line-height:1em;">' .. word_target
    			else
    			mytext = mytext .. '|' .. word_target
				end
				end
    		end
	
			-- missing word, have script e.g. [[ἀτύζομαι]] {{l|?|hit|tr=ḫatuki-|t=τρομερός|lang=4}}
			if word_target == '?' then
			mytext = '<span title="Λείπει η γραφή της λέξης">?</span>' .. '[[Κατηγορία:Ελλείπουσα γραφή (' .. languages[lang_iso].name .. ')'
			end
			-- gmy2 γράφουμε τη μεταγραφή της μυκηναϊκής (gmy), και λαμβάνουμε τα Unicode σύμβολα
			if lang_iso == 'gmy2' then
				mytext = '[[' .. require("Module:Linb-translit").gmy_get(word_target)
			end
    			lang_script = languages[lang_iso]['script'] or ''
			  	if languages[lang_iso]['script'] == 'Arab' -- ar, fa, ota, ps, ur
			  	then		
    			mytext = mytext .. '</span>]]'
			  	elseif languages[lang_iso]['script'] == 'Hani' -- zh, ja (for both Han characters kanji & Kata (katakana))
				then
				mytext = mytext .. '</span>]]'
    			else
    			mytext = mytext .. "]]"
				end
			
			
-- text for language names
    	-- switch |δ= γλ1, γλ2, γλ3, γλ4  ή γλ= 1, 2, 3, 4 Expressions as in [[Module:Languages]]
    		if lang_show ~= '' then
				if lang_show == 'γλ1' or lang_show == '1' then  --(αγγλικά, γαλλικά)
				    lang_text =  '[[' .. languages[lang_iso].name .. '|<span style="' .. style1 .. '">' .. languages[lang_iso].name .. '</span>]]'
			    elseif lang_show == 'γλ2' or lang_show == '2' then -- (αγγλική γλώσσα, γαλλική γλώσσα) 
			        -- lang_text =  languages[lang_iso].cat -- αυτό βγαίνει με κεφαλαίο.
			        lang_text =  '[[' .. languages[lang_iso].name .. '|<span style="' .. style1 .. '">' .. mw.getContentLanguage():lcfirst(languages[lang_iso].cat) .. '</span>]]'
			    elseif lang_show == 'γλ3' or lang_show == '3' then --(αγγλικής προέλευσης, γαλλικής προέλευσης, προέλευσης από τη γλώσσα αφρικάανς κλπ)
			        lang_text =  '[[' .. languages[lang_iso].name .. '|<span style="' .. style1 .. '">' .. languages[lang_iso].from .. '</span>]]'
			    elseif lang_show == 'γλ4' or lang_show == '4' then --(αγγλική, γαλλική)
			        lang_text =  '[[' .. languages[lang_iso].name .. '|<span style="' .. style1 .. '">' .. languages[lang_iso].frm .. '</span>]]'
			    else
			        --do nothing. not yet implemented
			        mw.addWarning('Δώσατε λάθος τιμή στην παράμετρο δ. Παρακαλώ διαλέξτε μία από τις: γλ1, γλ2, γλ3, γλ4')
		        end    			
		        if lang_parenthesis  == '1' then
					mytext =  "(''" .. lang_text .. "'') " .. mytext
				else
					mytext = "''" .. lang_text .. "'' " .. mytext
				end
			end
			
-- text for transliterations μεταγραφή, μετάφραση εντός συνδέσμου, μετάφραση χωρίς συνδέσμους (συμπληρώνει ο συντάκτης)
			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

		else
			mw.addWarning('Η τιμή της δεύτερης παραμέτρου (παράμετρος γλώσσας) δεν είναι σωστή ή έχει ελλιπή στοιχεία στο Βικιλεξικό. Δεν θα δημιουργηθεί εσωτερική παραπομπή στη γλώσσα.')
			mytext = mytext .. ']]'
    	end
	
	end -- close if word_target ~= ''
return mytext	
end


return export