mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-23 04:34:15 -04:00
(pronouns) differentiate between empty and unset morphs
empty morphs are those which have a real value, which corresponds to a suffix without additional letters, they should still show up in example sentences unset / null morphs are used when a pronoun does not support a specific form at all, so their example sentences should be hidden This reverts in part ed4049b3cc124605a3f9588b19eb63c5ff2dd961 and reintroduces the failure when an unset morpheme is used in an interchangeable pronoun, however this needs more restructering to fix
This commit is contained in:
parent
918e2672e4
commit
48992c53d6
@ -4,29 +4,29 @@ sie,sie/ihr Femininum TRUE sie ihrer ihr sie ihre ihrer ihrer ihre ihr ihres ihr
|
|||||||
es,es/sein,es/ihm Neutrum TRUE es seiner ihm es seine seiner seiner seine sein seines seinem seinen sein seines seinem sein das des dem das dieses dieses diesem dieses FALSE FALSE TRUE
|
es,es/sein,es/ihm Neutrum TRUE es seiner ihm es seine seiner seiner seine sein seines seinem seinen sein seines seinem sein das des dem das dieses dieses diesem dieses FALSE FALSE TRUE
|
||||||
es/ihr Neutrum mit femininen Formen FALSE es ihrer ihr es ihre ihrer ihrer ihre ihr ihres ihrem ihren ihr ihres ihrem ihr das der der das dieses dieser dieser dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch {/sie=feminine} Formen ersetzt werden
|
es/ihr Neutrum mit femininen Formen FALSE es ihrer ihr es ihre ihrer ihrer ihre ihr ihres ihrem ihren ihr ihres ihrem ihr das der der das dieses dieser dieser dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch {/sie=feminine} Formen ersetzt werden
|
||||||
es/denen Neutrum mit inflexiven Formen FALSE es derer denen es deren deren deren deren deren deren deren deren deren deren deren deren das des dem das dieses dieses diesem dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei die meisten Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch inflexive Formen ersetzt werden, wie sie auch in {/dey/denen=„dey/denen“} verwendet werden
|
es/denen Neutrum mit inflexiven Formen FALSE es derer denen es deren deren deren deren deren deren deren deren deren deren deren deren das des dem das dieses dieses diesem dieses FALSE FALSE TRUE Wie {/es=„es/sein“}, wobei die meisten Wörter, bei denen das {/es=Neutrum} identisch mit dem {/er=Maskulinum} ist, durch inflexive Formen ersetzt werden, wie sie auch in {/dey/denen=„dey/denen“} verwendet werden
|
||||||
dey,dey/denen Neopronomen „dey“ FALSE dey derer denen dey deren deren deren deren deren deren deren deren deren deren deren deren FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen/demm=„demm”} üblich. pronoun_a
|
dey,dey/denen Neopronomen „dey“ FALSE dey derer denen dey deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen/demm=„demm”} üblich. pronoun_a
|
||||||
dey/denen/demm Neopronomen „dey“ FALSE dey derer denen demm deren deren deren deren deren deren deren deren deren deren deren deren FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen=„dey”} üblich. pronoun_a
|
dey/denen/demm Neopronomen „dey“ FALSE dey derer denen demm deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Im Akkusativ ist ebenfalls {/dey/denen=„dey”} üblich. pronoun_a
|
||||||
die,die/denen Neopronomen „die“ FALSE die derer denen die deren deren deren deren deren deren deren deren deren deren deren deren FALSE FALSE TRUE
|
die,die/denen Neopronomen „die“ FALSE die derer denen die deren deren deren deren deren deren deren deren deren deren deren deren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
el,el/em Neopronomen „el“ FALSE el|ɛl emser|ɛmzɐ em|ɛm en|ɛn emse|ɛmzə emser|ɛmzɐ emser|ɛmzɐ emse|ɛmzə ems|ɛmz emses|ɛmzəs emsem|ɛmzəm emsen|ɛmzən ems|ɛmz emses|ɛmzəs emsem|ɛmzəm ems|ɛmz FALSE FALSE TRUE
|
el,el/em Neopronomen „el“ FALSE el|ɛl emser|ɛmzɐ em|ɛm en|ɛn emse|ɛmzə emser|ɛmzɐ emser|ɛmzɐ emse|ɛmzə ems|ɛmz emses|ɛmzəs emsem|ɛmzəm emsen|ɛmzən ems|ɛmz emses|ɛmzəs emsem|ɛmzəm ems|ɛmz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
em,em/em Neopronomen „em“ FALSE em|ɛm emser|ɛmzɐ em|ɛm em|ɛm ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz FALSE FALSE TRUE
|
em,em/em Neopronomen „em“ FALSE em|ɛm emser|ɛmzɐ em|ɛm em|ɛm ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ems|ɛmz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
en,en/en Neopronomen „en“ FALSE en|ɛn enser|ɛnzɐ en|ɛn en|ɛn ense|ɛnzə enser|ɛnzɐ enser|ɛnzɐ ense|ɛnzə enses|ɛnzəs enses|ɛnzəs ensem|ɛnzəm ensen|ɛnzən ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ens|ɛnz de|deː ders|dɛrz derm|dɛrm de|deː de|deː dersen|dɛrzən derm|dɛrm de|deː FALSE FALSE TRUE Erstellt vom österreichischen LGBTIQA+-Kongress 2018 in St. Pölten
|
en,en/en Neopronomen „en“ FALSE en|ɛn enser|ɛnzɐ en|ɛn en|ɛn ense|ɛnzə enser|ɛnzɐ enser|ɛnzɐ ense|ɛnzə enses|ɛnzəs enses|ɛnzəs ensem|ɛnzəm ensen|ɛnzən ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ens|ɛnz de|deː ders|dɛrz derm|dɛrm de|deː de|deː dersen|dɛrzən derm|dɛrm de|deː FALSE FALSE TRUE Erstellt vom österreichischen LGBTIQA+-Kongress 2018 in St. Pölten
|
||||||
en/em Neopronomen „en“ FALSE en|ɛn enser|ɛnzɐ em|ɛm en|ɛn ense|ɛnzə enser|ɛnzɐ enser|ɛnzɐ ense|ɛnzə ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ensen|ɛnzən ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ens|ɛnz de|deː ders|dɛrz derm|dɛrm de|deː de|deː dersen|dɛrzən derm|dɛrm de|deː FALSE FALSE TRUE Erstellt vom {https://geschlechtsneutral.net/=Verein für geschlechtsneutrales Deutsch}
|
en/em Neopronomen „en“ FALSE en|ɛn enser|ɛnzɐ em|ɛm en|ɛn ense|ɛnzə enser|ɛnzɐ enser|ɛnzɐ ense|ɛnzə ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ensen|ɛnzən ens|ɛnz enses|ɛnzəs ensem|ɛnzəm ens|ɛnz de|deː ders|dɛrz derm|dɛrm de|deː de|deː dersen|dɛrzən derm|dɛrm de|deː FALSE FALSE TRUE Erstellt vom {https://geschlechtsneutral.net/=Verein für geschlechtsneutrales Deutsch}
|
||||||
ey,ey/emm Neopronomen „ey“ FALSE ey eyser emm emm eyse eyser eyser eyse eys eyses eysem eysen eys eyses eysem eys FALSE FALSE TRUE
|
ey,ey/emm Neopronomen „ey“ FALSE ey eyser emm emm eyse eyser eyser eyse eys eyses eysem eysen eys eyses eysem eys ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
et,et/siem Neopronomen „et“ FALSE et sierer siem sien siere sierer sierer siere sier sieres sierem sieren sier sieres sierem sieren dat diesers diem dien dieset diesigen diesetne FALSE FALSE TRUE
|
et,et/siem Neopronomen „et“ FALSE et sierer siem sien siere sierer sierer siere sier sieres sierem sieren sier sieres sierem sieren dat diesers diem dien dieset ~ diesigen diesetne FALSE FALSE TRUE
|
||||||
hän,hän/sim Neopronomen „hän“ FALSE hän sirer sim sin sire sirer sirer sire sir sires sirem siren sir sires sirem siren FALSE FALSE TRUE
|
hän,hän/sim Neopronomen „hän“ FALSE hän sirer sim sin sire sirer sirer sire sir sires sirem siren sir sires sirem siren ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
hen,hen/hen,hen/hem Neopronomen „hen“ FALSE hen henser hem hen hens hens hens hens hens hens hens hens hens hens hens hens dai dais dam dai diesai diesais deisam diesai FALSE FALSE TRUE Aus dem Schwedischen, siehe: {https://sv.pronouns.page/hen=hen/henom}. Auch verwendet im {https://geschlechtsneutralesdeutsch.com/=NoNa-System}.
|
hen,hen/hen,hen/hem Neopronomen „hen“ FALSE hen henser hem hen hens hens hens hens hens hens hens hens hens hens hens hens dai dais dam dai diesai diesais deisam diesai FALSE FALSE TRUE Aus dem Schwedischen, siehe: {https://sv.pronouns.page/hen=hen/henom}. Auch verwendet im {https://geschlechtsneutralesdeutsch.com/=NoNa-System}.
|
||||||
hie,hie/hein,hie/hiem Neopronomen „hie“ FALSE hie heiner hiem hie heine heiner heiner heine hein heines heinem heinen hein heines heinem hein FALSE FALSE TRUE
|
hie,hie/hein,hie/hiem Neopronomen „hie“ FALSE hie heiner hiem hie heine heiner heiner heine hein heines heinem heinen hein heines heinem hein ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
iks,iks/iks Neopronomen „iks“ FALSE iks ikser iks iks ikses ikses ikses ikses ikses ikses ikses ikses ikses ikses ikses ikses deks dieseks FALSE FALSE TRUE
|
iks,iks/iks Neopronomen „iks“ FALSE iks ikser iks iks ikses ikses ikses ikses ikses ikses ikses ikses ikses ikses ikses ikses deks ~ ~ ~ dieseks ~ ~ ~ FALSE FALSE TRUE
|
||||||
ind,ind/inde Neopronomen „ind“ FALSE ind|ɪnd indser|ɪndzɐ inde|ɪndə ind|ɪnd indse|ɪndzə indser|ɪndzɐ indser|ɪndzɐ indse|ɪndzə inds|ɪndz indsens|ɪndzəs indsem|ɪndzəm indsen|ɪndzən inds|ɪndz indsens|ɪndzəns indsem|ɪndzəm inds|ɪndz FALSE FALSE TRUE Vom Wort „Individuum“
|
ind,ind/inde Neopronomen „ind“ FALSE ind|ɪnd indser|ɪndzɐ inde|ɪndə ind|ɪnd indse|ɪndzə indser|ɪndzɐ indser|ɪndzɐ indse|ɪndzə inds|ɪndz indsens|ɪndzəs indsem|ɪndzəm indsen|ɪndzən inds|ɪndz indsens|ɪndzəns indsem|ɪndzəm inds|ɪndz ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Vom Wort „Individuum“
|
||||||
mensch,mensch/mensch Neopronomen „mensch” FALSE mensch menscher mensch mensch menschs menschs menschs menschs menschs menschs menschs menschs menschs menschs menschs menschs FALSE FALSE TRUE Oft wird „mensch” auch als {https://de.wikipedia.org/wiki/Generalisierendes_Personalpronomen=generalisierendes Pronomen} benutzt (statt „man”).@Eher als eines von mehreren Pronomen verwendet ({https://nibi.space/pronomen#mensch=laut nibi.space}).
|
mensch,mensch/mensch Neopronomen „mensch” FALSE mensch menscher mensch mensch menschs menschs menschs menschs menschs menschs menschs menschs menschs menschs menschs menschs ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Oft wird „mensch” auch als {https://de.wikipedia.org/wiki/Generalisierendes_Personalpronomen=generalisierendes Pronomen} benutzt (statt „man”).@Eher als eines von mehreren Pronomen verwendet ({https://nibi.space/pronomen#mensch=laut nibi.space}).
|
||||||
nin,nin/nim Neopronomen „nin“ FALSE nin nimser nim nin nimse nimser nimser nimse nims nimses nimsem nimsen nims nimses nimsem nims din dins dim din diesin diesins diesim diesin FALSE FALSE TRUE Erstellt von {https://www.geschlechtsneutral.com/lit/Liminalis-2008-Sylvain-Balzer.pdf=Cabala de Sylvain und Carsten Balzer}
|
nin,nin/nim Neopronomen „nin“ FALSE nin nimser nim nin nimse nimser nimser nimse nims nimses nimsem nimsen nims nimses nimsem nims din dins dim din diesin diesins diesim diesin FALSE FALSE TRUE Erstellt von {https://www.geschlechtsneutral.com/lit/Liminalis-2008-Sylvain-Balzer.pdf=Cabala de Sylvain und Carsten Balzer}
|
||||||
oj,oj/juj,oj/ojm Neopronomen „oj“ FALSE oj jujer ojm ojn juje jujer jujer juje juj jujes jusem jusen jus juses jusem jus FALSE FALSE TRUE Erstellt von {https://www.frumble.de/blog/2021/03/26/ueberlegungen-zu-einer-genderneutralen-deutschen-grammatik=Frumble}. Siehe auch: {/substantive#Ojum=Ojum}.
|
oj,oj/juj,oj/ojm Neopronomen „oj“ FALSE oj jujer ojm ojn juje jujer jujer juje juj jujes jusem jusen jus juses jusem jus ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Erstellt von {https://www.frumble.de/blog/2021/03/26/ueberlegungen-zu-einer-genderneutralen-deutschen-grammatik=Frumble}. Siehe auch: {/substantive#Ojum=Ojum}.
|
||||||
per,per/per Neopronomen „per“ FALSE per perer per per pers pers pers pers pers pers pers pers pers pers pers pers FALSE FALSE TRUE Vom Wort „Person“
|
per,per/per Neopronomen „per“ FALSE per perer per per pers pers pers pers pers pers pers pers pers pers pers pers ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Vom Wort „Person“
|
||||||
ser,ser/sem Neopronomen „ser“ FALSE ser seser sem sen ses ses ses ses ses ses ses ses ses ses ses ses FALSE FALSE TRUE
|
ser,ser/sem Neopronomen „ser“ FALSE ser seser sem sen ses ses ses ses ses ses ses ses ses ses ses ses ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
sier,sier/siem Neopronomen „sier“ FALSE sier|zi:ɐ̯ sieser|zi:sɐ siem|zi:m sien|zi:n siese|zi:zə sieser|zi:zɐ sieser|zi:zɐ siese|zi:zə sies|zi:z sieses|zi:zəs siesem|zi:zəm siesen|zi:zən sies|zi:z sieses|zi:zəs siesem|zi:zəm sies|zi:z dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n FALSE FALSE TRUE Erstellt von {https://www.annaheger.de/pronomen21/=Illi Anna Heger}
|
sier,sier/siem Neopronomen „sier“ FALSE sier|zi:ɐ̯ sieser|zi:sɐ siem|zi:m sien|zi:n siese|zi:zə sieser|zi:zɐ sieser|zi:zɐ siese|zi:zə sies|zi:z sieses|zi:zəs siesem|zi:zəm siesen|zi:zən sies|zi:z sieses|zi:zəs siesem|zi:zəm sies|zi:z dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n FALSE FALSE TRUE Erstellt von {https://www.annaheger.de/pronomen21/=Illi Anna Heger}
|
||||||
they,they/them Äquivalent zu englischem „they“ FALSE they them them them their their their their their their their their their their their their FALSE FALSE TRUE Aus dem Englischen, sieh: {https://en.pronouns.page/they=they/them}
|
they,they/them Äquivalent zu englischem „they“ FALSE they them them them their their their their their their their their their their their their ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE Aus dem Englischen, sieh: {https://en.pronouns.page/they=they/them}
|
||||||
xier,xier/xiem Neopronomen „xier“ FALSE xier|ksi:ɐ̯ xieser|ksi:sɐ xiem|ksi:m xien|ksi:n xiese|ksi:zə xieser|ksi:ɐ̯sɐ xieser|ksi:ɐ̯sɐ xiese|ksi:zə xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xiesen|ksi:zən xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xies|ksi:z dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n FALSE FALSE TRUE Erstellt von {https://www.annaheger.de/pronomen33/=Illi Anna Heger}.
|
xier,xier/xiem Neopronomen „xier“ FALSE xier|ksi:ɐ̯ xieser|ksi:sɐ xiem|ksi:m xien|ksi:n xiese|ksi:zə xieser|ksi:ɐ̯sɐ xieser|ksi:ɐ̯sɐ xiese|ksi:zə xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xiesen|ksi:zən xies|ksi:z xieses|ksi:zəs xiesem|ksi:zəm xies|ksi:z dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n dier|di:ɐ̯ dies|di:s diem|di:m dien|di:n FALSE FALSE TRUE Erstellt von {https://www.annaheger.de/pronomen33/=Illi Anna Heger}.
|
||||||
zet,zet/zerm Neopronomen „zet“ FALSE zet zerner zerm zern zets zets zets zets zets zets zets zets zets zets zets zets FALSE FALSE TRUE
|
zet,zet/zerm Neopronomen „zet“ FALSE zet zerner zerm zern zets zets zets zets zets zets zets zets zets zets zets zets ~ ~ ~ ~ ~ ~ ~ ~ FALSE FALSE TRUE
|
||||||
er_sie,er_sie/ihm_ihr Neopronomen „er_sie“ FALSE er_sie seiner_ihrer ihm_ihr ihn_sie seine_ihre seiner_ihrer seiner_ihrer seine_ihre sein_ihr seines_ihres seinem_ihrem seinen_ihren sein_ihr seines_ihres seinem_ihrem sein_ihr der_die des_der dem_der den_die diese_r dieses_dieser diesem_dieser diese_n FALSE FALSE FALSE
|
er_sie,er_sie/ihm_ihr Neopronomen „er_sie“ FALSE er_sie seiner_ihrer ihm_ihr ihn_sie seine_ihre seiner_ihrer seiner_ihrer seine_ihre sein_ihr seines_ihres seinem_ihrem seinen_ihren sein_ihr seines_ihres seinem_ihrem sein_ihr der_die des_der dem_der den_die diese_r dieses_dieser diesem_dieser diese_n FALSE FALSE FALSE
|
||||||
er*sie,er*sie/ihm*ihr Neopronomen „er*sie“ FALSE er*sie seiner*ihrer ihm*ihr ihn*sie seine*ihre seiner*ihrer seiner*ihrer seine*ihre sein*ihr seines*ihres seinem*ihrem seinen*ihren sein*ihr seines*ihres seinem*ihrem sein*ihr der*die des*der dem*der den*die diese*r dieses*dieser diesem*dieser diese*n FALSE FALSE FALSE
|
er*sie,er*sie/ihm*ihr Neopronomen „er*sie“ FALSE er*sie seiner*ihrer ihm*ihr ihn*sie seine*ihre seiner*ihrer seiner*ihrer seine*ihre sein*ihr seines*ihres seinem*ihrem seinen*ihren sein*ihr seines*ihres seinem*ihrem sein*ihr der*die des*der dem*der den*die diese*r dieses*dieser diesem*dieser diese*n FALSE FALSE FALSE
|
||||||
er:sie,er:sie/ihm:ihr Neopronomen „er:sie“ FALSE er:sie seiner:ihrer ihm:ihr ihn:sie seine:ihre seiner:ihrer seiner:ihrer seine:ihre sein:ihr seines:ihres seinem:ihrem seinen:ihren sein:ihr seines:ihres seinem:ihrem sein:ihr der:die des:der dem:der den:die diese:r dieses:dieser diesem:dieser diese:n FALSE FALSE FALSE
|
er:sie,er:sie/ihm:ihr Neopronomen „er:sie“ FALSE er:sie seiner:ihrer ihm:ihr ihn:sie seine:ihre seiner:ihrer seiner:ihrer seine:ihre sein:ihr seines:ihres seinem:ihrem seinen:ihren sein:ihr seines:ihres seinem:ihrem sein:ihr der:die des:der dem:der den:die diese:r dieses:dieser diesem:dieser diese:n FALSE FALSE FALSE
|
||||||
|
|
@ -94,7 +94,7 @@ const buildPronounFromSlashes = (config, path) => {
|
|||||||
buildDict(function*() {
|
buildDict(function*() {
|
||||||
for (const m of MORPHEMES) {
|
for (const m of MORPHEMES) {
|
||||||
const index = slashMorphemes.indexOf(m);
|
const index = slashMorphemes.indexOf(m);
|
||||||
yield [m, index === -1 ? '' : morphemeChunks[index]];
|
yield [m, index === -1 ? null : morphemeChunks[index]];
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
[plural],
|
[plural],
|
||||||
@ -193,7 +193,19 @@ export const parsePronouns = (pronounsRaw) => {
|
|||||||
t.normative,
|
t.normative,
|
||||||
buildDict(function* () {
|
buildDict(function* () {
|
||||||
for (const morpheme of MORPHEMES) {
|
for (const morpheme of MORPHEMES) {
|
||||||
yield [morpheme, t[morpheme]];
|
let value;
|
||||||
|
if (t[morpheme] === null) {
|
||||||
|
// empty cells are parsed as null in dynamic parse mode,
|
||||||
|
// but most of the time an empty string is intended
|
||||||
|
value = '';
|
||||||
|
} else if (t[morpheme] === '~') {
|
||||||
|
// to really describe that a pronoun does not support a morpheme,
|
||||||
|
// tilde is used to describe null as in yaml.
|
||||||
|
value = null;
|
||||||
|
} else {
|
||||||
|
value = t[morpheme];
|
||||||
|
}
|
||||||
|
yield [morpheme, value];
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
[t.plural],
|
[t.plural],
|
||||||
|
@ -307,7 +307,7 @@ export class Pronoun {
|
|||||||
if (!morphemes.hasOwnProperty(m)) {
|
if (!morphemes.hasOwnProperty(m)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const [morpheme, pronunciation] = morphemes[m] ? morphemes[m].split('|') : [null, null];
|
const [morpheme, pronunciation] = typeof morphemes[m] === 'string' ? morphemes[m].split('|') : [null, null];
|
||||||
this.morphemes[m] = morpheme;
|
this.morphemes[m] = morpheme;
|
||||||
this.pronunciations[m] = pronunciation;
|
this.pronunciations[m] = pronunciation;
|
||||||
}
|
}
|
||||||
@ -405,17 +405,13 @@ export class Pronoun {
|
|||||||
morpheme = morpheme.substring(1);
|
morpheme = morpheme.substring(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.morphemes[morpheme]) {
|
if (this.morphemes[morpheme] === null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const options = this.morphemes[morpheme].split('&');
|
const options = this.morphemes[morpheme].split('&');
|
||||||
|
|
||||||
const result = options[counter % options.length];
|
const result = options[counter % options.length];
|
||||||
if (result === '') {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return capital ? capitalise(result) : result;
|
return capital ? capitalise(result) : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,23 +183,7 @@ describe('when configured that slashes contain some morphemes', () => {
|
|||||||
test('builds generated pronoun from all required morphemes', () => {
|
test('builds generated pronoun from all required morphemes', () => {
|
||||||
const actual = expect(buildPronoun(pronouns, 'ae/aer/aer/aerself'));
|
const actual = expect(buildPronoun(pronouns, 'ae/aer/aer/aerself'));
|
||||||
actual.toBeDefined();
|
actual.toBeDefined();
|
||||||
actual.toEqual(new Pronoun(
|
actual.toEqual(generatedPronouns.aerWithUnsetPossessivePronoun);
|
||||||
'ae/aer',
|
|
||||||
'',
|
|
||||||
false,
|
|
||||||
{
|
|
||||||
pronoun_subject: 'ae',
|
|
||||||
pronoun_object: 'aer',
|
|
||||||
possessive_determiner: 'aer',
|
|
||||||
possessive_pronoun: null,
|
|
||||||
reflexive: 'aerself',
|
|
||||||
},
|
|
||||||
[false],
|
|
||||||
[false],
|
|
||||||
[],
|
|
||||||
'__generator__',
|
|
||||||
false,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
test('builds nothing if morphemes are missing', () => {
|
test('builds nothing if morphemes are missing', () => {
|
||||||
expect(buildPronoun(pronouns, 'ae/aer/aer')).toBeUndefined();
|
expect(buildPronoun(pronouns, 'ae/aer/aer')).toBeUndefined();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { beforeEach, describe, expect, test } from '@jest/globals';
|
import { beforeEach, describe, expect, test } from '@jest/globals';
|
||||||
|
|
||||||
import { MergedPronounGroup, PronounGroup, PronounLibrary } from '../src/classes.js';
|
import { Example, ExamplePart, MergedPronounGroup, PronounGroup, PronounLibrary } from '../src/classes.js';
|
||||||
import { mockTranslations } from './fixtures/translations.js';
|
import { mockTranslations } from './fixtures/translations.js';
|
||||||
|
|
||||||
const translations = {
|
const translations = {
|
||||||
@ -15,6 +15,24 @@ mockTranslations(translations);
|
|||||||
const { default: pronouns, generated: generatedPronouns } = await import('./fixtures/pronouns.js');
|
const { default: pronouns, generated: generatedPronouns } = await import('./fixtures/pronouns.js');
|
||||||
const { default: translator } = await import('../src/translator.js');
|
const { default: translator } = await import('../src/translator.js');
|
||||||
|
|
||||||
|
describe('required morphemes for an example', () => {
|
||||||
|
const exampleParts = [
|
||||||
|
new ExamplePart(false, 'This house is '),
|
||||||
|
new ExamplePart(true, 'possessive_pronoun'),
|
||||||
|
];
|
||||||
|
const example = new Example(exampleParts, exampleParts);
|
||||||
|
|
||||||
|
test('are present if all morphemes are present', () => {
|
||||||
|
expect(example.requiredMorphemesPresent(pronouns.they)).toBe(true);
|
||||||
|
});
|
||||||
|
test('are present even if one morpheme is empty', () => {
|
||||||
|
expect(example.requiredMorphemesPresent(generatedPronouns.aerWithEmptyPossessivePronoun)).toBe(true);
|
||||||
|
});
|
||||||
|
test('are missing if one morpheme is null', () => {
|
||||||
|
expect(example.requiredMorphemesPresent(generatedPronouns.aerWithUnsetPossessivePronoun)).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('formatting a pronoun with slashes', () => {
|
describe('formatting a pronoun with slashes', () => {
|
||||||
describe('when slashes are not configured', () => {
|
describe('when slashes are not configured', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
53
test/fixtures/pronouns.js
vendored
53
test/fixtures/pronouns.js
vendored
@ -14,11 +14,8 @@ const he = new Pronoun(
|
|||||||
[false],
|
[false],
|
||||||
[false],
|
[false],
|
||||||
['he/him'],
|
['he/him'],
|
||||||
'',
|
null,
|
||||||
true,
|
true,
|
||||||
'',
|
|
||||||
'',
|
|
||||||
'',
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const she = new Pronoun(
|
const she = new Pronoun(
|
||||||
@ -35,11 +32,8 @@ const she = new Pronoun(
|
|||||||
[false],
|
[false],
|
||||||
[false],
|
[false],
|
||||||
['she/her'],
|
['she/her'],
|
||||||
'',
|
null,
|
||||||
true,
|
true,
|
||||||
'',
|
|
||||||
'',
|
|
||||||
'',
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const they = new Pronoun(
|
const they = new Pronoun(
|
||||||
@ -56,11 +50,10 @@ const they = new Pronoun(
|
|||||||
[true],
|
[true],
|
||||||
[true],
|
[true],
|
||||||
['they/them'],
|
['they/them'],
|
||||||
'',
|
null,
|
||||||
true,
|
true,
|
||||||
'',
|
null,
|
||||||
'themselves',
|
'reflexive',
|
||||||
'',
|
|
||||||
);
|
);
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -154,6 +147,40 @@ const aerPluralWithDescription = new Pronoun(
|
|||||||
'__generator__',
|
'__generator__',
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
const aerWithEmptyPossessivePronoun = new Pronoun(
|
||||||
|
'ae/aer',
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
{
|
||||||
|
pronoun_subject: 'ae',
|
||||||
|
pronoun_object: 'aer',
|
||||||
|
possessive_determiner: 'aer',
|
||||||
|
possessive_pronoun: '',
|
||||||
|
reflexive: 'aerself',
|
||||||
|
},
|
||||||
|
[false],
|
||||||
|
[false],
|
||||||
|
[],
|
||||||
|
'__generator__',
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
const aerWithUnsetPossessivePronoun = new Pronoun(
|
||||||
|
'ae/aer',
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
{
|
||||||
|
pronoun_subject: 'ae',
|
||||||
|
pronoun_object: 'aer',
|
||||||
|
possessive_determiner: 'aer',
|
||||||
|
possessive_pronoun: null,
|
||||||
|
reflexive: 'aerself',
|
||||||
|
},
|
||||||
|
[false],
|
||||||
|
[false],
|
||||||
|
[],
|
||||||
|
'__generator__',
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
const sSlashHe = new Pronoun(
|
const sSlashHe = new Pronoun(
|
||||||
's/he/hir',
|
's/he/hir',
|
||||||
@ -179,5 +206,7 @@ export const generated = {
|
|||||||
aerPluralHonorific,
|
aerPluralHonorific,
|
||||||
aerWithDescription,
|
aerWithDescription,
|
||||||
aerPluralWithDescription,
|
aerPluralWithDescription,
|
||||||
|
aerWithEmptyPossessivePronoun,
|
||||||
|
aerWithUnsetPossessivePronoun,
|
||||||
sSlashHe,
|
sSlashHe,
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user