Latina lingvo kaj Esperanto
Mi lernas Esperanton kaj latinan lingvon.
fleksio
O-vorto en latino havas genroj, numeroj kaj kazoj. Mi volas esprimi la flekson per JavaScript.
Farado per JavaScript
O-vorto de singulara nominativo kaj gentivo determinas la alia kazoj.
strukturo de o-vorto
Se oni volas montri kazon de lation, kiel oni pensas de la strukturo pri o-vorto en JavaScript? Klaso "Nomen" estas konstruita de singrara kaj gentiva nominativoj.
function Nomen(nom, gen) {
// sigularo
this.sg.n = nom; // nominativo
this.sg.ac = ... // akuzativo
this.sg.g = f(nom, gen) // genitivo
this.sg.d = ... // dativo
this.sg.ab = ... // ablativo
// pluraro
this.pl.n = ... // nominativo
...
this.pl.ab = ... // ablativo
}
La kazoj normale ordigas kiel nominativo, vokativo, gentivo, dativo, akuzativo kaj ablativo. Tamen mi ordigas kiel nominativo, akuzativo, gentivo, dativo kaj ablativo. Kelkaj nomo havas samaj formoj en nominativo kaj vokatio, aŭ akuzativo kaj ablativo.
Klasifiko de latinaj o-vortoj
Oni latinaj o-vortoj klasas kvinan grupon de la radikala karaktero.
Unua fleksio
O-vorto en unua fleksio havas du karakteron.
- La vorto de plurala nominativo finas "a"-n.
- La vorto de plurala gentivo finas "ae"-n.
function Nomen(nom, gen) {
if (nom.match(/a$/) && gen.match(/ae$/)) { //
// singlaro
this.sg.n = nom; // nominativo
this.sg.ac = nom.replace(/a$/, "am") // akuzativo
this.sg.g = nom.replace(/a$/, "ae") // genitivo
this.sg.d = nom.replace(/a$/, "ae") // dativo
this.sg.ab = nom.replace(/a$/, "ā") // ablativo
// pluraro
this.pl.n = nom.replace(/a$/, "ae") // nominativo
this.pl.ac = nom.replace(/a$/, "ās") // akuzativo
this.pl.g = nom.replace(/a$/, "ārum") // genitivo
this.pl.d = nom.replace(/a$/, "īs") // dativo
this.pl.ab = nom.replace(/a$/, "īs") // ablativo
}
}
Dua fleksio
Dua fleksio havas tri tipoj.
tipo de -us
function Nomen(nom, gen) {
if (nom.match(/us$/) && gen.match(/ī$/)) { // Dua fleksio
// singlaro
this.sg.n = nom; // nominativo
this.sg.ac = nom.replace(/us$/, "um") // akuzativo
this.sg.g = nom.replace(/us$/, "ī") // genitivo
this.sg.d = nom.replace(/us$/, "ō") // dativo
this.sg.ab = nom.replace(/us$/, "ō") // ablativo
// pluraro
this.pl.n = nom.replace(/us$/, "ī") // nominativo
this.pl.ac = nom.replace(/us$/, "ōs") // akuzativo
this.pl.g = nom.replace(/us$/, "ōrum") // genitivo
this.pl.d = nom.replace(/us$/, "īs") // dativo
this.pl.ab = nom.replace(/us$/, "īs") // ablativo
}
}
tipo de -er
function Nomen(nom, gen) {
if (nom.match(/er$/) && gen.match(/rī$/)) { // Dua fleksio
// singlaro
this.sg.n = nom; // nominativo
this.sg.ac = nom.replace(/us$/, "um") // akuzativo
this.sg.g = nom.replace(/us$/, "ī") // genitivo
this.sg.d = nom.replace(/us$/, "ō") // dativo
this.sg.ab = nom.replace(/us$/, "ō") // ablativo
// pluraro
this.pl.n = nom.replace(/us$/, "ī") // nominativo
this.pl.ac = nom.replace(/us$/, "ōs") // akuzativo
this.pl.g = nom.replace(/us$/, "ōrum") // genitivo
this.pl.d = nom.replace(/us$/, "īs") // dativo
this.pl.ab = nom.replace(/us$/, "īs") // ablativo
}
}
tip de -um
function Nomen(nom, gen) {
if (nom.match(/um$/) && gen.match(/ī$/)) { // Dua fleksio (-us)
// singlaro
this.sg.n = nom; // nominativo
this.sg.ac = nom.replace(/us$/, "um") // akuzativo
this.sg.g = nom.replace(/us$/, "ī") // genitivo
this.sg.d = nom.replace(/us$/, "ō") // dativo
this.sg.ab = nom.replace(/us$/, "ō") // ablativo
// pluraro
this.pl.n = nom.replace(/us$/, "ī") // nominativo
this.pl.ac = nom.replace(/us$/, "ōs") // akuzativo
this.pl.g = nom.replace(/us$/, "ōrum") // genitivo
this.pl.d = nom.replace(/us$/, "īs") // dativo
this.pl.ab = nom.replace(/us$/, "īs") // ablativo
}
}
Tria flekso
Tria flekso havas multaj paternoj.
kvara flekso
kvin flekso
Programo per JavaScript por lernado
Kliku [Montru!], kaj vorto, contento kaj fleksoj montras.