Widget:Deklinationsklasse ermitteln: Unterschied zwischen den Versionen
Aus KGS-Wiki
Sn (Diskussion | Beiträge) K (bei clickable nodes sind rect in a eingebettet ⇒ > funktioniert nicht) |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Probier es selbst aus! Gib hier den Nominativ und Genitiv eines Substantivs ein und ermittle die Deklinationsklasse! | Probier es selbst aus! Gib hier den Nominativ und Genitiv eines Substantivs ein und ermittle die Deklinationsklasse! | ||
<includeonly><!--</includeonly><syntaxhighlight lang="html" line><includeonly>--></includeonly> | |||
<p><label for="input-nom">Nominativ:</label><input type="text" id="input-nom" oninput="detectDecl()"/> | <p><label for="input-nom">Nominativ:</label><input type="text" id="input-nom" oninput="detectDecl()"/> | ||
<label for="input-gen">Genitiv:</label><input type="text" id="input-gen" oninput="detectDecl()"/></p> | <label for="input-gen">Genitiv:</label><input type="text" id="input-gen" oninput="detectDecl()"/></p> | ||
<script> | <script> | ||
const DEKLS = { | |||
o: { | |||
m: { | |||
S: {'', 'i', 'o', 'um', 'o', 'e'}, | |||
P: {'i', 'orum', 'is', 'os', 'is'} | |||
}, | |||
f: { | |||
S: {'', 'i', 'o', 'um', 'o'}, | |||
P: {'i', 'orum', 'is', 'os', 'is'} | |||
}, | |||
n: { | |||
S: {'', 'i', 'o', 'um', 'o'}, | |||
P: {'a', 'orum', 'is', 'a', 'is'} | |||
} | |||
}, | |||
a: { | |||
m: { | |||
S: {'', 'ae', 'ae', 'am', 'ā'}, | |||
P: {'ae', 'arum', 'is', 'as', 'is'} | |||
}, | |||
f: { | |||
S: {'', 'ae', 'ae', 'am', 'ā'}, | |||
P: {'ae', 'arum', 'is', 'as', 'is'} | |||
}, | |||
n: { | |||
S: {'', 'ae', 'ae', 'am', 'ā'}, | |||
P: {'ae', 'arum', 'is', 'as', 'is'} | |||
} | |||
}, | |||
k: { | |||
m: { | |||
S: {'', 'is', 'i', 'em', 'e'}, | |||
P: {'es', 'um', 'ibus', 'es', 'ibus'} | |||
}, | |||
f: { | |||
S: {'', 'is', 'i', 'em', 'e'}, | |||
P: {'es', 'um', 'ibus', 'es', 'ibus'} | |||
}, | |||
n: { | |||
S: {'', 'is', 'i', 'em', 'e'}, | |||
P: {'a', 'um', 'ibus', 'a', 'ibus'} | |||
} | |||
}, | |||
e: { | |||
m: { | |||
S: {'', 'ei', 'ei', 'em', 'e'}, | |||
P: {'es', 'erum', 'ebus', 'es', 'ebus'} | |||
}, | |||
f: { | |||
S: {'', 'ei', 'ei', 'em', 'e'}, | |||
P: {'es', 'erum', 'ebus', 'es', 'ebus'} | |||
}, | |||
n: { | |||
S: {'', 'ei', 'ei', 'em', 'e'}, | |||
P: {'es', 'erum', 'ebus', 'es', 'ebus'} | |||
} | |||
}, | |||
i: { | |||
m: { | |||
S: {'', 'is', 'i', 'em', 'i'}, | |||
P: {'es', 'ium', 'ibus', 'es', 'ibus'} | |||
}, | |||
f: { | |||
S: {'', 'is', 'i', 'em', 'i'}, | |||
P: {'es', 'ium', 'ibus', 'es', 'ibus'} | |||
}, | |||
n: { | |||
S: {'', 'is', 'i', 'em', 'i'}, | |||
P: {'ia', 'ium', 'ibus', 'ia', 'ibus'} | |||
} | |||
}, | |||
u: { | |||
m: { | |||
S: {'', 'ūs', 'ui', 'um', 'u'}, | |||
P: {'ūs', 'uum', 'ibus', 'ūs', 'ibus'} | |||
}, | |||
f: { | |||
S: {'', 'ūs', 'ui', 'um', 'u'}, | |||
P: {'ūs', 'uum', 'ibus', 'ūs', 'ibus'} | |||
}, | |||
n: { | |||
S: {'', 'ūs', 'ui', 'u', 'u'}, | |||
P: {'ūa', 'uum', 'ibus', 'ūa', 'ibus'} | |||
} | |||
} | |||
} | |||
function edge(id) { | function edge(id) { | ||
Zeile 102: | Zeile 189: | ||
} | } | ||
</script> | </script> | ||
<includeonly><!--</includeonly></syntaxhighlight><includeonly>--></includeonly> |
Version vom 4. Juli 2024, 18:38 Uhr
Probier es selbst aus! Gib hier den Nominativ und Genitiv eines Substantivs ein und ermittle die Deklinationsklasse!
<includeonly>--></includeonly>
<p><label for="input-nom">Nominativ:</label><input type="text" id="input-nom" oninput="detectDecl()"/>
<label for="input-gen">Genitiv:</label><input type="text" id="input-gen" oninput="detectDecl()"/></p>
<script>
const DEKLS = {
o: {
m: {
S: {'', 'i', 'o', 'um', 'o', 'e'},
P: {'i', 'orum', 'is', 'os', 'is'}
},
f: {
S: {'', 'i', 'o', 'um', 'o'},
P: {'i', 'orum', 'is', 'os', 'is'}
},
n: {
S: {'', 'i', 'o', 'um', 'o'},
P: {'a', 'orum', 'is', 'a', 'is'}
}
},
a: {
m: {
S: {'', 'ae', 'ae', 'am', 'ā'},
P: {'ae', 'arum', 'is', 'as', 'is'}
},
f: {
S: {'', 'ae', 'ae', 'am', 'ā'},
P: {'ae', 'arum', 'is', 'as', 'is'}
},
n: {
S: {'', 'ae', 'ae', 'am', 'ā'},
P: {'ae', 'arum', 'is', 'as', 'is'}
}
},
k: {
m: {
S: {'', 'is', 'i', 'em', 'e'},
P: {'es', 'um', 'ibus', 'es', 'ibus'}
},
f: {
S: {'', 'is', 'i', 'em', 'e'},
P: {'es', 'um', 'ibus', 'es', 'ibus'}
},
n: {
S: {'', 'is', 'i', 'em', 'e'},
P: {'a', 'um', 'ibus', 'a', 'ibus'}
}
},
e: {
m: {
S: {'', 'ei', 'ei', 'em', 'e'},
P: {'es', 'erum', 'ebus', 'es', 'ebus'}
},
f: {
S: {'', 'ei', 'ei', 'em', 'e'},
P: {'es', 'erum', 'ebus', 'es', 'ebus'}
},
n: {
S: {'', 'ei', 'ei', 'em', 'e'},
P: {'es', 'erum', 'ebus', 'es', 'ebus'}
}
},
i: {
m: {
S: {'', 'is', 'i', 'em', 'i'},
P: {'es', 'ium', 'ibus', 'es', 'ibus'}
},
f: {
S: {'', 'is', 'i', 'em', 'i'},
P: {'es', 'ium', 'ibus', 'es', 'ibus'}
},
n: {
S: {'', 'is', 'i', 'em', 'i'},
P: {'ia', 'ium', 'ibus', 'ia', 'ibus'}
}
},
u: {
m: {
S: {'', 'ūs', 'ui', 'um', 'u'},
P: {'ūs', 'uum', 'ibus', 'ūs', 'ibus'}
},
f: {
S: {'', 'ūs', 'ui', 'um', 'u'},
P: {'ūs', 'uum', 'ibus', 'ūs', 'ibus'}
},
n: {
S: {'', 'ūs', 'ui', 'u', 'u'},
P: {'ūa', 'uum', 'ibus', 'ūa', 'ibus'}
}
}
}
function edge(id) {
return document.querySelector('.edgePath[id*=' + id + '] path')
}
function node(id) {
return document.querySelector('.node[id*=-' + id + '-] rect')
}
function detectDecl() {
let nom = document.getElementById('input-nom').value
let gen = document.getElementById('input-gen').value
node('genis').style = null
node('geni').style = null
node('a').style = null
node('e').style = null
node('i').style = null
node('o').style = null
node('u').style = null
node('k').style = null
if (nom == '' || gen == '') {
edge('L-gen-genis').style = "stroke: black; fill: none;"
edge('L-genis-i').style = "stroke: black; fill: none;"
edge('L-genis-k').style = "stroke: black; fill: none;"
edge('L-gen-geni').style = "stroke: black; fill: none;"
edge('L-geni-e').style = "stroke: black; fill: none;"
edge('L-geni-o').style = "stroke: black; fill: none;"
edge('L-gen-a').style = "stroke: black; fill: none;"
edge('L-gen-u').style = "stroke: black; fill: none;"
edge('L-gen-i').style = "stroke: black; fill: none;"
edge('L-gen-o').style = "stroke: black; fill: none;"
edge('L-gen-k').style = "stroke: black; fill: none;"
return
} else {
edge('L-gen-genis').style = "stroke: lightgray; fill: none;"
edge('L-genis-i').style = "stroke: lightgray; fill: none;"
edge('L-genis-k').style = "stroke: lightgray; fill: none;"
edge('L-gen-geni').style = "stroke: lightgray; fill: none;"
edge('L-geni-e').style = "stroke: lightgray; fill: none;"
edge('L-geni-o').style = "stroke: lightgray; fill: none;"
edge('L-gen-a').style = "stroke: lightgray; fill: none;"
edge('L-gen-u').style = "stroke: lightgray; fill: none;"
edge('L-gen-i').style = "stroke: lightgray; fill: none;"
edge('L-gen-o').style = "stroke: lightgray; fill: none;"
edge('L-gen-k').style = "stroke: lightgray; fill: none;"
}
if (gen.endsWith('is')) {
edge('L-gen-genis').style = "stroke: red; fill: none;"
node('genis').style = "fill: red;"
if (nom == gen || nom.endsWith('ar') || nom.endsWith('e') || nom.endsWith('al')) {
node('i').style = "fill: red;"
edge('L-genis-i').style = "stroke: red; fill: none;"
} else {
node('k').style = "fill: red;"
edge('L-genis-k').style = "stroke: red; fill: none;"
}
return
}
if (gen.endsWith('i')) {
node('geni').style = "fill: red;"
edge('L-gen-geni').style = "stroke: red; fill: none;"
if (nom.endsWith('es')) {
node('e').style = "fill: red;"
edge('L-geni-e').style = "stroke: red; fill: none;"
} else {
node('o').style = "fill: red;"
edge('L-geni-o').style = "stroke: red; fill: none;"
}
return
}
if (gen.endsWith('ae') || gen.endsWith('arum')) {
node('a').style = "fill: red;"
edge('L-gen-a').style = "stroke: red; fill: none;"
return
}
if (gen.endsWith('us') || gen.endsWith('ūs') || gen.endsWith('uum')) {
node('u').style = "fill: red;"
edge('L-gen-u').style = "stroke: red; fill: none;"
return
}
if (gen.endsWith('ium')) {
node('i').style = "fill: red;"
edge('L-gen-i').style = "stroke: red; fill: none;"
return
}
if (gen.endsWith('orum')) {
node('o').style = "fill: red;"
edge('L-gen-o').style = "stroke: red; fill: none;"
return
}
if (gen.endsWith('um')) {
node('k').style = "fill: red;"
edge('L-gen-k').style = "stroke: red; fill: none;"
return
}
}
</script>
<includeonly><!--</includeonly>