Zum Inhalt springen

Modul:flexlink

aus AufEinWort, der freien Forschung
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 28. Juli 2025 um 14:32 Uhr durch Nikolaos (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „-- Erzeugt eine Form eines Strings ohne Makron für Links in Flexionstabellen local m = {} function m.convert(frame) if (frame.args.spr == "la") then return noMacron(frame.args[1]) end if (frame.args.spr == "ru") then return noStress(frame.args[1]) end return frame.args[1] end function noMacron(str) local newstr = "" local newcp = 0 local cp = 0 local from = "ĀāĒēĪīŌōŪūȲȳ" local frto = "AaEeIiOoUuYy" for cp i…“).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

-- Erzeugt eine Form eines Strings ohne Makron für Links in Flexionstabellen

local m = {}

function m.convert(frame)
  if (frame.args.spr == "la") then
    return noMacron(frame.args[1])
  end
  if (frame.args.spr == "ru") then
    return noStress(frame.args[1])
  end
  return frame.args[1]
end


function noMacron(str)
  local newstr = ""
  local newcp = 0
  local cp = 0
  local from = "ĀāĒēĪīŌōŪūȲȳ"
  local frto = "AaEeIiOoUuYy"

  for cp in mw.ustring.gcodepoint(str) do
    newcp = cp
    for idx = 1, mw.ustring.len( from ) do
      if (cp == mw.ustring.codepoint( from, idx)) then
        newcp = mw.ustring.codepoint( frto, idx)
      end
    end
    newstr = newstr .. mw.ustring.char(newcp)
  end

  return newstr

end


function noStress(str)
  local stress = mw.ustring.char(0x0301)
  local newstr = mw.ustring.gsub(str, stress, "")
  
  return newstr
end


return m