Hej, du har kommit hit för att leta efter betydelsen av ordet . I DICTIOUS hittar du inte bara alla ordboksbetydelser av ordet , utan du får också veta mer om dess etymologi, dess egenskaper och hur man säger i singular och plural. Allt du behöver veta om ordet finns här. Definitionen av ordet hjälper dig att vara mer exakt och korrekt när du talar eller skriver dina texter. Genom att känna till definitionen av och andra ord berikar du ditt ordförråd och får tillgång till fler och bättre språkliga resurser.

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


Syfte

Implementerar {{böjning}}.

Parametrar

Viktig: grundformen måste anges exakt en gång, antingen via anonym parameter eller via text= .

Självtest

{sv|adj|hammare}
sida "hammaren"

böjningsform av hammare

{la|verb|text=dīcō}
sida "dicere" ("dīcere"), länka till "dico" men visa "dīcō"
böjningsform av dīcō
{sv|adj|b:ig|host=#}
uppslag "b:igare" på Appendix:Övriga uppslagsord länkar till "b:ig" på samma sida

böjningsform av b:ig

{svenska|adj|hammare}
sida hammaren, ogiltig språkkod

Uppenbarligen ogiltig språkkod -- Kod "svenska" skickades in i "Mall:böjning".
{sv|adj|hammare|fyra|hoax=hämmare}
sida hammaren, två ogiltiga parametrar


Ogiltiga parametrar -- "Mall:böjning" använder inte parametrar 4 (anonym) och "hoax=".

Felhantering

6 olika fel detekteras. Spårningskategori Kategori:Mallsyntax och andra. Tydliga röda varningar visas vid förhandsgranskning men inte i sparade versioner.

Behövda submoduler

Automatiserade tester

All tests passed. (refresh)

Text Expected Actual
test_01_basic_sv:
Passed {{böjning|sv|subst|katt|pagenameoverridetestonly=katten|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Passed {{böjning|sv|subst|ärr|pagenameoverridetestonly=ärret|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Passed {{böjning|sv|adj|sliten|pagenameoverridetestonly=slitna|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Passed {{böjning|sv|räkn|tre|pagenameoverridetestonly=tredje|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Passed {{böjning|sv|subj|som|pagenameoverridetestonly=eftersom|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Text Expected Actual
test_02_other_lang:
Passed {{böjning|en|subst|wolf|pagenameoverridetestonly=wolves|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Passed {{böjning|la|subst|text=rēx|pagenameoverridetestonly=regibus|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Passed {{böjning|ru|subst|text=избра́ть|pagenameoverridetestonly=избрать|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Text Expected Actual
test_03_host:
Passed {{böjning|sv|adv|b:igt|host=#|pagenameoverridetestonly=Appendix:Övriga uppslagsord|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Passed {{böjning|sv|adv|b:igt|host=Förbjudna sidnamn|pagenameoverridetestonly=Appendix:Övriga uppslagsord|nocat=false}} <i style="color:#6B5A40">böjningsform av</i> ]] <i style="color:#6B5A40">böjningsform av</i> ]]
Text Expected Actual
test_04_errors:
Passed {{böjning|sv|adj|sliten|fyra|fem|extra=garbage|pagenameoverridetestonly=slitna|nocat=false}} <br><span class="error"><b>Ogiltiga parametrar -- "Mall:böjning" använder inte parametrar 4 (anonym) och 5 (anonym) och "extra=".</b></span></br>]] <br><span class="error"><b>Ogiltiga parametrar -- "Mall:böjning" använder inte parametrar 4 (anonym) och 5 (anonym) och "extra=".</b></span></br>]]
Passed {{böjning|sv|adj|sliten|fyra|fem|extra=garbage|pagenameoverridetestonly=slitna}} <i>böjning</i>]] <i>böjning</i>]]
Passed {{böjning|pagenameoverridetestonly=nope|nocat=false}} <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:böjning".</b></span></br>Språkkod, ordklass och grundform krävs alltid.]] <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:böjning".</b></span></br>Språkkod, ordklass och grundform krävs alltid.]]
Passed {{böjning| |pagenameoverridetestonly=kosong|nocat=false}} <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:böjning".</b></span></br>Språkkod, ordklass och grundform krävs alltid.]] <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:böjning".</b></span></br>Språkkod, ordklass och grundform krävs alltid.]]
Passed {{böjning|id|räkn| |pagenameoverridetestonly=kesatu|nocat=false}} <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:böjning".</b></span></br>Språkkod, ordklass och grundform krävs alltid.]] <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:böjning".</b></span></br>Språkkod, ordklass och grundform krävs alltid.]]
Passed {{böjning|SV|subj|asdqwezxc|pagenameoverridetestonly=SLITNA|nocat=false}} <br><span class="error"><b>Uppenbarligen ogiltig språkkod -- Kod "SV" skickades in i "Mall:böjning".</b></span></br>]] <br><span class="error"><b>Uppenbarligen ogiltig språkkod -- Kod "SV" skickades in i "Mall:böjning".</b></span></br>]]
Passed {{böjning|aad|subj|asdqwezxc|pagenameoverridetestonly=slitnaad|nocat=false}} <br><span class="error"><b>Okänd språkkod -- Kod "aad" skickades in i "Mall:böjning".</b></span></br>]] <br><span class="error"><b>Okänd språkkod -- Kod "aad" skickades in i "Mall:böjning".</b></span></br>]]
Passed {{böjning|sv|noun|nonsens|pagenameoverridetestonly=nonnenset|nocat=false}} <br><span class="error"><b>Mallsyntax -- Okänd ordklass "noun" skickades in i "Mall:böjning".</b></span></br>]] <br><span class="error"><b>Mallsyntax -- Okänd ordklass "noun" skickades in i "Mall:böjning".</b></span></br>]]
Passed {{böjning|sv|pron|vår|text=var|pagenameoverridetestonly=vårat|nocat=false}} <br><span class="error"><b>Mallsyntax -- Grundformen har angetts dubbelt för "Mall:böjning".</b></span></br>]] <br><span class="error"><b>Mallsyntax -- Grundformen har angetts dubbelt för "Mall:böjning".</b></span></br>]]


