„Modul:Umschriftung“ – Versionsunterschied
Erscheinungsbild
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
-- Modul:Umschriftung | -- Modul:Umschriftung | ||
-- siehe neues Modul:Umschrift, Ersatz zu Modul:Umschriftung | |||
-- Version 1.3 – Sprachspezifische Umschriftung (deu, eng, lat), flexible zeig-Funktion | -- Version 1.3 – Sprachspezifische Umschriftung (deu, eng, lat), flexible zeig-Funktion | ||
Aktuelle Version vom 21. April 2025, 06:04 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Umschriftung/Doku erstellt werden
-- Modul:Umschriftung
-- siehe neues Modul:Umschrift, Ersatz zu Modul:Umschriftung
-- Version 1.3 – Sprachspezifische Umschriftung (deu, eng, lat), flexible zeig-Funktion
local p = {}
local ustring = mw.ustring
-- zentrale Umschrift-Funktion mit Sprachwahl
function p.umschrifte(frame, sprache)
local title = mw.title.getCurrentTitle()
local content = title:getContent() or ""
-- Schriftart extrahieren
local schriftart = content:match("%[%[Schriftart::([^|%]]+)") or content:match("%[%[Schriftart::([^%]]+)%]%]")
if not schriftart or schriftart == "" then
return "[Fehler: Keine Schriftart auf dieser Seite gefunden – [[Schriftart::...]] fehlt.]"
end
-- Tabellenmodulname
local modulname = "Umschriftung/" .. schriftart
-- Tabelle laden
local status, tabellen = pcall(mw.loadData, "Modul:" .. modulname)
if not status or type(tabellen) ~= "table" then
return "[Fehler: Konnte Tabelle 'Modul:" .. modulname .. "' nicht laden.]"
end
local tabelle = tabellen[sprache or "deu"]
if not tabelle then
return "[Fehler: Keine Umschriftungstabelle für Sprache '" .. tostring(sprache) .. "' gefunden.]"
end
local quelltext = title.text
local ergebnis = ""
for i = 1, ustring.len(quelltext) do
local buchstabe = ustring.sub(quelltext, i, i)
ergebnis = ergebnis .. (tabelle[buchstabe] or buchstabe)
end
return ergebnis
end
-- Sprachspezifische Kurzfunktionen
function p.din(frame)
return p.umschrifte(frame, "din")
end
function p.deu(frame)
return p.umschrifte(frame, "deu")
end
function p.eng(frame)
return p.umschrifte(frame, "eng")
end
function p.lat(frame)
return p.umschrifte(frame, "lat")
end
-- Kurzform für [[Umschrift::{{#invoke:Umschriftung|zeig|deu}}]] usw.
function p.zeig(frame)
local sprache = frame.args[1] or "deu"
local ok, result = pcall(p.umschrifte, frame, sprache)
if ok then
return result
else
return "[Umschrift-Fehler: " .. tostring(result) .. "]"
end
end
-- Debug-Funktion zur Anzeige der ermittelten Schriftart
function p.zeigeSchriftart(frame)
local title = mw.title.getCurrentTitle()
local content = title:getContent() or ""
local schriftart = content:match("%[%[Schriftart::([^|%]]+)") or content:match("%[%[Schriftart::([^%]]+)%]%]")
if not schriftart or schriftart == "" then
return "[Fehler: Keine Schriftart auf dieser Seite gefunden – [[Schriftart::...]] fehlt.]"
end
return "Ermittelte Schriftart: " .. schriftart
end
return p