better plurals page and GA stuff

This commit is contained in:
lingdocs 2021-09-30 15:48:19 -04:00
parent 034838af8c
commit a0b1c04d1d
12 changed files with 86 additions and 39 deletions

View File

@ -47,7 +47,7 @@ function App(props: RouteComponentProps) {
if (prod && !(user?.admin)) { if (prod && !(user?.admin)) {
ReactGA.pageview(window.location.pathname); ReactGA.pageview(window.location.pathname);
} }
}, [props.location.pathname]); }, [props.location.pathname, user]);
return ( return (
<> <>
<Header setNavOpen={setNavOpen} /> <Header setNavOpen={setNavOpen} />

View File

@ -27,6 +27,8 @@ function Table({ headRow, children, opts, wide }) {
<td key={`row ${i}, cell ${j}`} style={(cell && cell.gender) ? { backgroundColor: cell.gender === "m" ? mascColor : femColor } : {}}> <td key={`row ${i}, cell ${j}`} style={(cell && cell.gender) ? { backgroundColor: cell.gender === "m" ? mascColor : femColor } : {}}>
{isObject(cell) {isObject(cell)
? <Examples opts={opts}>{[cell]}</Examples> ? <Examples opts={opts}>{[cell]}</Examples>
: (!cell)
? ""
: cell : cell
} }
</td> </td>

View File

@ -35,9 +35,14 @@ Below are the **5 basic patterns for inflecting** nouns and adjectives. Notice h
Don't worry about memorizing them all perfectly to start. Instead keep looking back and use them as guides to help you as you get familiar with the inflections over time. Don't worry about memorizing them all perfectly to start. Instead keep looking back and use them as guides to help you as you get familiar with the inflections over time.
## 1. Words ending in a consonant / <InlinePs opts={opts} ps={{ p: "ـه", f: "a" }} /> ## 1. Basic
<InflectionCarousel items={startingWord(words, "consonant-unisex", "غټ")} /> These words always end in:
- **Masculine:** - consonant or a shwa (<InlinePs opts={opts} ps={{ p: "ـه", f: "-u" }} /> vowel)
- **Feminine:** - <InlinePs opts={opts} ps={{ p: "ـه", f: "-a" }} />
<InflectionCarousel items={startingWord(words, "basic-unisex", "غټ")} />
<details> <details>
@ -77,7 +82,7 @@ This is very similar to pattern #2, but with the stress on the last syllable the
<InflectionCarousel items={startingWord(words, "ey-stressed-unisex", "لومړی")} /> <InflectionCarousel items={startingWord(words, "ey-stressed-unisex", "لومړی")} />
## 4. Words with the "Pashtun" pattern ## 4. Words with the "Pashtoon" pattern
These words are a little irregular but you can see a common patten based around: These words are a little irregular but you can see a common patten based around:
@ -94,3 +99,10 @@ These are also a little irregular but instead of lengthening the 1st masculine i
<InflectionCarousel items={startingWord(words, "short-irreg-unisex", "غل")} /> <InflectionCarousel items={startingWord(words, "short-irreg-unisex", "غل")} />
## Not all words inflect
It's important to know that *not all words can be inflected*. If a word doesn't fit into one of these 5 patterns, you can't inflect it. For example, if an adjective ends in an <InlinePs opts={opts} ps={{ p: "ـه", f: "-a" }} /> in the masculine form, you can't inflect it because it doesn't fit any of the patterns above. 🙅‍♂️
<Examples opts={opts}>{[
{ p: "خفه", f: "khufa", e: "sad", sub: "...is also sad because it can't inflect like all the other words 😢" },
]}</Examples>

View File

@ -20,7 +20,7 @@ import {
} from "../../games/games"; } from "../../games/games";
import GameDisplay from "../../games/GameDisplay"; import GameDisplay from "../../games/GameDisplay";
export const femEndingWConsonant = words.filter((w) => w.category === "consonant-fem"); export const femEndingWConsonant = words.filter((w) => w.category === "basic-fem");
export const Masc = () => ( export const Masc = () => (
<span style={{ backgroundColor: mascColor }}>masculine</span> <span style={{ backgroundColor: mascColor }}>masculine</span>

View File

@ -29,39 +29,47 @@ export function PluralTable({ children, inflection }) {
In Pashto **there are many, many ways that nouns become plural**. It may seem overwhelming at first to learn *all* these different ways of nouns becoming plural. In the beginning, just look at a few. Then keep coming back and see if you're getting familiar with all the different ways that nouns become plural. In Pashto **there are many, many ways that nouns become plural**. It may seem overwhelming at first to learn *all* these different ways of nouns becoming plural. In the beginning, just look at a few. Then keep coming back and see if you're getting familiar with all the different ways that nouns become plural.
Basically, to make a noun plural you have the following options:
1. <Link to="/inflection/inflection-intro">Inflect</Link> it.
2. If the word isn't inflectable you add a <Link to="/nouns/nouns-plural/#plural-endings">plural ending</Link>, or
3. If the word has an <Link to="/nouns/nouns-plural/#irregular-plurals">irregular plural</Link> use that.
## Plural by Inflection ## Plural by Inflection
The first way is <Link to="/inflection/inflection-intro">inflect</Link> a word if possible. Not all words inflect, but if they do, you can use the first inflection to make them plural. To understand how to inflect words, have a look at the <Link to="/inflection/inflection-patterns/">5 inflection patterns</Link>. Here are some examples of words made plural using inflection.
### With masculine nouns ### With masculine nouns
<PluralTable inflection>{[ <PluralTable inflection>{[
[{ p: "سړی", f: "saRey", e: "man" }, { p: "سړي", f: "saRee", e: "men" }], [{p: "سړی", f: "saRéy", e: "man", sub: <Link to="/inflection/inflection-patterns/#3-words-ending-in-a-stressed-inlineps-optsopts-ps-p-ی-f-éy--">pattern #3</Link> }, { p: "سړي", f: "saRée", e: "men" }],
[{ p: "سپی", f: "spey", e: "dog" }, { p: "سپي", f: "spee", e: "dog" }], [{ p: "سپی", f: "spey", e: "dog", sub: <Link to="/inflection/inflection-patterns/#3-words-ending-in-a-stressed-inlineps-optsopts-ps-p-ی-f-éy--">pattern #3</Link> }, { p: "سپي", f: "spee", e: "dog" }],
[{ p: "پښتون", f: "puxtóon", e: "Pashtun" }, { p: "پښتانه", f: "puxtaanu", e: "Pashtuns" }], [{ p: "پښتون", f: "puxtóon", e: "Pashtun", sub: <Link to="/inflection/inflection-patterns/#4-words-with-the-pashtoon-pattern">pattern #4</Link> }, { p: "پښتانه", f: "puxtaanu", e: "Pashtuns" }],
[{ p: "غل", f: "ghul", e: "thief" }, { p: "غله", f: "ghlu", e: "thieves" }], [{ p: "غل", f: "ghul", e: "thief", sub: <Link to="">pattern #5</Link> }, { p: "غله", f: "ghlu", e: "thieves" }],
]}</PluralTable> ]}</PluralTable>
### With feminine nouns ### With feminine nouns
<PluralTable inflection>{[ <PluralTable inflection>{[
[{ p: "ښڅه", f: "xudza", e: "woman" }, { p: "ښځې", f: "xudze", e: "women" }], [{ p: "ښڅه", f: "xudza", e: "woman", sub: <Link to="/inflection/inflection-patterns/#1-basic">pattern #1</Link> }, { p: "ښځې", f: "xudze", e: "women" }],
[{ p: "پښتنه", f: "puxtana", e: "Pashtun (f.)" }, { p: "پښتنې", f: "puxtane", e: "Pashtuns (f.)" }], [{ p: "پښتنه", f: "puxtana", e: "Pashtun (f.)", sub: <Link to="/inflection/inflection-patterns/#5-shorter-words-that-squish">pattern #5</Link> }, { p: "پښتنې", f: "puxtane", e: "Pashtuns (f.)" }],
[{ p: "لار", f: "laar", e: "road" }, { p: "لارې", f: "laare", e: "roads" }], [{ p: "سختي", f: "sakhtée", e: "difficulty", sub: <Link to="inflection/feminine-inflection/#feminine-nouns-ending-in-inlineps-optsopts-ps-p-ي-f-ee--">ending in <InlinePs opts={opts}>{{ p: "ي", f: "ee" }}</InlinePs></Link> }, { p: "سختۍ", f: "sakhtúy", e: "difficulties" }],
[{ p: "سختي", f: "sakhtée", e: "difficulty" }, { p: "سختۍ", f: "sakhtúy", e: "difficulties" }],
[{ p: "ناجوړتیا", f: "naajoRtyaa", e: "sickness" }, { p: "ناجوړتیاوې", f: "naajoRtyaawe", e: "sicknesses" }],
]}</PluralTable> ]}</PluralTable>
Note that in some forms of inflection with feminine nouns the word does not change at all in the first inflection. In these cases the singular and plural are just the same. Note that in some forms of inflection with feminine nouns the word does not change at all in the first inflection. In these cases the singular and plural are just the same.
<PluralTable inflection>{[ <PluralTable inflection>{[
[{ p: "ملګرې", f: "malgúre", e: "friend (f.)" }, { p: "ملګرې", f: "malgúre", e: "friends (f.)" }], [{ p: "ملګرې", f: "malgúre", e: "friend (f.)", sub: <Link to="/inflection/inflection-patterns/#2-words-ending-in-an-unstressed-inlineps-optsopts-ps-p-ی-f-ey--">pattern #2</Link> }, { p: "ملګرې", f: "malgúre", e: "friends (f.)" }],
[{ p: "کړکۍ", f: "kuRkúy", e: "window" }, { p: "کړکۍ", f: "kuRkúy", e: "windows" }] [{ p: "کړکۍ", f: "kuRkúy", e: "window", sub: <Link to="/inflection/feminine-inflection/#feminine-nouns-ending-in-inlineps-optsopts-ps-p-ۍ-f-uy--">ending in <InlinePs opts={opts}>{{ p: "ۍ", f: "uy" }}</InlinePs></Link> }, { p: "کړکۍ", f: "kuRkúy", e: "windows" }]
]}</PluralTable> ]}</PluralTable>
## Inanimate Plural Ending <InlinePs opts={opts} ps={{ p: "ونه", f: "óona" }} /> ## Plural Endings
For masculine inanimate words that end in a consonant (and some others) you can add the **<InlinePs opts={opts} ps={{ p: "ـونه", f: "-óona" }} /> ending** to make the noun plural. ### Masculine Plural Endings
#### Inanimate Plural Ending <InlinePs opts={opts} ps={{ p: "ونه", f: "óona" }} />
This only works with **masculine nouns** that fit into the <Link to="/nouns/nouns-unisex/#1-basic">basic pattern</Link>. It's *usually* only used with inanimate things (not with people or animals). But there are exceptions...
<PluralTable>{[ <PluralTable>{[
[{ p: "کور", f: "kor", e: "house" }, { p: "کورونه", f: "koróona", e: "houses" }], [{ p: "کور", f: "kor", e: "house" }, { p: "کورونه", f: "koróona", e: "houses" }],
@ -69,11 +77,9 @@ For masculine inanimate words that end in a consonant (and some others) you can
[{ p: "کتاب", f: "kitáab", e: "book" }, { p: "کتابونه", f: "kitaabóona", e: "books" }], [{ p: "کتاب", f: "kitáab", e: "book" }, { p: "کتابونه", f: "kitaabóona", e: "books" }],
]}</PluralTable> ]}</PluralTable>
## Animate Plural Ending <InlinePs opts={opts} ps={{ p: "ان", f: "áan" }} /> #### Animate Plural Ending <InlinePs opts={opts} ps={{ p: "ان", f: "aan" }} />
For many animate nouns (and some others), you can add a <InlinePs opts={opts} ps={{ p: "ان", f: "áan" }} /> ending to make it plural. If the noun ends in a vowel, you will often need to add a <InlinePs opts={opts} ps={{ p: "ګ", f: "g" }} /> before the ending. This is *usually* only used with animate things (people or animals), but there are exceptions...
### With masculine nouns
<PluralTable>{[ <PluralTable>{[
[{ p: "دوست", f: "dost", e: "friend" }, { p: "دوستان", f: "dostáan", e: "friends" }], [{ p: "دوست", f: "dost", e: "friend" }, { p: "دوستان", f: "dostáan", e: "friends" }],
@ -81,15 +87,7 @@ For many animate nouns (and some others), you can add a <InlinePs opts={opts} ps
[{ p: "ماما", f: "maamáa", e: "uncle" }, { p: "ماماګان", f: "maamaagáan", e: "uncles" }], [{ p: "ماما", f: "maamáa", e: "uncle" }, { p: "ماماګان", f: "maamaagáan", e: "uncles" }],
]}</PluralTable> ]}</PluralTable>
### With feminine nouns **Note**: If the word ends with a non-shwa vowel, (ie. not 'u') a <InlinePs opts={opts} ps={{ p: "ګ", f: "g" }} /> can be added to seperate the ending and the vowel.
When we use this with feminine nouns, we need to add an <InlinePs opts={opts} ps={{ p: "ې", f: "e" }} /> on the end.
<PluralTable>{[
[{ p: "بيشو", f: "peeshó", e: "cat 🐱" }, { p: "پیشوګانې", f: "peeshogáane", e: "cats 🐱🐱" }],
[{ p: "استاذ", f: "Ustáaza", e: "teacher (f.) 👩‍🏫" }, { p: "استاذانې", f: "Ustaazáane", e: "teachers (f.) 👩‍🏫👩‍🏫" }],
[{ p: "ډاکټره", f: "DakTára", e: "doctor (f.) 👩‍⚕️"}, { p: "ډاکټرانې", f: "DakTaráane", e: "doctors (f.) 👩‍⚕️👩‍⚕️" }],
]}</PluralTable>
**Note:** Sometimes the <InlinePs opts={opts} ps={{ p: "ونه", f: "óona" }} /> ending is used with animate nouns, and somethimes the <InlinePs opts={opts} ps={{ p: "ان", f: "áan" }} /> ending is used with inanimate nouns as well. For example: **Note:** Sometimes the <InlinePs opts={opts} ps={{ p: "ونه", f: "óona" }} /> ending is used with animate nouns, and somethimes the <InlinePs opts={opts} ps={{ p: "ان", f: "áan" }} /> ending is used with inanimate nouns as well. For example:
@ -97,6 +95,27 @@ When we use this with feminine nouns, we need to add an <InlinePs opts={opts} ps
[{ p: "شی", f: "shey", e: "thing" }, { p: "شیان", f: "sheyáan", e: "things" }], [{ p: "شی", f: "shey", e: "thing" }, { p: "شیان", f: "sheyáan", e: "things" }],
]}</PluralTable> ]}</PluralTable>
### Feminine Plural Endings
Depending on the dialect, you can either add <InlinePs opts={opts} ps={{ p: "وې", f: "we" }} />, or <InlinePs opts={opts} ps={{ p: "ګانې", f: "gáane" }} /> to the end of the word to make it plural.
<PluralTable>{[
[{ p: "دعا", f: "dUáa", e: "prayer" }, { p: "دعاوې", f: "dUáawe", e: "prayers" }],
[null, { p: "دعاګانې", f: "dUaagáane", e: "prayers" }],
[{ p: "بيشو", f: "peeshó", e: "cat 🐱" }, { p: "پیشووې", f: "peeshówe", e: "cats 🐱🐱" }],
[null, { p: "پیشوګانې", f: "peeshogáane", e: "cats 🐱🐱" }],
]}</PluralTable>
#### With unisex animate nouns
When a noun is a <Link to="/nouns/nouns-unisex/">unisex noun</Link>, you often add an <InlinePs opts={opts} ps={{ p: "ې", f: "e" }} /> on the end of the <Link to="/nouns/nouns-plural/#animate-plural-ending-inlineps-optsopts-ps-p-ان-f-aan--">animate <InlinePs opts={opts} ps={{ p: "ان", f: "aan" }} /> ending</Link> instead of using the <Link to="/nouns/nouns-plural/#with-feminine-nouns">regular inflection</Link>.
<PluralTable>{[
[{ p: "استاذ", f: "Ustáaza", e: "teacher (f.) 👩‍🏫" }, { p: "استاذانې", f: "Ustaazáane", e: "teachers (f.) 👩‍🏫👩‍🏫" }],
[{ p: "ډاکټره", f: "DakTára", e: "doctor (f.) 👩‍⚕️"}, { p: "ډاکټرانې", f: "DakTaráane", e: "doctors (f.) 👩‍⚕️👩‍⚕️" }],
]}</PluralTable>
## Irregular Plurals ## Irregular Plurals
Some nouns just have completely irregular plural forms. Some nouns just have completely irregular plural forms.

View File

@ -19,9 +19,9 @@ There are many words for people and animals in Pashto that can be used in both m
To make the male and female forms you just follow the <Link to="/inflection/inflection-patterns">5 inflection patterns</Link>. If you haven't mastered the <Link to="/inflection/inflection-patterns">5 inflection patterns</Link> yet, don't worry, we'll review how each of them works with the unisex nouns below. To make the male and female forms you just follow the <Link to="/inflection/inflection-patterns">5 inflection patterns</Link>. If you haven't mastered the <Link to="/inflection/inflection-patterns">5 inflection patterns</Link> yet, don't worry, we'll review how each of them works with the unisex nouns below.
### 1. Words ending in a consonant / <InlinePs opts={opts} ps={{ p: "ـه", f: "a" }} /> ### 1. Basic
Just like with other words ending in a consonant, you add an <InlinePs opts={opts} ps={{ p: "ـه", f: "a" }} /> on the end to make them feminine. Just like with other words following the <Link to="/inflection/inflection-patterns/#1-basic">basic pattern</Link>, you add an <InlinePs opts={opts} ps={{ p: "ـه", f: "a" }} /> on the end to make them feminine.
<GenderTable rows={[ <GenderTable rows={[
{ {
@ -40,11 +40,19 @@ Just like with other words ending in a consonant, you add an <InlinePs opts={opt
ex: {p: "نرسه", f:"nursa", e: "female nurse" }, ex: {p: "نرسه", f:"nursa", e: "female nurse" },
}, },
}, },
{
masc: {
ex: { p: "اتل", f: "atal", e: "male hero" },
},
fem: {
ex: { p: "اتله", f: "atala", e: "female hero" },
},
},
]} /> ]} />
### 2. Words ending in an unstressed <InlinePs opts={opts} ps={{ p: "ی", f: "ey" }} /> ### 2. Words ending in an unstressed <InlinePs opts={opts} ps={{ p: "ی", f: "ey" }} />
With the feminine form the <InlinePs opts={opts} ps={{ p: "ی", f: "ey" }} /> on the end becomes <InlinePs opts={opts} ps={{ p: "ې", f: "e" }} />. The feminine form the <InlinePs opts={opts} ps={{ p: "ی", f: "ey" }} /> on the end becomes <InlinePs opts={opts} ps={{ p: "ې", f: "e" }} />. See <Link to="/inflection/inflection-patterns/#2-words-ending-in-an-unstressed-inlineps-optsopts-ps-p-ی-f-ey--">pattern</Link>.
<GenderTable rows={[ <GenderTable rows={[
{ {
@ -75,7 +83,7 @@ With the feminine form the <InlinePs opts={opts} ps={{ p: "ی", f: "ey" }} /> on
### 3. Words ending in a stressed <InlinePs opts={opts} ps={{ p: "ی", f: "éy" }} /> ### 3. Words ending in a stressed <InlinePs opts={opts} ps={{ p: "ی", f: "éy" }} />
If the accent comes on the end of the word, the femine form is a little different. With these words the <InlinePs opts={opts} ps={{ p: "ی", f: "éy" }} /> on the end becomes <InlinePs opts={opts} ps={{ p: "ۍ", f: "úy" }} />. If the accent comes on the end of the word, the femine form is a little different. With these words the <InlinePs opts={opts} ps={{ p: "ی", f: "éy" }} /> on the end becomes <InlinePs opts={opts} ps={{ p: "ۍ", f: "úy" }} />. See <Link to="/inflection/inflection-patterns/#3-words-ending-in-a-stressed-inlineps-optsopts-ps-p-ی-f-éy--">pattern</Link>.
<GenderTable rows={[ <GenderTable rows={[
{ {
@ -104,7 +112,9 @@ If the accent comes on the end of the word, the femine form is a little differen
}, },
]} /> ]} />
### 4. Words with the "Pashtun" pattern ### 4. Words with the "Pashtoon" pattern
See <Link to="/inflection/inflection-patterns/#4-words-with-the-pashtoon-pattern">pattern</Link>.
<GenderTable rows={[ <GenderTable rows={[
{ {
@ -175,6 +185,8 @@ If the accent comes on the end of the word, the femine form is a little differen
### 5. Shorter words that squish ### 5. Shorter words that squish
See <Link to="/inflection/inflection-patterns/#5-shorter-words-that-squish">pattern</Link>.
<GenderTable rows={[ <GenderTable rows={[
{ {
masc: { masc: {

View File

@ -7,6 +7,8 @@
*/ */
module.exports = [ module.exports = [
{ ts: 1527815408, e: "asleep" }, // ویده - weedú
{ ts: 1527812796, e: "good" }, // ښه - xu
{ ts: 1527821744, e: "cook, chef" }, // آشپز - aashpáz { ts: 1527821744, e: "cook, chef" }, // آشپز - aashpáz
{ ts: 1527812461, e: "hero, brave" }, // اتل - atul { ts: 1527812461, e: "hero, brave" }, // اتل - atul
{ ts: 1527821649, e: "impressive, effective, influencing" }, // اثرناک - asarnáak { ts: 1527821649, e: "impressive, effective, influencing" }, // اثرناک - asarnáak

View File

@ -76,4 +76,5 @@ module.exports = [
{ ts: 1527813585, e: `person, human being, creature` }, // وګړی - wagúRey { ts: 1527813585, e: `person, human being, creature` }, // وګړی - wagúRey
{ ts: 1527814672, e: `spokesperson, spokesman, newcaster` }, // ویاند - wayaand { ts: 1527814672, e: `spokesperson, spokesman, newcaster` }, // ویاند - wayaand
{ ts: 1586454081484, e: `orphan` }, // یتیم - yateem { ts: 1586454081484, e: `orphan` }, // یتیم - yateem
{ ts: 1527812461, e: "hero" }, // اتل - atal
]; ];

View File

@ -12,7 +12,6 @@ module.exports = [
{ ts: 1527812802, e: "donkey" }, // خر - khur { ts: 1527812802, e: "donkey" }, // خر - khur
{ ts: 1527813293, e: "red, hot" }, // سور - soor { ts: 1527813293, e: "red, hot" }, // سور - soor
{ ts: 1527815265, e: "green, blue" }, // شین - sheen { ts: 1527815265, e: "green, blue" }, // شین - sheen
{ ts: 1527812796, e: "good" }, // ښه - xu
{ ts: 1527812624, e: "thief" }, // غل - ghul { ts: 1527812624, e: "thief" }, // غل - ghul
{ ts: 1527815087, e: "dead" }, // مړ - muR { ts: 1527815087, e: "dead" }, // مړ - muR
{ ts: 1527814151, e: "companion, friend" }, // مل - mal { ts: 1527814151, e: "companion, friend" }, // مل - mal

File diff suppressed because one or more lines are too long