Hoppa till innehållet

Modul:härledning

Definition från Wiktionary, den fria ordlistan.

Dokumentation för denna modul finns på /dok (redigera), /test


Syfte

[redigera]

Implementerar {{härledning}}.

Behövda submoduler

[redigera]

Spårningskategorier

[redigera]
local export = {}

local lang = require("Modul:lang")
local lk = require("Modul:link")
local catsort = require("Modul:sort")

function export.getWikitext(frame)
	local args = frame:getParent().args

	if (not args[1]) or (not args[2]) or (not args[3]) then
		return "[[Kategori:Wiktionary:härledning/Saknar parametrar]]"
	end
	if (args[1]=='') or (args[2]=='') or (args[3]=='') or (args[4]=='') then -- missing [4] legal, empty string NOT legal
		return "[[Kategori:Wiktionary:härledning/Saknar parametrar]]"
	end

	if args["språk"] or args["inled"] or args["punkt"] or args[5] then -- use "Modul:param"
		return "[[Kategori:Ogiltiga parametrar]][[Kategori:Ogiltiga parametrar (härledning)]]"
	end

	if (lang.isObviouslyInvalid(args[1]) or lang.isObviouslyInvalid(args[2]) and args[2] ~= "xx") then
		return "[[Kategori:Uppenbarligen ogiltig språkkod]][[Kategori:Uppenbarligen ogiltig språkkod (härledning)]]"
	end

	if ((not lang.hasLanguage(args[1])) or not (lang.hasLanguage(args[2], "alsoetym")) and args[2] ~= "xx") then
		return "[[Kategori:Okänd språkkod]][[Kategori:Okänd språkkod (härledning)]]"
	end

	local opening = ""
	local period ="."

	local ucfirst_entry_language_name = lang.getLanguageUCFirst(args[1])
	local lc_origin_lang_name         = lang.getLanguage(args[2], "alsoetym")
	local origin_lang_word            = args["genitivform"] or lc_origin_lang_name

	if args[2] == "grc" then
		origin_lang_word = "grekiska"
	elseif args[2] == "gd" then
		origin_lang_word = "gäliska"
	elseif args[2] == "el" then
		origin_lang_word = "nygrekiska"
	elseif args[2] == "la" then
		origin_lang_word = "latinska"
	end

    local include_origin_lang_word = true

	if args["språknamn"] then
		if args["språknamn"] == "-" then
			include_origin_lang_word = false
		elseif args["språknamn"] ~= "" then
			origin_lang_word = args["språknamn"]
		end
	end

	local ucfirst_language       = lang.getLanguageUCFirst(args[2], "alsoetym")
	local lc                     = args[2] -- obligatory
	local derivative             = args[3] -- obligatory (special value "-" if none)
	local literal_meaning        = args[4] -- optional
	local translitteration       = args["tr"] -- optional
	local tr_and_lit_text        = ''

	if translitteration then
		tr_and_lit_text = "<i>" .. translitteration .. "</i>"
	end
	if (literal_meaning and translitteration) then
		tr_and_lit_text = tr_and_lit_text .. ',&nbsp;'
	end
	if literal_meaning then
		if (literal_meaning=='-') then -- special value "-" for same meaning, do NOT write "sammma betydelse" literally
			tr_and_lit_text = tr_and_lit_text .. 'med samma betydelse'
		else
			tr_and_lit_text = tr_and_lit_text .. '”' .. literal_meaning .. '”'
		end
	end
	if (literal_meaning or translitteration) then
		tr_and_lit_text = '(' .. tr_and_lit_text .. ')'
	end

	local italics                = (args["kursiv"] ~= "-")
	local derivative_text        = ""

	if (derivative and (derivative~="-")) then
		derivative_text = lk.link(derivative, lc)
		if (italics) then
			derivative_text = '<i>' .. derivative_text .. '</i>'
		end
	end

	local str = ''
    local sort_key = ''
    local lemma_pagename = ''

		if include_origin_lang_word then
			str = str .. origin_lang_word
		end
		
		if  (derivative_text~='') then
			if str ~= "" then
				str = str.. "&nbsp;"
			end

			str = str .. derivative_text
		end

		if  (tr_and_lit_text~='') then
			if str ~= "" then
				str = str.. "&nbsp;"
			end

			str = str .. tr_and_lit_text
		end

	local derivative_no_nil = derivative or ""

	if args["kat"] ~= "-" then
        lemma_pagename = args['pagenameoverridetestonly'] or mw.title.getCurrentTitle().text
		sort_key = catsort.getSortKey (args[1], lemma_pagename)
		if args[2] ~= "xx" then
			if (sort_key==lemma_pagename) then
				str = str .. "[[Kategori:" .. ucfirst_entry_language_name .. "/Härledningar från ".. lc_origin_lang_name .."]]"
			else
				str = str .. "[[Kategori:" .. ucfirst_entry_language_name .. "/Härledningar från ".. lc_origin_lang_name .. "|" .. sort_key .. "]]"
			end
		else
			str = str .. "[[Kategori:Okänt språknamn]][[Kategori:Okänt språknamn (härledning)]]"
		end
		if args["genitivform"] then
			str = str .. "[[Kategori:Wiktionary:härledning/Använder genitivform]]"
		end
		if args["kursiv"] then
			str = str .. "[[Kategori:Wiktionary:härledning/Använder kursiv]]"
		end
		if args[4] and (string.sub(args[4],-13,-1) == "mma betydelse") then
			str = str .. "[[Kategori:Wiktionary:härledning/Samma betydelse]]"
		end
	end

	return str
end

return export