Modul:Convert-CH

Aus Wiktionary, dem freien Wörterbuch

Die Dokumentation für dieses Modul kann unter Modul:Convert-CH/Doku erstellt werden

-- die ersten beiden Funktionen dienen zum Umwandeln von ß -> ss und zurück.
-- Kann sehr hilfreich sein, damit man beim Erstellen von CH-Schreibweisen
-- mittels (Kopier-)Vorlagen die beiden Buchstaben nicht immer von Hand
-- ändern muss. Beispiel zur Benutzung siehe in [[Benutzer:Udo T./common.js]]
--
-- Die dritte Funktion dient zum Überprüfen, ob ein Wort respektive Eintrag
-- ein "ß" enthält

local export = {}

-- this function enables the module to be called from a template
function export.main(frame)
    if type(export[frame.args[1]]) == 'function'
    then
    	return export[frame.args[1]](frame.args[2], frame.args[3])
	else
		return export[frame.args[1]][frame.args[2]]
	end
end

-- diese Funktion wandelt ein "ss" in "ß" um
function export.convert_to_sz(word)
    word = mw.ustring.gsub(word, "ss", "ß")

    return word
end

-- diese Funktion wandelt ein "ß" in "ss" um
function export.convert_to_ss(word)
    word = mw.ustring.gsub(word, "ß", "ss")

    return word
end

-- diese Funktion prüft, ob in einem String der
-- Buchstabe "ß" (true) auftaucht oder nicht (false)
function export.check_sz(word)
    if (mw.ustring.find(word, "ß") == nil)
     then
        return false
     else
        return true
    end
end

-- diese neue Funktion wandelt für die Worttrennung
-- von Schweizer Schreibweisen ausgehend von der herkömmlichen um:
-- ein "·ß" wird in "s·s" umgewandelt
-- bei einem "ß·" wird nur das "ß" in "ss" umgewandelt, der Punkt bleibt
-- ansonsten ("ß" ohne Punkt davor o. dahinter)
-- wird ebenfalls "ß" einfach in "ss" umgewandelt
function export.convert_wt_to_ss(word)
    if (mw.ustring.find(word, "·ß") == nil)
     then
     	-- "·ß" wurde NICHT gefunden
     	-- also kann es nur "ß·" oder ein ß ohne einen · sein
     	-- dann einfach das "ß" in "ss" umwandeln, ein evtl.
     	-- vorhandener Punkt nach dem ß bleibt unberührt stehen
       	word = mw.ustring.gsub(word, "ß", "ss")
    else
    	-- es wurde "·ß" gefunden
        -- also "·ß" in "s·s" umwandeln
    	word = mw.ustring.gsub(word, "·ß", "s·s")
    	-- für den sicherlich seltenen Fall, dass es neben einem "·ß" auch noch
    	-- ein "ß·" oder "ß" gibt, z. B. "auf gro·ßem Fuß le·ben"
    	word = mw.ustring.gsub(word, "ß", "ss")
    end
    return word
end

return export