Modul:härledning
Dokumentation för denna modul finns på /dok (redigera), /test
Syfte
redigeraImplementerar {{härledning}}
.
Behövda submoduler
redigeraSpårningskategorier
redigera- Kategori:Wiktionary:härledning/Samma betydelse 0
- Kategori:Wiktionary:härledning/Saknar parametrar 0
- Kategori:Wiktionary:härledning/Använder genitivform 2 stöds i ny syntax, ersätta med "språknamn=" eller "sn=" ??
- Kategori:Wiktionary:härledning/Använder kursiv 0 stöds i ny syntax, avveckla ??
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 .. ', '
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.. " "
end
str = str .. derivative_text
end
if (tr_and_lit_text~='') then
if str ~= "" then
str = str.. " "
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