-- (obligatory) language code
-- (obligatory) word class
-- (optional) base form
-- (optional) "text=" base form with diacrit
-- (optional) "host=" host page, special value "#" for same

local exporttbl = {}

local import_h3    = require ("Modul:h3")
local import_lang  = require ("Modul:lang")
local import_param = require ("Modul:param")
local import_sort  = require ("Modul:sort")

local cbo        = "b" .. string.char(195,182) .. "jning"
local cbform     = cbo .. "sform av"
local name_short = cbo
local name_long  = '"Mall:' .. name_short .. '"'

local function expandTwo (control_string, insert_m_string, insert_v_string)

  local temp_string = ''
  local expanded_string = ''
  local x_length = 0
  local x_index = 0
  local chark = 0
  local charl = 0

  x_length = string.len (control_string)
  while true do
    if (x_index==x_length) then
      break
    end--if
    chark = string.byte (control_string,(x_index+1),(x_index+1))
    x_index = x_index + 1
    charl = 0
    if (x_index<x_length) then
      charl = string.byte (control_string,(x_index+1),(x_index+1))
    end--if
    if ((chark==64) and (charl==77)) then -- @M cannot be empty
      temp_string = insert_m_string
      x_index = x_index + 1
    else
      if ((chark==64) and (charl==86)) then -- @V can be empty
        temp_string = insert_v_string
        x_index = x_index + 1
      else
        temp_string = string.char (chark)
      end--if
    end--if
    expanded_string = expanded_string .. temp_string
  end--while

  return expanded_string

end--function expandTwo

