Module:Πρότυπο:λ

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

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


export = {}

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


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

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

Lf['παραπομπή'] = function(args)
	local lc = args
	lc['κείμενο'] = ''
	lc['κείμενο γλώσσας'] = ''
	if lc['λήμμα παραπομπής'] ~= '' then
		-- for unattested terms with asterisc / για αμάρτυρους τύπους με αστερίσκο 
		if lc['λήμμα παραπομπής']:sub(1, 1) == '*' then 	-- λέξεις με 1ο γράμμα αστερίσκο - σταματώ στο 1ο γράμμα
			lc['κείμενο'] = '[[' .. lc['λήμμα παραπομπής']:sub(2, -1)	-- αγνοώ το 1ο γράμμα, αρχίζω απ' το 2ο - σταματώ στο 1ο γράμμα από το τέλος
			else
		lc['κείμενο'] = '[[' .. lc['λήμμα παραπομπής']
		end
    	--μας έχει δόσει γλώσσα παραπομπής (el ή κάτι άλλο)
    	--αν η γλώσσα παραπομπής έχει link
    	if lc['γλώσσα παραπομπής'] == 'gmy2' then -- γράφουμε τη μεταγραφή της μυκυναϊκής, και λαμβάνουμε τα Unicode σύμβολα
    		lc['κείμενο'] = '[[' .. require("Module:Linb-translit").gmy_get(lc['λήμμα παραπομπής']) .. ']]'
    		elseif lc['γλώσσα παραπομπής'] ~= '' and lc['γλώσσα παραπομπής'] ~= 'gmy2' and Ld['γλώσσες'][lc['γλώσσα παραπομπής']].link ~= '' then
    		lc['κείμενο'] = lc['κείμενο'] .. '#' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].link 
    		if	lc['εμφάνισης λέξης']  ~= '' then
    			lc['κείμενο'] = lc['κείμενο'] .. "|" .. lc['εμφάνισης λέξης']
    			
    		else
    			if lc['λήμμα παραπομπής']:sub(1, 1) == '*' then
    				lc['κείμενο'] = lc['κείμενο'] .. "|*" .. lc['λήμμα παραπομπής']:sub(2, -1)
    				else
    			lc['κείμενο'] = lc['κείμενο'] .. "|" .. lc['λήμμα παραπομπής']
    			end
    		end
    		lc['κείμενο'] = lc['κείμενο'] .. "]]"
    	-- switch |δ= γλ1, γλ2, γλ3, γλ4  ή γλ= 1, 2, 3, 4
    		if lc['εμφάνιση γλώσσας'] ~= '' then
				if lc['εμφάνιση γλώσσας'] == 'γλ1' or lc['εμφάνιση γλώσσας'] == '1' then  --(αγγλικά, γαλλικά)
				    lc['κείμενο γλώσσας'] =  '[[' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].name .. '|<span style="' .. style1 .. '">' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].name .. '</span>]]'
			    elseif lc['εμφάνιση γλώσσας'] == 'γλ2' or lc['εμφάνιση γλώσσας'] == '2' then -- (αγγλική γλώσσα, γαλλική γλώσσα) 
			        -- lc['κείμενο γλώσσας'] =  Ld['γλώσσες'][lc['γλώσσα παραπομπής']].cat -- αυτό βγαίνει με κεφαλαίο.
			        lc['κείμενο γλώσσας'] =  '[[' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].name .. '|<span style="' .. style1 .. '">' .. mw.getContentLanguage():lcfirst(Ld['γλώσσες'][lc['γλώσσα παραπομπής']].cat) .. '</span>]]'
			    elseif lc['εμφάνιση γλώσσας'] == 'γλ3' or lc['εμφάνιση γλώσσας'] == '3' then --(αγγλικής προέλευσης, γαλλικής προέλευσης, προέλευσης από τη γλώσσα αφρικάανς κλπ)
			        lc['κείμενο γλώσσας'] =  '[[' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].name .. '|<span style="' .. style1 .. '">' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].from .. '</span>]]'
			    elseif lc['εμφάνιση γλώσσας'] == 'γλ4' or lc['εμφάνιση γλώσσας'] == '4' then --(αγγλική, γαλλική)
			        lc['κείμενο γλώσσας'] =  '[[' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].name .. '|<span style="' .. style1 .. '">' .. Ld['γλώσσες'][lc['γλώσσα παραπομπής']].frm .. '</span>]]'
			    else
			        --do nothing. not yet implemented
			        mw.addWarning('Δώσατε λάθος τιμή στην παράμετρο δ. Παρακαλώ διαλέξτε μία από τις: γλ1, γλ2, γλ3, γλ4')
		        end    			
		        if lc['γλώσσα σε παρένθεση']  == '1' then
					lc['κείμενο'] =  "(''" .. lc['κείμενο γλώσσας'] .. "'') " .. lc['κείμενο']
				else
					lc['κείμενο'] = "''" .. lc['κείμενο γλώσσας'] .. "'' " .. lc['κείμενο']
				end
			end
			-- μεταγραφή, μετάφραση εντός συνδέσμου, μετάφραση χωρίς συνδέσμους (συμπληρώνει ο συντάκτης)
			if transliteration ~= ''  and translation ~= '' and translation_nolink == '' then
				return lc['κείμενο'] .. ' (<span style="font-size:95%; letter-spacing:1px;">' ..
				transliteration .. '</span>, ' .. '[[' ..translation .. ']])'
			end
			if transliteration ~= ''  and translation == '' and translation_nolink ~= '' then
				return lc['κείμενο'] .. ' (<span style="font-size:95%; letter-spacing:1px;">' ..
				transliteration .. '</span>, ' .. translation_nolink .. ')'
			end
			if transliteration ~= ''  and translation == '' and translation_nolink == '' then
				return lc['κείμενο'] .. ' (<span style="font-size:95%; letter-spacing:1px;">' .. transliteration .. '</span>)'
			end
			if transliteration == ''  and translation ~= '' and translation_nolink == '' then
				return lc['κείμενο'] .. ' ([[' .. translation .. ']])' 
			end
			if transliteration == ''  and translation == '' and translation_nolink ~= '' then
				return lc['κείμενο'] .. ' (' .. translation_nolink .. ')' 
			end

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


return export