function exporttbl.go (arxframent)

  local arxsomons = 0

  local legal_params = {}
  local many_complaints = {}

  local list_bad_params = ''
  local violating_string = ''
  local problem_1_main = ''
  local problem_2_desc = ''
  local problem_3_hint = ''
  local p_2_desc_expanded = ''

  local pagename = ''
  local link_target = ''
  local taget_section = ''
  local link_right_part = ''

  local error_visible = ''
  local error_cat = ''
  local good_visible = ''
  local good_cat = ''
  local final_result = ''

  local error_code = 0

  local boo_no_cat_true = false
  local boo_no_cat_false = false

  arxsomons = arxframent.args -- "args" from our own "frame"
  if (arxsomons=="true") then
    arxsomons = arxframent:getParent().args -- "args" from caller's "frame"
  end--if

  legal_params = {=3,"text","host","nocat","pagenameoverridetestonly"}
  list_bad_params = import_param.go (arxsomons,legal_params)

  local lang_code  = mw.text.trim (arxsomons or "")
  local word_class = mw.text.trim (arxsomons or "")
  local base_form  = mw.text.trim (arxsomons or "")
  local base_text  = arxsomons or "" -- diacrit will get removed later
  local page_host  = arxsomons or "" -- special value "#" defined

  pagename = arxsomons or mw.title.getCurrentTitle().prefixedText
  boo_no_cat_true  = (arxsomons=="true")
  boo_no_cat_false = (arxsomons=="false")

  local h3_singular = import_h3.getLongSingUCFirst(word_class) -- returns empty for unknown

  many_complaints = {'Ogiltiga parametrar','@M använder inte @V'}
  many_complaints = {'Mallsyntax','Obligatorisk parameter saknas i @M','Språkkod, ordklass och grundform krävs alltid.'}
  many_complaints = {'Uppenbarligen ogiltig språkkod','Kod @V skickades in i @M'}
  many_complaints = {'Okänd språkkod','Kod @V skickades in i @M'}
  many_complaints = {'Mallsyntax','Okänd ordklass @V skickades in i @M'}
  many_complaints = {'Mallsyntax','Grundformen har angetts dubbelt för @M'}

  while true do
    if list_bad_params ~= '' then
      error_code = 1
      violating_string = list_bad_params
      break
    end--if
    if ((lang_code=="") or (word_class=="") or (base_form=="") and (base_text=="")) then
      error_code = 2 -- no string here
      break
    end--if
    if import_lang.isObviouslyInvalid(lang_code) then
      error_code = 3
      violating_string = '"' .. lang_code .. '"'
      break
    end--if
    if not import_lang.hasLanguage(lang_code) then
      error_code = 4
      violating_string = '"' .. lang_code .. '"'
      break
    end--if
    if (h3_singular=="") then
      error_code = 5
      violating_string = '"' .. word_class .. '"'
      break
    end--if
    if ((base_form~="") and (base_text~="")) then
      error_code = 6 -- no string here
    end--if
    break
  end--while

  if (error_code~=0) then
    problem_1_main = many_complaints
    problem_2_desc = many_complaints -- @M cannot be empty, @V can be empty
    problem_3_hint = many_complaints or '' -- optional, can be empty
    p_2_desc_expanded = expandTwo (problem_2_desc, name_long, violating_string)
    error_cat = ']]'
    error_visible = '<br><span class="error"><b>' .. problem_1_main .. ' -- ' .. p_2_desc_expanded .. '.</b></span></br>'
    if (problem_3_hint~='') then
      error_visible = error_visible .. problem_3_hint
    end--if
  end--if

  if (error_code==0) then

    local language_ucf = import_lang.getLanguageUCFirst(lang_code) -- use "hasLanguage" for validation
    local sort_key = import_sort.getSortKey(lang_code, pagename)

    if (base_text~="") then
      link_target = import_lang.getEntryName(lang_code, base_text) -- remove diacrit
      link_right_part = base_text -- with diacrit
    else
      link_target = base_form -- keep diacrit
      link_right_part = base_form -- with possible diacrit
    end--if

    if (page_host~="") then -- neither word class nor language as section
      taget_section = link_target
      if (page_host=="#") then
        link_target = pagename
      else
        link_target = page_host
      end--if
    else
      if (lang_code=="sv") then
        taget_section = h3_singular -- word class as section
      else
        taget_section = language_ucf -- language name as section
      end--if
    end--if

    if (h3_singular=="Räkneord") then
      h3_singular = h3_singular .. "s" -- absurdities of the Swedish language "Räkneordsformer"
    end--if

    good_visible = '<i style="color:#6B5A40">' .. cbform .. '</i> ]'
    good_cat = "]"

  end--if (error_code==0) then

  if (error_code==0) then
    final_result = good_visible
  else
    if ((arxframent:preprocess ("{{REVISIONID}}") == '') or boo_no_cat_true or boo_no_cat_false) then
      mw.addWarning (error_visible)
      final_result = error_visible
    else
      final_result = "<i>" .. name_short .. "</i>"
    end--if
  end--if
  if (not boo_no_cat_true) then
    if (error_code==0) then
      final_result = final_result .. good_cat
    else
      final_result = final_result .. error_cat
    end--if
  end--if

  return final_result

end--function

return exporttbl