From a02658f3a793e38e11eef12f51d6c0e701668fe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Fil=C3=ADpek?= Date: Tue, 19 Apr 2022 10:06:52 +0200 Subject: [PATCH 1/3] -sklonovani slova obec -sklonovani slova obec --- src/Inflection.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Inflection.php b/src/Inflection.php index b028c2f..8c27f12 100644 --- a/src/Inflection.php +++ b/src/Inflection.php @@ -215,6 +215,8 @@ class Inflection ["f", "-a", "y", "e", "u", "o", "e", "ou", "y", "", "ám", "y", "y", "ách", "ami"], // píseň ["f", "-eň", "ně", "ni", "eň", "ni", "ni", "ní", "ně", "ní", "ním", "ně", "ně", "ních", "němi"], + // obec + ["f", "-ec", "ce", "ci", "ci", "ec", "ci", "cí", "ce", "cí", "cím", "ce", "ce", "cích", "cemi"], // Třeboň ["f", "-oň", "oně", "oni", "oň", "oni", "oni", "oní", "oně", "oní", "oním", "oně", "oně", "oních", "oněmi"], // beznaděj From 311d47a16e3b49e90dbbe857bc5f5cedcc1e4a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Fil=C3=ADpek?= Date: Tue, 19 Apr 2022 10:58:09 +0200 Subject: [PATCH 2/3] Update Inflection.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -úprava tvarů pro slovo obec --- src/Inflection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Inflection.php b/src/Inflection.php index 8c27f12..55bdb9e 100644 --- a/src/Inflection.php +++ b/src/Inflection.php @@ -216,7 +216,7 @@ class Inflection // píseň ["f", "-eň", "ně", "ni", "eň", "ni", "ni", "ní", "ně", "ní", "ním", "ně", "ně", "ních", "němi"], // obec - ["f", "-ec", "ce", "ci", "ci", "ec", "ci", "cí", "ce", "cí", "cím", "ce", "ce", "cích", "cemi"], + ["f", "-ec", "ce", "ci", "ec", "ci", "ci", "cí", "cí", "ce", "cí", "cím", "ce", "ce", "cích", "cemi"], // Třeboň ["f", "-oň", "oně", "oni", "oň", "oni", "oni", "oní", "oně", "oní", "oním", "oně", "oně", "oních", "oněmi"], // beznaděj From 0ce2694ef80cf2f517f6b6d714f66af6fb64c605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Fil=C3=ADpek?= Date: Wed, 20 Apr 2022 13:42:47 +0200 Subject: [PATCH 3/3] -dalsi drobne upravy + pridani sklonovani mesto --- src/Inflection.php | 1210 ++++++++++++++++++++++---------------------- 1 file changed, 610 insertions(+), 600 deletions(-) diff --git a/src/Inflection.php b/src/Inflection.php index 55bdb9e..3774bdf 100644 --- a/src/Inflection.php +++ b/src/Inflection.php @@ -7,13 +7,15 @@ * @author Mikuláš Dítě 2014 */ class Inflection -{ - + { + /** * @var array */ protected $replacements = []; - + + protected $gender = NULL; + /** * Inflection patterns * Pattern (2nd key) may either @@ -34,319 +36,321 @@ class Inflection * } */ protected $patterns = [ - // hořký - ["m", "-ký", "kého", "kému", "ký/kého", "ký", "kém", "kým", "ké/cí", "kých", "kým", "ké", "ké/cí", "kých", "kými"], - // modrý - ["m", "-rý", "rého", "rému", "rý/rého", "rý", "rém", "rým", "ré/ří", "rých", "rým", "ré", "ré/ří", "rých", "rými"], - // jednodychý - ["m", "-chý", "chého", "chému", "chý/chého", "chý", "chém", "chým", "ché/ší", "chých", "chým", "ché", "ché/ší", "chých", "chými"], - // strohý - ["m", "-hý", "hého", "hému", "hý/hého", "hý", "hém", "hým", "hé/zí", "hých", "hým", "hé", "hé/zí", "hých", "hými"], - // jedlý - ["m", "-ý", "ého", "ému", "ý/ého", "ý", "ém", "ým", "é/í", "ých", "ým", "é", "é/í", "ých", "ými"], - // spící - ["m", "-([aeěií])cí", "0cího", "0címu", "0cí/0cího", "0cí", "0cím", "0cím", "0cí", "0cích", "0cím", "0cí", "0cí", "0cích", "0cími"], - ["f", "-([aeěií])cí", "0cí", "0cí", "0cí", "0cí", "0cí", "0cí", "0cí", "0cích", "0cím", "0cí", "0cí", "0cích", "0cími"], - ["s", "-([aeěií])cí", "0cího", "0címu", "0cí/0cího", "0cí", "0cím", "0cím", "0cí", "0cích", "0cím", "0cí", "0cí", "0cích", "0cími"], - // svatební - ["m", "-([bcčdhklmnprsštvzž])ní", "0ního", "0nímu", "0ní/0ního", "0ní", "0ním", "0ním", "0ní", "0ních", "0ním", "0ní", "0ní", "0ních", "0ními"], - ["f", "-([bcčdhklmnprsštvzž])ní", "0ní", "0ní", "0ní", "0ní", "0ní", "0ní", "0ní", "0ních", "0ním", "0ní", "0ní", "0ních", "0ními"], - ["s", "-([bcčdhklmnprsštvzž])ní", "0ního", "0nímu", "0ní/0ního", "0ní", "0ním", "0ním", "0ní", "0ních", "0ním", "0ní", "0ní", "0ních", "0ními"], - // držitel - ["m", "-([i])tel", "0tele", "0teli", "0tele", "0teli", "0teli", "0telem", "0telé", "0telů", "0telům", "0tele", "0telé", "0telích", "0teli"], - // přítel - ["m", "-([í])tel", "0tele", "0teli", "0tele", "0teli", "0teli", "0telem", "átelé", "átel", "átelům", "átele", "átelé", "átelích", "áteli"], - // Marcel - ["m", "-([c])el", "0ela", "0elovi", "0ela", "0eli", "0elovi", "0elem", "celové", "celů", "celům", "cely", "celové", "celích", "cely"], - // Daniel - ["m", "-([i])el", "0ela", "0elovi", "0ela", "0eli", "0elovi", "0elem", "ielové", "ielů", "ielům", "iely", "ielové", "ielích", "iely"], - // Alois - ["m", "-([o])is", "0ise", "0isovi", "0ise", "0isi", "0isovi", "0isem", "isové", "isů", "isům", "isovy", "isové", "isích", "isi"], - // Luděk - ["m", "-([o])děk", "0ďka", "0ďkovi", "0ďka", "0ďku", "0ďkovi", "0ďkem", "ďkové", "ďků", "ďkům", "ďky", "ďkové", "ďcích", "ďky"], - // malé - ["s", "-é", "ého", "ému", "é", "é", "ém", "ým", "á", "ých", "ým", "á", "á", "ých", "ými"], - // malá - ["f", "-á", "é", "é", "ou", "á", "é", "ou", "é", "ých", "ým", "é", "é", "ých", "ými"], - - ["-", "já", "mne", "mně", "mne/mě", "já", "mně", "mnou", "my", "nás", "nám", "nás", "my", "nás", "námi"], - ["-", "ty", "tebe", "tobě", "tě/tebe", "ty", "tobě", "tebou", "vy", "vás", "vám", "vás", "vy", "vás", "vámi"], - ["-", "my", "", "", "", "", "", "", "my", "nás", "nám", "nás", "my", "nás", "námi"], - ["-", "vy", "", "", "", "", "", "", "vy", "vás", "vám", "vás", "vy", "vás", "vámi"], - ["m", "on", "něho", "mu/jemu/němu", "ho/jej", "on", "něm", "ním", "oni", "nich", "nim", "je", "oni", "nich", "jimi/nimi"], - ["m", "oni", "", "", "", "", "", "", "oni", "nich", "nim", "je", "oni", "nich", "jimi/nimi"], - ["f", "ony", "", "", "", "", "", "", "ony", "nich", "nim", "je", "ony", "nich", "jimi/nimi"], - ["s", "ono", "něho", "mu/jemu/němu", "ho/jej", "ono", "něm", "ním", "ona", "nich", "nim", "je", "ony", "nich", "jimi/nimi"], - ["f", "ona", "ní", "ní", "ji", "ona", "ní", "ní", "ony", "nich", "nim", "je", "ony", "nich", "jimi/nimi"], - ["m", "ten", "toho", "tomu", "toho", "ten", "tom", "tím", "ti", "těch", "těm", "ty", "ti", "těch", "těmi"], - ["f", "ta", "té", "té", "tu", "ta", "té", "tou", "ty", "těch", "těm", "ty", "ty", "těch", "těmi"], - ["s", "to", "toho", "tomu", "toho", "to", "tom", "tím", "ta", "těch", "těm", "ta", "ta", "těch", "těmi"], - - // přivlastňovací zájmena - ["m", "můj", "mého", "mému", "mého", "můj", "mém", "mým", "mí", "mých", "mým", "mé", "mí", "mých", "mými"], - ["f", "má", "mé", "mé", "mou", "má", "mé", "mou", "mé", "mých", "mým", "mé", "mé", "mých", "mými"], - ["f", "moje", "mé", "mé", "mou", "má", "mé", "mou", "moje", "mých", "mým", "mé", "mé", "mých", "mými"], - ["s", "mé", "mého", "mému", "mé", "moje", "mém", "mým", "mé", "mých", "mým", "má", "má", "mých", "mými"], - ["s", "moje", "mého", "mému", "moje", "moje", "mém", "mým", "moje", "mých", "mým", "má", "má", "mých", "mými"], - - ["m", "tvůj", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tví", "tvých", "tvým", "tvé", "tví", "tvých", "tvými"], - ["f", "tvá", "tvé", "tvé", "tvou", "tvá", "tvé", "tvou", "tvé", "tvých", "tvým", "tvé", "tvé", "tvých", "tvými"], - ["f", "tvoje", "tvé", "tvé", "tvou", "tvá", "tvé", "tvou", "tvé", "tvých", "tvým", "tvé", "tvé", "tvých", "tvými"], - ["s", "tvé", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tvá", "tvých", "tvým", "tvé", "tvá", "tvých", "tvými"], - ["s", "tvoje", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tvá", "tvých", "tvým", "tvé", "tvá", "tvých", "tvými"], - - ["m", "náš", "našeho", "našemu", "našeho", "náš", "našem", "našim", "naši", "našich", "našim", "naše", "naši", "našich", "našimi"], - ["f", "naše", "naší", "naší", "naši", "naše", "naší", "naší", "naše", "našich", "našim", "naše", "naše", "našich", "našimi"], - ["s", "naše", "našeho", "našemu", "našeho", "naše", "našem", "našim", "naše", "našich", "našim", "naše", "naše", "našich", "našimi"], - - ["m", "váš", "vašeho", "vašemu", "vašeho", "váš", "vašem", "vašim", "vaši", "vašich", "vašim", "vaše", "vaši", "vašich", "vašimi"], - ["f", "vaše", "vaší", "vaší", "vaši", "vaše", "vaší", "vaší", "vaše", "vašich", "vašim", "vaše", "vaše", "vašich", "vašimi"], - ["s", "vaše", "vašeho", "vašemu", "vašeho", "vaše", "vašem", "vašim", "vaše", "vašich", "vašim", "vaše", "vaše", "vašich", "vašimi"], - - ["m", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho"], - ["f", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho"], - ["s", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho"], - - ["m", "její", "jejího", "jejímu", "jejího", "její", "jejím", "jejím", "její", "jejích", "jejím", "její", "její", "jejích", "jejími"], - ["s", "její", "jejího", "jejímu", "jejího", "její", "jejím", "jejím", "její", "jejích", "jejím", "její", "její", "jejích", "jejími"], - ["f", "její", "její", "její", "její", "její", "její", "její", "její", "jejích", "jejím", "její", "její", "jejích", "jejími"], - - ["m", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich"], - ["s", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich"], - ["f", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich"], - - // výjimky (zvl. běžná slova) - ["m", "-bůh", "boha", "bohu", "boha", "bože", "bohovi", "bohem", "bozi/bohové", "bohů", "bohům", "bohy", "bozi/bohové", "bozích", "bohy"], - ["m", "-pan", "pana", "panu", "pana", "pane", "panu", "panem", "páni/pánové", "pánů", "pánům", "pány", "páni/pánové", "pánech", "pány"], - ["s", "moře", "moře", "moři", "moře", "moře", "moři", "mořem", "moře", "moří", "mořím", "moře", "moře", "mořích", "moři"], - ["-", "dveře", "", "", "", "", "", "", "dveře", "dveří", "dveřím", "dveře", "dveře", "dveřích", "dveřmi"], - ["-", "housle", "", "", "", "", "", "", "housle", "houslí", "houslím", "housle", "housle", "houslích", "houslemi"], - ["-", "šle", "", "", "", "", "", "", "šle", "šlí", "šlím", "šle", "šle", "šlích", "šlemi"], - ["-", "muka", "", "", "", "", "", "", "muka", "muk", "mukám", "muka", "muka", "mukách", "mukami"], - ["s", "ovoce", "ovoce", "ovoci", "ovoce", "ovoce", "ovoci", "ovocem", "", "", "", "", "", "", ""], - ["m", "humus", "humusu", "humusu", "humus", "humuse", "humusu", "humusem", "humusy", "humusů", "humusům", "humusy", "humusy", "humusech", "humusy"], - ["m", "-vztek", "vzteku", "vzteku", "vztek", "vzteku", "vzteku", "vztekem", "vzteky", "vzteků", "vztekům", "vzteky", "vzteky", "vztecích", "vzteky"], - ["m", "-dotek", "doteku", "doteku", "dotek", "doteku", "doteku", "dotekem", "doteky", "doteků", "dotekům", "doteky", "doteky", "dotecích", "doteky"], - ["f", "-hra", "hry", "hře", "hru", "hro", "hře", "hrou", "hry", "her", "hrám", "hry", "hry", "hrách", "hrami"], - ["m", "zeus", "dia", "diovi", "dia", "die", "diovi", "diem", "diové", "diů", "diům", NULL, "diové", NULL, NULL], - ["f", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol"], - - // číslovky - ["-", "-tdva", "tidvou", "tidvoum", "tdva", "tdva", "tidvou", "tidvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tdvě", "tidvou", "tidvěma", "tdva", "tdva", "tidvou", "tidvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-ttři", "titří", "titřem", "ttři", "ttři", "titřech", "titřemi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tčtyři", "tičtyřech", "tičtyřem", "tčtyři", "tčtyři", "tičtyřech", "tičtyřmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tpět", "tipěti", "tipěti", "tpět", "tpět", "tipěti", "tipěti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tšest", "tišesti", "tišesti", "tšest", "tšest", "tišesti", "tišesti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tsedm", "tisedmi", "tisedmi", "tsedm", "tsedm", "tisedmi", "tisedmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tosm", "tiosmi", "tiosmi", "tosm", "tosm", "tiosmi", "tiosmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tdevět", "tidevíti", "tidevíti", "tdevět", "tdevět", "tidevíti", "tidevíti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - - ["f", "-jedna", "jedné", "jedné", "jednu", "jedno", "jedné", "jednou", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["m", "-jeden", "jednoho", "jednomu", "jednoho", "jeden", "jednom", "jedním", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["s", "-jedno", "jednoho", "jednomu", "jednoho", "jedno", "jednom", "jedním", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-dva", "dvou", "dvoum", "dva", "dva", "dvou", "dvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-dvě", "dvou", "dvoum", "dva", "dva", "dvou", "dvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-tři", "tří", "třem", "tři", "tři", "třech", "třemi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-čtyři", "čtyřech", "čtyřem", "čtyři", "čtyři", "čtyřech", "čtyřmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-pět", "pěti", "pěti", "pět", "pět", "pěti", "pěti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-šest", "šesti", "šesti", "šest", "šest", "šesti", "šesti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-sedm", "sedmi", "sedmi", "sedm", "sedm", "sedmi", "sedmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-osm", "osmi", "osmi", "osm", "osm", "osmi", "osmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-devět", "devíti", "devíti", "devět", "devět", "devíti", "devíti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - - ["-", "deset", "deseti", "deseti", "deset", "deset", "deseti", "deseti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - - ["-", "-ná([cs])t", "ná0ti", "ná0ti", "ná0t", "náct", "ná0ti", "ná0ti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - - ["-", "-dvacet", "dvaceti", "dvaceti", "dvacet", "dvacet", "dvaceti", "dvaceti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-třicet", "třiceti", "třiceti", "třicet", "třicet", "třiceti", "třiceti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-čtyřicet", "čtyřiceti", "čtyřiceti", "čtyřicet", "čtyřicet", "čtyřiceti", "čtyřiceti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - ["-", "-desát", "desáti", "desáti", "desát", "desát", "desáti", "desáti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], - - ["m", "-([i])sta", "0sty", "0stovi", "0stu", "0sto", "0stovi", "0stou", "0sté", "0stů", "0stům", "0sty", "0sté", "0stech", "0sty"], - ["m", "-([o])sta", "0sty", "0stovi", "0stu", "0sto", "0stovi", "0stou", "0stové", "0stů", "0stům", "0sty", "0sté", "0stech", "0sty"], - - ["m", "-předseda", "předsedy", "předsedovi", "předsedu", "předsedo", "předsedovi", "předsedou", "předsedové", "předsedů", "předsedům", "předsedy", "předsedové", "předsedech", "předsedy"], - ["m", "-srdce", "srdce", "srdi", "sdrce", "srdce", "srdci", "srdcem", "srdce", "srdcí", "srdcím", "srdce", "srdce", "srdcích", "srdcemi"], - - // žalobce - ["m", "-([db])ce", "0ce", "0ci", "0ce", "0če", "0ci", "0cem", "0ci/0cové", "0ců", "0cům", "0ce", "0ci/0cové", "0cích", "0ci"], - // jev - ["m", "-([jň])ev", "0evu", "0evu", "0ev", "0eve", "0evu", "0evem", "0evy", "0evů", "0evům", "0evy", "0evy", "0evech", "0evy"], - // lev - ["m", "-([lř])ev", "0evu/0va", "0evu/0vovi", "0ev/0va", "0eve/0ve", "0evu/0vovi", "0evem/0vem", "0evy/0vové", "0evů/0vů", "0evům/0vům", "0evy/0vy", "0evy/0vové", "0evech/0vech", "0evy/0vy"], - // vůz - ["m", "-ů([lz])", "o0u/o0a", "o0u/o0ovi", "ů0/o0a", "o0e", "o0u", "o0em", "o0y/o0ové", "o0ů", "o0ům", "o0y", "o0y/o0ové", "o0ech", "o0y"], - - ["m", "nůž", "nože", "noži", "nůž", "noži", "noži", "nožem", "nože", "nožů", "nožům", "nože", "nože", "nožích", "noži"], - - // clo - ["s", "-([bcčdghksštvzž])lo", "0la", "0lu", "0lo", "0lo", "0lu", "0lem", "0la", "0el", "0lům", "0la", "0la", "0lech", "0ly"], - // ramínko - ["s", "-([bcčdnsštvzž])ko", "0ka", "0ku", "0ko", "0ko", "0ku", "0kem", "0ka", "0ek", "0kům", "0ka", "0ka", "0cích/0kách", "0ky"], - // okno - ["s", "-([bcčdksštvzž])no", "0na", "0nu", "0no", "0no", "0nu", "0nem", "0na", "0en", "0nům", "0na", "0na", "0nech/0nách", "0ny"], - // kolo - ["s", "-o", "a", "u", "o", "o", "u", "em", "a", "", "ům", "a", "a", "ech", "y"], - // stavení - ["s", "-í", "í", "í", "í", "í", "í", "ím", "í", "í", "ím", "í", "í", "ích", "ími"], - // děvče - ["s", "-([čďť])([e])", "10te", "10ti", "10", "10", "10ti", "10tem", "1ata", "1at", "1atům", "1ata", "1ata", "1atech", "1aty"], - // veka - ["f", "-([aeiouyáéíóúý])ka", "0ky", "0ce", "0ku", "0ko", "0ce", "0kou", "0ky", "0k", "0kám", "0ky", "0ky", "0kách", "0kami"], - // radka - ["f", "-ka", "ky", "ce", "ku", "ko", "ce", "kou", "ky", "ek", "kám", "ky", "ky", "kách", "kami"], - // kra - ["f", "-([bdghkmnptvz])ra", "0ry", "0ře", "0ru", "0ro", "0ře", "0rou", "0ry", "0er", "0rám", "0ry", "0ry", "0rách", "0rami"], - // dcera - ["f", "-ra", "ry", "ře", "ru", "ro", "ře", "rou", "ry", "r", "rám", "ry", "ry", "rách", "rami"], - // lampa - ["f", "-([tdbnvmp])a", "0y", "0ě", "0u", "0o", "0ě", "0ou", "0y", "0", "0ám", "0y", "0y", "0ách", "0ami"], - // střecha - ["f", "-cha", "chy", "še", "chu", "cho", "še", "chou", "chy", "ch", "chám", "chy", "chy", "chách", "chami"], - // něha - ["f", "-([gh])a", "0y", "ze", "0u", "0o", "ze", "0ou", "0y", "0", "0ám", "0y", "0y", "0ách", "0ami"], - // Soňa - ["f", "-ňa", "ni", "ně", "ňou", "ňo", "ni", "ňou", "ně/ničky", "ň", "ňám", "ně/ničky", "ně/ničky", "ňách", "ňami"], - // Dáša - ["f", "-([šč])a", "0i", "0e", "0u", "0o", "0e", "0ou", "0e/0i", "0", "0ám", "0e/0i", "0e/0i", "0ách", "0ami"], - // žena - ["f", "-a", "y", "e", "u", "o", "e", "ou", "y", "", "ám", "y", "y", "ách", "ami"], - // píseň - ["f", "-eň", "ně", "ni", "eň", "ni", "ni", "ní", "ně", "ní", "ním", "ně", "ně", "ních", "němi"], - // obec - ["f", "-ec", "ce", "ci", "ec", "ci", "ci", "cí", "cí", "ce", "cí", "cím", "ce", "ce", "cích", "cemi"], - // Třeboň - ["f", "-oň", "oně", "oni", "oň", "oni", "oni", "oní", "oně", "oní", "oním", "oně", "oně", "oních", "oněmi"], - // beznaděj - ["f", "-([ě])j", "0je", "0ji", "0j", "0ji", "0ji", "0jí", "0je", "0jí", "0jím", "0je", "0je", "0jích", "0jemi"], - // lahev - ["f", "-ev", "ve", "vi", "ev", "vi", "vi", "ví", "ve", "ví", "vím", "ve", "ve", "vích", "vemi"], - // kytice - ["f", "-ice", "ice", "ici", "ici", "ice", "ici", "icí", "ice", "ic", "icím", "ice", "ice", "icích", "icemi"], - // růže - ["f", "-e", "e", "i", "i", "e", "i", "í", "e", "í", "ím", "e", "e", "ích", "emi"], - // epopej - ["f", "-([eaá])([jžň])", "10e/10i", "10i", "10", "10i", "10i", "10í", "10e/10i", "10í", "10ím", "10e", "10e", "10ích", "10emi"], - // myš - ["f", "-([eayo])([š])", "10e/10i", "10i", "10", "10i", "10i", "10í", "10e/10i", "10í", "10ím", "10e", "10e", "10ích", "10emi"], - // skříň - ["f", "-([íy])ň", "0ně", "0ni", "0ň", "0ni", "0ni", "0ní", "0ně", "0ní", "0ním", "0ně", "0ně", "0ních", "0němi"], - // kolegyně - // TODO verify ňe is ok - ["f", "-([íyý])ňe", "0ně", "0ni", "0ň", "0ni", "0ni", "0ní", "0ně", "0ní", "0ním", "0ně", "0ně", "0ních", "0němi"], - // trať - ["f", "-([ťďž])", "0e", "0i", "0", "0i", "0i", "0í", "0e", "0í", "0ím", "0e", "0e", "0ích", "0emi"], - // laboratoř - ["f", "-toř", "toře", "toři", "toř", "toři", "toři", "toří", "toře", "toří", "tořím", "toře", "toře", "tořích", "tořemi"], - // step - ["f", "-ep", "epi", "epi", "ep", "epi", "epi", "epí", "epi", "epí", "epím", "epi", "epi", "epích", "epmi"], - - // kost - ["f", "-st", "sti", "sti", "st", "sti", "sti", "stí", "sti", "stí", "stem", "sti", "sti", "stech", "stmi"], - - ["f", "ves", "vsi", "vsi", "ves", "vsi", "vsi", "vsí", "vsi", "vsí", "vsem", "vsi", "vsi", "vsech", "vsemi"], - - // Amadeus - ["m", "-([e])us", "0a", "0u/0ovi", "0a", "0e", "0u/0ovi", "0em", "0ové", "0ů", "0ům", "0y", "0ové", "0ích", "0y"], - // Celsius - ["m", "-([i])us", "0a", "0u/0ovi", "0a", "0e", "0u/0ovi", "0em", "0ové", "0ů", "0ům", "0usy", "0ové", "0ích", "0usy"], - // Denis - ["m", "-([i])s", "0se", "0su/0sovi", "0se", "0se/0si", "0su/0sovi", "0sem", "0sy/0sové", "0sů", "0sům", "0sy", "0sy/0ové", "0ech", "0sy"], - - ["m", "výtrus", "výtrusu", "výtrusu", "výtrus", "výtruse", "výtrusu", "výtrusem", "výtrusy", "výtrusů", "výtrusům", "výtrusy", "výtrusy", "výtrusech", "výtrusy"], - ["m", "trus", "trusu", "trusu", "trus", "truse", "trusu", "trusem", "trusy", "trusů", "trusům", "trusy", "trusy", "trusech", "trusy"], - - // pokus - ["m", "-([aeioumpts])([lnmrktp])us", "10u/10a", "10u/10ovi", "10us/10a", "10e", "10u/10ovi", "10em", "10y/10ové", "10ů", "10ům", "10y", "10y/10ové", "10ech", "10y"], - // útlum - ["s", "-([l])um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0", "0ům", "0a", "0a", "0ech", "0y"], - // publikum - ["s", "-([k])um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0", "0ům", "0a", "0a", "0cích", "0y"], - // medium - ["s", "-([i])um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0í", "0ům", "0a", "0a", "0iích", "0y"], - // rádio - ["s", "-io", "0a", "0u", "0", "0", "0u", "0em", "0a", "0í", "0ům", "0a", "0a", "0iích", "0y"], - // bar - ["m", "-([aeiouyáéíóúý])r", "0ru/0ra", "0ru/0rovi", "0r/0ra", "0re", "0ru/0rovi", "0rem", "0ry/0rové", "0rů", "0rům", "0ry", "0ry/0rové", "0rech", "0ry"], - // odběr - ["m", "-r", "ru/ra", "ru/rovi", "r/ra", "ře", "ru/rovi", "rem", "ry/rové", "rů", "rům", "ry", "ry/rové", "rech", "ry"], - // kámen - ["m", "-([mnp])en", "0enu/0ena", "0enu/0enovi", "0en/0na", "0ene", "0enu/0enovi", "0enem", "0eny/0enové", "0enů", "0enům", "0eny", "0eny/0enové", "0enech", "0eny"], - // hřeben - ["m", "-([bcčdstvz])en", "0nu/0na", "0nu/0novi", "0en/0na", "0ne", "0nu/0novi", "0nem", "0ny/0nové", "0nů", "0nům", "0ny", "0ny/0nové", "0nech", "0ny"], - // vtip/pes - ["m", "-([dglmnpbtvzs])", "0u/0a", "0u/0ovi", "0/0a", "0e", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "0ech", "0y"], - // reflex - ["m", "-([x])", "0u/0e", "0u/0ovi", "0/0e", "0i", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "0ech", "0y"], - - ["m", "sek", "seku/seka", "seku/sekovi", "sek/seka", "seku", "seku/sekovi", "sekem", "seky/sekové", "seků", "sekům", "seky", "seky/sekové", "secích", "seky"], - ["m", "výsek", "výseku/výseka", "výseku/výsekovi", "výsek/výseka", "výseku", "výseku/výsekovi", "výsekem", "výseky/výsekové", "výseků", "výsekům", "výseky", "výseky/výsekové", "výsecích", "výseky"], - ["m", "zásek", "záseku/záseka", "záseku/zásekovi", "zásek/záseka", "záseku", "záseku/zásekovi", "zásekem", "záseky/zásekové", "záseků", "zásekům", "záseky", "záseky/zásekové", "zásecích", "záseky"], - ["m", "průsek", "průseku/průseka", "průseku/průsekovi", "průsek/průseka", "průseku", "průseku/průsekovi", "průsekem", "průseky/průsekové", "průseků", "výsekům", "průseky", "průseky/průsekové", "průsecích", "průseky"], - - // polibek - ["m", "-([cčšždnňmpbrstvz])ek", "0ku/0ka", "0ku/0kovi", "0ek/0ka", "0ku", "0ku/0kovi", "0kem", "0ky/0kové", "0ků", "0kům", "0ky", "0ky/0kové", "0cích", "0ky"], - // tabák - ["m", "-([k])", "0u/0a", "0u/0ovi", "0/0a", "0u", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "cích", "0y"], - // prach - ["m", "-ch", "chu/cha", "chu/chovi", "ch/cha", "chu/cha", "chu/chovi", "chem", "chy/chové", "chů", "chům", "chy", "chy/chové", "ších", "chy"], - // dosah - ["m", "-([h])", "0u/0a", "0u/0ovi", "0/0a", "0u", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "zích", "0y"], - // duben - ["m", "-e([mnz])", "0u/0a", "0u/0ovi", "e0/e0a", "0e", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "0ech", "0y"], - // otec - ["m", "-ec", "ce", "ci/covi", "ec/ce", "če", "ci/covi", "cem", "ce/cové", "ců", "cům", "ce", "ce/cové", "cích", "ci"], - // učeň - ["m", "-([cčďšňřťž])", "0e", "0i/0ovi", "0e", "0i", "0i/0ovi", "0em", "0e/0ové", "0ů", "0ům", "0e", "0e/0ové", "0ích", "0i"], - // boj - ["m", "-oj", "oje", "oji/ojovi", "oj/oje", "oji", "oji/ojovi", "ojem", "oje/ojové", "ojů", "ojům", "oje", "oje/ojové", "ojích", "oji"], - // Bláha - ["m", "-([gh])a", "0y", "0ovi", "0u", "0o", "0ovi", "0ou", "0ové", "0ů", "0ům", "0y", "0ové", "zích", "0y"], - // Rybka - ["m", "-([k])a", "0y", "0ovi", "0u", "0o", "0ovi", "0ou", "0ové", "0ů", "0ům", "0y", "0ové", "cích", "0y"], - // Hála - ["m", "-a", "y", "ovi", "u", "o", "ovi", "ou", "ové", "ů", "ům", "y", "ové", "ech", "y"], - // Avril - ["f", "-l", "le", "li", "l", "li", "li", "lí", "le", "lí", "lím", "le", "le", "lích", "lemi"], - // ??? - ["f", "-í", "í", "í", "í", "í", "í", "í", "í", "ích", "ím", "í", "í", "ích", "ími"], - // beznaděj - // TODO duplicate? - ["f", "-([jř])", "0e", "0i", "0", "0i", "0i", "0í", "0e", "0í", "0ím", "0e", "0e", "0ích", "0emi"], - // Třebíč - ["f", "-([č])", "0i", "0i", "0", "0i", "0i", "0í", "0i", "0í", "0ím", "0i", "0i", "0ích", "0mi"], - // Dobříš - ["f", "-([š])", "0i", "0i", "0", "0i", "0i", "0í", "0i", "0í", "0ím", "0i", "0i", "0ích", "0emi"], - // Anatolije - ["s", "-([sljřň])e", "0ete", "0eti", "0e", "0e", "0eti", "0etem", "0ata", "0at", "0atům", "0ata", "0ata", "0atech", "0aty"], - // čaj - ["m", "-j", "je", "ji", "j", "ji", "ji", "jem", "je/jové", "jů", "jům", "je", "je/jové", "jích", "ji"], - // graf - ["m", "-f", "fa", "fu/fovi", "f/fa", "fe", "fu/fovi", "fem", "fy/fové", "fů", "fům", "fy", "fy/fové", "fech", "fy"], - // Jiří - ["m", "-í", "ího", "ímu", "ího", "í", "ímu", "ím", "í", "ích", "ím", "í", "í", "ích", "ími"], - // Hugo - ["m", "-go", "a", "govi", "ga", "ga", "govi", "gem", "gové", "gů", "gům", "gy", "gové", "zích", "gy"], - // Kvido - ["m", "-o", "a", "ovi", "a", "o", "ovi", "em", "ové", "ů", "ům", "y", "ové", "ech", "y"], - // šaty - [NULL, "-([tp])y", NULL, NULL, NULL, NULL, NULL, NULL, "0y", "0", "0ům", "0y", "0y", "0ech", "0ami"], - // dřeváky - [NULL, "-([k])y", NULL, NULL, NULL, NULL, NULL, NULL, "0y", "e0", "0ám", "0y", "0y", "0ách", "0ami"], - // ??? - ["f", "-ar", "ary", "aře", "ar", "ar", "ar", "ar", "ary", "ar", "arám", "ary", "ary", "arách", "arami"], - // madam - ["f", "-am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am"], - // Jennifer - ["f", "-er", "er", "er", "er", "er", "er", "er", "ery", "er", "erám", "ery", "ery", "erách", "erami"], - // Joe - ["m", "-oe", "oema", "oemovi", "oema", "oeme", "emovi", "emem", "oemové", "oemů", "oemům", "oemy", "oemové", "oemech", "oemy"], - //Iva - ["f", "-a", "y", "ě", "u", "o", "ě", "ou", "y", "", "ám", "y", "y", "ách", "ami"], + // hořký + ["m", "-ký", "kého", "kému", "ký/kého", "ký", "kém", "kým", "ké/cí", "kých", "kým", "ké", "ké/cí", "kých", "kými"], + // modrý + ["m", "-rý", "rého", "rému", "rý/rého", "rý", "rém", "rým", "ré/ří", "rých", "rým", "ré", "ré/ří", "rých", "rými"], + // jednodychý + ["m", "-chý", "chého", "chému", "chý/chého", "chý", "chém", "chým", "ché/ší", "chých", "chým", "ché", "ché/ší", "chých", "chými"], + // strohý + ["m", "-hý", "hého", "hému", "hý/hého", "hý", "hém", "hým", "hé/zí", "hých", "hým", "hé", "hé/zí", "hých", "hými"], + // jedlý + ["m", "-ý", "ého", "ému", "ý/ého", "ý", "ém", "ým", "é/í", "ých", "ým", "é", "é/í", "ých", "ými"], + // spící + ["m", "-([aeěií])cí", "0cího", "0címu", "0cí/0cího", "0cí", "0cím", "0cím", "0cí", "0cích", "0cím", "0cí", "0cí", "0cích", "0cími"], + ["f", "-([aeěií])cí", "0cí", "0cí", "0cí", "0cí", "0cí", "0cí", "0cí", "0cích", "0cím", "0cí", "0cí", "0cích", "0cími"], + ["s", "-([aeěií])cí", "0cího", "0címu", "0cí/0cího", "0cí", "0cím", "0cím", "0cí", "0cích", "0cím", "0cí", "0cí", "0cích", "0cími"], + // svatební + ["m", "-([bcčdhklmnprsštvzž])ní", "0ního", "0nímu", "0ní/0ního", "0ní", "0ním", "0ním", "0ní", "0ních", "0ním", "0ní", "0ní", "0ních", "0ními"], + ["f", "-([bcčdhklmnprsštvzž])ní", "0ní", "0ní", "0ní", "0ní", "0ní", "0ní", "0ní", "0ních", "0ním", "0ní", "0ní", "0ních", "0ními"], + ["s", "-([bcčdhklmnprsštvzž])ní", "0ního", "0nímu", "0ní/0ního", "0ní", "0ním", "0ním", "0ní", "0ních", "0ním", "0ní", "0ní", "0ních", "0ními"], + // držitel + ["m", "-([i])tel", "0tele", "0teli", "0tele", "0teli", "0teli", "0telem", "0telé", "0telů", "0telům", "0tele", "0telé", "0telích", "0teli"], + // přítel + ["m", "-([í])tel", "0tele", "0teli", "0tele", "0teli", "0teli", "0telem", "átelé", "átel", "átelům", "átele", "átelé", "átelích", "áteli"], + // Marcel + ["m", "-([c])el", "0ela", "0elovi", "0ela", "0eli", "0elovi", "0elem", "celové", "celů", "celům", "cely", "celové", "celích", "cely"], + // Daniel + ["m", "-([i])el", "0ela", "0elovi", "0ela", "0eli", "0elovi", "0elem", "ielové", "ielů", "ielům", "iely", "ielové", "ielích", "iely"], + // Alois + ["m", "-([o])is", "0ise", "0isovi", "0ise", "0isi", "0isovi", "0isem", "isové", "isů", "isům", "isovy", "isové", "isích", "isi"], + // Luděk + ["m", "-([o])děk", "0ďka", "0ďkovi", "0ďka", "0ďku", "0ďkovi", "0ďkem", "ďkové", "ďků", "ďkům", "ďky", "ďkové", "ďcích", "ďky"], + // malé + ["s", "-é", "ého", "ému", "é", "é", "ém", "ým", "á", "ých", "ým", "á", "á", "ých", "ými"], + // malá + ["f", "-á", "é", "é", "ou", "á", "é", "ou", "é", "ých", "ým", "é", "é", "ých", "ými"], + + ["-", "já", "mne", "mně", "mne/mě", "já", "mně", "mnou", "my", "nás", "nám", "nás", "my", "nás", "námi"], + ["-", "ty", "tebe", "tobě", "tě/tebe", "ty", "tobě", "tebou", "vy", "vás", "vám", "vás", "vy", "vás", "vámi"], + ["-", "my", "", "", "", "", "", "", "my", "nás", "nám", "nás", "my", "nás", "námi"], + ["-", "vy", "", "", "", "", "", "", "vy", "vás", "vám", "vás", "vy", "vás", "vámi"], + ["m", "on", "něho", "mu/jemu/němu", "ho/jej", "on", "něm", "ním", "oni", "nich", "nim", "je", "oni", "nich", "jimi/nimi"], + ["m", "oni", "", "", "", "", "", "", "oni", "nich", "nim", "je", "oni", "nich", "jimi/nimi"], + ["f", "ony", "", "", "", "", "", "", "ony", "nich", "nim", "je", "ony", "nich", "jimi/nimi"], + ["s", "ono", "něho", "mu/jemu/němu", "ho/jej", "ono", "něm", "ním", "ona", "nich", "nim", "je", "ony", "nich", "jimi/nimi"], + ["f", "ona", "ní", "ní", "ji", "ona", "ní", "ní", "ony", "nich", "nim", "je", "ony", "nich", "jimi/nimi"], + ["m", "ten", "toho", "tomu", "toho", "ten", "tom", "tím", "ti", "těch", "těm", "ty", "ti", "těch", "těmi"], + ["f", "ta", "té", "té", "tu", "ta", "té", "tou", "ty", "těch", "těm", "ty", "ty", "těch", "těmi"], + ["s", "to", "toho", "tomu", "toho", "to", "tom", "tím", "ta", "těch", "těm", "ta", "ta", "těch", "těmi"], + + // přivlastňovací zájmena + ["m", "můj", "mého", "mému", "mého", "můj", "mém", "mým", "mí", "mých", "mým", "mé", "mí", "mých", "mými"], + ["f", "má", "mé", "mé", "mou", "má", "mé", "mou", "mé", "mých", "mým", "mé", "mé", "mých", "mými"], + ["f", "moje", "mé", "mé", "mou", "má", "mé", "mou", "moje", "mých", "mým", "mé", "mé", "mých", "mými"], + ["s", "mé", "mého", "mému", "mé", "moje", "mém", "mým", "mé", "mých", "mým", "má", "má", "mých", "mými"], + ["s", "moje", "mého", "mému", "moje", "moje", "mém", "mým", "moje", "mých", "mým", "má", "má", "mých", "mými"], + + ["m", "tvůj", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tví", "tvých", "tvým", "tvé", "tví", "tvých", "tvými"], + ["f", "tvá", "tvé", "tvé", "tvou", "tvá", "tvé", "tvou", "tvé", "tvých", "tvým", "tvé", "tvé", "tvých", "tvými"], + ["f", "tvoje", "tvé", "tvé", "tvou", "tvá", "tvé", "tvou", "tvé", "tvých", "tvým", "tvé", "tvé", "tvých", "tvými"], + ["s", "tvé", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tvá", "tvých", "tvým", "tvé", "tvá", "tvých", "tvými"], + ["s", "tvoje", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tvá", "tvých", "tvým", "tvé", "tvá", "tvých", "tvými"], + + ["m", "náš", "našeho", "našemu", "našeho", "náš", "našem", "našim", "naši", "našich", "našim", "naše", "naši", "našich", "našimi"], + ["f", "naše", "naší", "naší", "naši", "naše", "naší", "naší", "naše", "našich", "našim", "naše", "naše", "našich", "našimi"], + ["s", "naše", "našeho", "našemu", "našeho", "naše", "našem", "našim", "naše", "našich", "našim", "naše", "naše", "našich", "našimi"], + + ["m", "váš", "vašeho", "vašemu", "vašeho", "váš", "vašem", "vašim", "vaši", "vašich", "vašim", "vaše", "vaši", "vašich", "vašimi"], + ["f", "vaše", "vaší", "vaší", "vaši", "vaše", "vaší", "vaší", "vaše", "vašich", "vašim", "vaše", "vaše", "vašich", "vašimi"], + ["s", "vaše", "vašeho", "vašemu", "vašeho", "vaše", "vašem", "vašim", "vaše", "vašich", "vašim", "vaše", "vaše", "vašich", "vašimi"], + + ["m", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho"], + ["f", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho"], + ["s", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho", "jeho"], + + ["m", "její", "jejího", "jejímu", "jejího", "její", "jejím", "jejím", "její", "jejích", "jejím", "její", "její", "jejích", "jejími"], + ["s", "její", "jejího", "jejímu", "jejího", "její", "jejím", "jejím", "její", "jejích", "jejím", "její", "její", "jejích", "jejími"], + ["f", "její", "její", "její", "její", "její", "její", "její", "její", "jejích", "jejím", "její", "její", "jejích", "jejími"], + + ["m", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich"], + ["s", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich"], + ["f", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich", "jejich"], + + // výjimky (zvl. běžná slova) + ["m", "-bůh", "boha", "bohu", "boha", "bože", "bohovi", "bohem", "bozi/bohové", "bohů", "bohům", "bohy", "bozi/bohové", "bozích", "bohy"], + ["m", "-pan", "pana", "panu", "pana", "pane", "panu", "panem", "páni/pánové", "pánů", "pánům", "pány", "páni/pánové", "pánech", "pány"], + ["s", "moře", "moře", "moři", "moře", "moře", "moři", "mořem", "moře", "moří", "mořím", "moře", "moře", "mořích", "moři"], + ["-", "dveře", "", "", "", "", "", "", "dveře", "dveří", "dveřím", "dveře", "dveře", "dveřích", "dveřmi"], + ["-", "housle", "", "", "", "", "", "", "housle", "houslí", "houslím", "housle", "housle", "houslích", "houslemi"], + ["-", "šle", "", "", "", "", "", "", "šle", "šlí", "šlím", "šle", "šle", "šlích", "šlemi"], + ["-", "muka", "", "", "", "", "", "", "muka", "muk", "mukám", "muka", "muka", "mukách", "mukami"], + ["s", "ovoce", "ovoce", "ovoci", "ovoce", "ovoce", "ovoci", "ovocem", "", "", "", "", "", "", ""], + ["m", "humus", "humusu", "humusu", "humus", "humuse", "humusu", "humusem", "humusy", "humusů", "humusům", "humusy", "humusy", "humusech", "humusy"], + ["m", "-vztek", "vzteku", "vzteku", "vztek", "vzteku", "vzteku", "vztekem", "vzteky", "vzteků", "vztekům", "vzteky", "vzteky", "vztecích", "vzteky"], + ["m", "-dotek", "doteku", "doteku", "dotek", "doteku", "doteku", "dotekem", "doteky", "doteků", "dotekům", "doteky", "doteky", "dotecích", "doteky"], + ["f", "-hra", "hry", "hře", "hru", "hro", "hře", "hrou", "hry", "her", "hrám", "hry", "hry", "hrách", "hrami"], + ["m", "zeus", "dia", "diovi", "dia", "die", "diovi", "diem", "diové", "diů", "diům", NULL, "diové", NULL, NULL], + ["f", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol", "nikol"], + + // číslovky + ["-", "-tdva", "tidvou", "tidvoum", "tdva", "tdva", "tidvou", "tidvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tdvě", "tidvou", "tidvěma", "tdva", "tdva", "tidvou", "tidvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-ttři", "titří", "titřem", "ttři", "ttři", "titřech", "titřemi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tčtyři", "tičtyřech", "tičtyřem", "tčtyři", "tčtyři", "tičtyřech", "tičtyřmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tpět", "tipěti", "tipěti", "tpět", "tpět", "tipěti", "tipěti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tšest", "tišesti", "tišesti", "tšest", "tšest", "tišesti", "tišesti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tsedm", "tisedmi", "tisedmi", "tsedm", "tsedm", "tisedmi", "tisedmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tosm", "tiosmi", "tiosmi", "tosm", "tosm", "tiosmi", "tiosmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tdevět", "tidevíti", "tidevíti", "tdevět", "tdevět", "tidevíti", "tidevíti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + + ["f", "-jedna", "jedné", "jedné", "jednu", "jedno", "jedné", "jednou", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["m", "-jeden", "jednoho", "jednomu", "jednoho", "jeden", "jednom", "jedním", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["s", "-jedno", "jednoho", "jednomu", "jednoho", "jedno", "jednom", "jedním", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-dva", "dvou", "dvoum", "dva", "dva", "dvou", "dvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-dvě", "dvou", "dvoum", "dva", "dva", "dvou", "dvěmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-tři", "tří", "třem", "tři", "tři", "třech", "třemi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-čtyři", "čtyřech", "čtyřem", "čtyři", "čtyři", "čtyřech", "čtyřmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-pět", "pěti", "pěti", "pět", "pět", "pěti", "pěti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-šest", "šesti", "šesti", "šest", "šest", "šesti", "šesti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-sedm", "sedmi", "sedmi", "sedm", "sedm", "sedmi", "sedmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-osm", "osmi", "osmi", "osm", "osm", "osmi", "osmi", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-devět", "devíti", "devíti", "devět", "devět", "devíti", "devíti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + + ["-", "deset", "deseti", "deseti", "deset", "deset", "deseti", "deseti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + + ["-", "-ná([cs])t", "ná0ti", "ná0ti", "ná0t", "náct", "ná0ti", "ná0ti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + + ["-", "-dvacet", "dvaceti", "dvaceti", "dvacet", "dvacet", "dvaceti", "dvaceti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-třicet", "třiceti", "třiceti", "třicet", "třicet", "třiceti", "třiceti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-čtyřicet", "čtyřiceti", "čtyřiceti", "čtyřicet", "čtyřicet", "čtyřiceti", "čtyřiceti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + ["-", "-desát", "desáti", "desáti", "desát", "desát", "desáti", "desáti", NULL, NULL, NULL, NULL, NULL, NULL, NULL], + + ["m", "-([i])sta", "0sty", "0stovi", "0stu", "0sto", "0stovi", "0stou", "0sté", "0stů", "0stům", "0sty", "0sté", "0stech", "0sty"], + ["m", "-([o])sta", "0sty", "0stovi", "0stu", "0sto", "0stovi", "0stou", "0stové", "0stů", "0stům", "0sty", "0sté", "0stech", "0sty"], + + ["m", "-předseda", "předsedy", "předsedovi", "předsedu", "předsedo", "předsedovi", "předsedou", "předsedové", "předsedů", "předsedům", "předsedy", "předsedové", "předsedech", "předsedy"], + ["m", "-srdce", "srdce", "srdi", "sdrce", "srdce", "srdci", "srdcem", "srdce", "srdcí", "srdcím", "srdce", "srdce", "srdcích", "srdcemi"], + + // žalobce + ["m", "-([db])ce", "0ce", "0ci", "0ce", "0če", "0ci", "0cem", "0ci/0cové", "0ců", "0cům", "0ce", "0ci/0cové", "0cích", "0ci"], + // jev + ["m", "-([jň])ev", "0evu", "0evu", "0ev", "0eve", "0evu", "0evem", "0evy", "0evů", "0evům", "0evy", "0evy", "0evech", "0evy"], + // lev + ["m", "-([lř])ev", "0evu/0va", "0evu/0vovi", "0ev/0va", "0eve/0ve", "0evu/0vovi", "0evem/0vem", "0evy/0vové", "0evů/0vů", "0evům/0vům", "0evy/0vy", "0evy/0vové", "0evech/0vech", "0evy/0vy"], + // vůz + ["m", "-ů([lz])", "o0u/o0a", "o0u/o0ovi", "ů0/o0a", "o0e", "o0u", "o0em", "o0y/o0ové", "o0ů", "o0ům", "o0y", "o0y/o0ové", "o0ech", "o0y"], + + ["m", "nůž", "nože", "noži", "nůž", "noži", "noži", "nožem", "nože", "nožů", "nožům", "nože", "nože", "nožích", "noži"], + + // město + ["s", "město", "města", "městu", "město", "město", "městě", "městem", "města", "měst", "městům", "města", "města", "městech", "městy"], + // clo + ["s", "-([bcčdghksštvzž])lo", "0la", "0lu", "0lo", "0lo", "0lu", "0lem", "0la", "0el", "0lům", "0la", "0la", "0lech", "0ly"], + // ramínko + ["s", "-([bcčdnsštvzž])ko", "0ka", "0ku", "0ko", "0ko", "0ku", "0kem", "0ka", "0ek", "0kům", "0ka", "0ka", "0cích/0kách", "0ky"], + // okno + ["s", "-([bcčdksštvzž])no", "0na", "0nu", "0no", "0no", "0nu", "0nem", "0na", "0en", "0nům", "0na", "0na", "0nech/0nách", "0ny"], + // kolo + ["s", "-o", "a", "u", "o", "o", "u", "em", "a", "", "ům", "a", "a", "ech", "y"], + // stavení + ["s", "-í", "í", "í", "í", "í", "í", "ím", "í", "í", "ím", "í", "í", "ích", "ími"], + // děvče + ["s", "-([čďť])([e])", "10te", "10ti", "10", "10", "10ti", "10tem", "1ata", "1at", "1atům", "1ata", "1ata", "1atech", "1aty"], + // veka + ["f", "-([aeiouyáéíóúý])ka", "0ky", "0ce", "0ku", "0ko", "0ce", "0kou", "0ky", "0k", "0kám", "0ky", "0ky", "0kách", "0kami"], + // radka + ["f", "-ka", "ky", "ce", "ku", "ko", "ce", "kou", "ky", "ek", "kám", "ky", "ky", "kách", "kami"], + // kra + ["f", "-([bdghkmnptvz])ra", "0ry", "0ře", "0ru", "0ro", "0ře", "0rou", "0ry", "0er", "0rám", "0ry", "0ry", "0rách", "0rami"], + // dcera + ["f", "-ra", "ry", "ře", "ru", "ro", "ře", "rou", "ry", "r", "rám", "ry", "ry", "rách", "rami"], + // lampa + ["f", "-([tdbnvmp])a", "0y", "0ě", "0u", "0o", "0ě", "0ou", "0y", "0", "0ám", "0y", "0y", "0ách", "0ami"], + // střecha + ["f", "-cha", "chy", "še", "chu", "cho", "še", "chou", "chy", "ch", "chám", "chy", "chy", "chách", "chami"], + // něha + ["f", "-([gh])a", "0y", "ze", "0u", "0o", "ze", "0ou", "0y", "0", "0ám", "0y", "0y", "0ách", "0ami"], + // Soňa + ["f", "-ňa", "ni", "ně", "ňou", "ňo", "ni", "ňou", "ně/ničky", "ň", "ňám", "ně/ničky", "ně/ničky", "ňách", "ňami"], + // Dáša + ["f", "-([šč])a", "0i", "0e", "0u", "0o", "0e", "0ou", "0e/0i", "0", "0ám", "0e/0i", "0e/0i", "0ách", "0ami"], + // žena + ["f", "-a", "y", "e", "u", "o", "e", "ou", "y", "", "ám", "y", "y", "ách", "ami"], + // píseň + ["f", "-eň", "ně", "ni", "eň", "ni", "ni", "ní", "ně", "ní", "ním", "ně", "ně", "ních", "němi"], + // obec + ["f", "obec", "obce", "obci", "obec", "obci", "obci", "obcí", "obce", "obcí", "obcím", "obce", "obce", "obcích", "obcemi"], + // Třeboň + ["f", "-oň", "oně", "oni", "oň", "oni", "oni", "oní", "oně", "oní", "oním", "oně", "oně", "oních", "oněmi"], + // beznaděj + ["f", "-([ě])j", "0je", "0ji", "0j", "0ji", "0ji", "0jí", "0je", "0jí", "0jím", "0je", "0je", "0jích", "0jemi"], + // lahev + ["f", "-ev", "ve", "vi", "ev", "vi", "vi", "ví", "ve", "ví", "vím", "ve", "ve", "vích", "vemi"], + // kytice + ["f", "-ice", "ice", "ici", "ici", "ice", "ici", "icí", "ice", "ic", "icím", "ice", "ice", "icích", "icemi"], + // růže + ["f", "-e", "e", "i", "i", "e", "i", "í", "e", "í", "ím", "e", "e", "ích", "emi"], + // epopej + ["f", "-([eaá])([jžň])", "10e/10i", "10i", "10", "10i", "10i", "10í", "10e/10i", "10í", "10ím", "10e", "10e", "10ích", "10emi"], + // myš + ["f", "-([eayo])([š])", "10e/10i", "10i", "10", "10i", "10i", "10í", "10e/10i", "10í", "10ím", "10e", "10e", "10ích", "10emi"], + // skříň + ["f", "-([íy])ň", "0ně", "0ni", "0ň", "0ni", "0ni", "0ní", "0ně", "0ní", "0ním", "0ně", "0ně", "0ních", "0němi"], + // kolegyně + // TODO verify ňe is ok + ["f", "-([íyý])ňe", "0ně", "0ni", "0ň", "0ni", "0ni", "0ní", "0ně", "0ní", "0ním", "0ně", "0ně", "0ních", "0němi"], + // trať + ["f", "-([ťďž])", "0e", "0i", "0", "0i", "0i", "0í", "0e", "0í", "0ím", "0e", "0e", "0ích", "0emi"], + // laboratoř + ["f", "-toř", "toře", "toři", "toř", "toři", "toři", "toří", "toře", "toří", "tořím", "toře", "toře", "tořích", "tořemi"], + // step + ["f", "-ep", "epi", "epi", "ep", "epi", "epi", "epí", "epi", "epí", "epím", "epi", "epi", "epích", "epmi"], + + // kost + ["f", "-st", "sti", "sti", "st", "sti", "sti", "stí", "sti", "stí", "stem", "sti", "sti", "stech", "stmi"], + + ["f", "ves", "vsi", "vsi", "ves", "vsi", "vsi", "vsí", "vsi", "vsí", "vsem", "vsi", "vsi", "vsech", "vsemi"], + + // Amadeus + ["m", "-([e])us", "0a", "0u/0ovi", "0a", "0e", "0u/0ovi", "0em", "0ové", "0ů", "0ům", "0y", "0ové", "0ích", "0y"], + // Celsius + ["m", "-([i])us", "0a", "0u/0ovi", "0a", "0e", "0u/0ovi", "0em", "0ové", "0ů", "0ům", "0usy", "0ové", "0ích", "0usy"], + // Denis + ["m", "-([i])s", "0se", "0su/0sovi", "0se", "0se/0si", "0su/0sovi", "0sem", "0sy/0sové", "0sů", "0sům", "0sy", "0sy/0ové", "0ech", "0sy"], + + ["m", "výtrus", "výtrusu", "výtrusu", "výtrus", "výtruse", "výtrusu", "výtrusem", "výtrusy", "výtrusů", "výtrusům", "výtrusy", "výtrusy", "výtrusech", "výtrusy"], + ["m", "trus", "trusu", "trusu", "trus", "truse", "trusu", "trusem", "trusy", "trusů", "trusům", "trusy", "trusy", "trusech", "trusy"], + + // pokus + ["m", "-([aeioumpts])([lnmrktp])us", "10u/10a", "10u/10ovi", "10us/10a", "10e", "10u/10ovi", "10em", "10y/10ové", "10ů", "10ům", "10y", "10y/10ové", "10ech", "10y"], + // útlum + ["s", "-([l])um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0", "0ům", "0a", "0a", "0ech", "0y"], + // publikum + ["s", "-([k])um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0", "0ům", "0a", "0a", "0cích", "0y"], + // medium + ["s", "-([i])um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0í", "0ům", "0a", "0a", "0iích", "0y"], + // rádio + ["s", "-io", "0a", "0u", "0", "0", "0u", "0em", "0a", "0í", "0ům", "0a", "0a", "0iích", "0y"], + // bar + ["m", "-([aeiouyáéíóúý])r", "0ru/0ra", "0ru/0rovi", "0r/0ra", "0re", "0ru/0rovi", "0rem", "0ry/0rové", "0rů", "0rům", "0ry", "0ry/0rové", "0rech", "0ry"], + // odběr + ["m", "-r", "ru/ra", "ru/rovi", "r/ra", "ře", "ru/rovi", "rem", "ry/rové", "rů", "rům", "ry", "ry/rové", "rech", "ry"], + // kámen + ["m", "-([mnp])en", "0enu/0ena", "0enu/0enovi", "0en/0na", "0ene", "0enu/0enovi", "0enem", "0eny/0enové", "0enů", "0enům", "0eny", "0eny/0enové", "0enech", "0eny"], + // hřeben + ["m", "-([bcčdstvz])en", "0nu/0na", "0nu/0novi", "0en/0na", "0ne", "0nu/0novi", "0nem", "0ny/0nové", "0nů", "0nům", "0ny", "0ny/0nové", "0nech", "0ny"], + // vtip/pes + ["m", "-([dglmnpbtvzs])", "0u/0a", "0u/0ovi", "0/0a", "0e", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "0ech", "0y"], + // reflex + ["m", "-([x])", "0u/0e", "0u/0ovi", "0/0e", "0i", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "0ech", "0y"], + + ["m", "sek", "seku/seka", "seku/sekovi", "sek/seka", "seku", "seku/sekovi", "sekem", "seky/sekové", "seků", "sekům", "seky", "seky/sekové", "secích", "seky"], + ["m", "výsek", "výseku/výseka", "výseku/výsekovi", "výsek/výseka", "výseku", "výseku/výsekovi", "výsekem", "výseky/výsekové", "výseků", "výsekům", "výseky", "výseky/výsekové", "výsecích", "výseky"], + ["m", "zásek", "záseku/záseka", "záseku/zásekovi", "zásek/záseka", "záseku", "záseku/zásekovi", "zásekem", "záseky/zásekové", "záseků", "zásekům", "záseky", "záseky/zásekové", "zásecích", "záseky"], + ["m", "průsek", "průseku/průseka", "průseku/průsekovi", "průsek/průseka", "průseku", "průseku/průsekovi", "průsekem", "průseky/průsekové", "průseků", "výsekům", "průseky", "průseky/průsekové", "průsecích", "průseky"], + + // polibek + ["m", "-([cčšždnňmpbrstvz])ek", "0ku/0ka", "0ku/0kovi", "0ek/0ka", "0ku", "0ku/0kovi", "0kem", "0ky/0kové", "0ků", "0kům", "0ky", "0ky/0kové", "0cích", "0ky"], + // tabák + ["m", "-([k])", "0u/0a", "0u/0ovi", "0/0a", "0u", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "cích", "0y"], + // prach + ["m", "-ch", "chu/cha", "chu/chovi", "ch/cha", "chu/cha", "chu/chovi", "chem", "chy/chové", "chů", "chům", "chy", "chy/chové", "ších", "chy"], + // dosah + ["m", "-([h])", "0u/0a", "0u/0ovi", "0/0a", "0u", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "zích", "0y"], + // duben + ["m", "-e([mnz])", "0u/0a", "0u/0ovi", "e0/e0a", "0e", "0u/0ovi", "0em", "0y/0ové", "0ů", "0ům", "0y", "0y/0ové", "0ech", "0y"], + // otec + ["m", "-ec", "ce", "ci/covi", "ec/ce", "če", "ci/covi", "cem", "ce/cové", "ců", "cům", "ce", "ce/cové", "cích", "ci"], + // učeň + ["m", "-([cčďšňřťž])", "0e", "0i/0ovi", "0e", "0i", "0i/0ovi", "0em", "0e/0ové", "0ů", "0ům", "0e", "0e/0ové", "0ích", "0i"], + // boj + ["m", "-oj", "oje", "oji/ojovi", "oj/oje", "oji", "oji/ojovi", "ojem", "oje/ojové", "ojů", "ojům", "oje", "oje/ojové", "ojích", "oji"], + // Bláha + ["m", "-([gh])a", "0y", "0ovi", "0u", "0o", "0ovi", "0ou", "0ové", "0ů", "0ům", "0y", "0ové", "zích", "0y"], + // Rybka + ["m", "-([k])a", "0y", "0ovi", "0u", "0o", "0ovi", "0ou", "0ové", "0ů", "0ům", "0y", "0ové", "cích", "0y"], + // Hála + ["m", "-a", "y", "ovi", "u", "o", "ovi", "ou", "ové", "ů", "ům", "y", "ové", "ech", "y"], + // Avril + ["f", "-l", "le", "li", "l", "li", "li", "lí", "le", "lí", "lím", "le", "le", "lích", "lemi"], + // ??? + ["f", "-í", "í", "í", "í", "í", "í", "í", "í", "ích", "ím", "í", "í", "ích", "ími"], + // beznaděj + // TODO duplicate? + ["f", "-([jř])", "0e", "0i", "0", "0i", "0i", "0í", "0e", "0í", "0ím", "0e", "0e", "0ích", "0emi"], + // Třebíč + ["f", "-([č])", "0i", "0i", "0", "0i", "0i", "0í", "0i", "0í", "0ím", "0i", "0i", "0ích", "0mi"], + // Dobříš + ["f", "-([š])", "0i", "0i", "0", "0i", "0i", "0í", "0i", "0í", "0ím", "0i", "0i", "0ích", "0emi"], + // Anatolije + ["s", "-([sljřň])e", "0ete", "0eti", "0e", "0e", "0eti", "0etem", "0ata", "0at", "0atům", "0ata", "0ata", "0atech", "0aty"], + // čaj + ["m", "-j", "je", "ji", "j", "ji", "ji", "jem", "je/jové", "jů", "jům", "je", "je/jové", "jích", "ji"], + // graf + ["m", "-f", "fa", "fu/fovi", "f/fa", "fe", "fu/fovi", "fem", "fy/fové", "fů", "fům", "fy", "fy/fové", "fech", "fy"], + // Jiří + ["m", "-í", "ího", "ímu", "ího", "í", "ímu", "ím", "í", "ích", "ím", "í", "í", "ích", "ími"], + // Hugo + ["m", "-go", "a", "govi", "ga", "ga", "govi", "gem", "gové", "gů", "gům", "gy", "gové", "zích", "gy"], + // Kvido + ["m", "-o", "a", "ovi", "a", "o", "ovi", "em", "ové", "ů", "ům", "y", "ové", "ech", "y"], + // šaty + [NULL, "-([tp])y", NULL, NULL, NULL, NULL, NULL, NULL, "0y", "0", "0ům", "0y", "0y", "0ech", "0ami"], + // dřeváky + [NULL, "-([k])y", NULL, NULL, NULL, NULL, NULL, NULL, "0y", "e0", "0ám", "0y", "0y", "0ách", "0ami"], + // ??? + ["f", "-ar", "ary", "aře", "ar", "ar", "ar", "ar", "ary", "ar", "arám", "ary", "ary", "arách", "arami"], + // madam + ["f", "-am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am", "am"], + // Jennifer + ["f", "-er", "er", "er", "er", "er", "er", "er", "ery", "er", "erám", "ery", "ery", "erách", "erami"], + // Joe + ["m", "-oe", "oema", "oemovi", "oema", "oeme", "emovi", "emem", "oemové", "oemů", "oemům", "oemy", "oemové", "oemech", "oemy"], + //Iva + ["f", "-a", "y", "ě", "u", "o", "ě", "ou", "y", "", "ám", "y", "y", "ách", "ami"], ]; - + /** * @var array { * @var string nominative @@ -355,325 +359,331 @@ class Inflection * } */ protected $exceptions = [ - ["bořek", "bořk", "bořka"], - ["bořek", "bořk", "bořka"], - ["chleba", "chleb", "chleba"], - ["chléb", "chleb", "chleba"], - ["cyklus", "cykl", "cyklus"], - ["dvůr", "dvor", "dvůr"], - ["déšť", "dešť", "déšť"], - ["důl", "dol", "důl"], - ["havel", "havl", "havla"], - ["hnůj", "hnoj", "hnůj"], - ["hůl", "hole", "hůl"], - ["karel", "karl", "karla"], - ["kel", "kl", "kel"], - ["kotel", "kotl", "kotel"], - ["kůň", "koň", "koně"], - ["luděk", "luďk", "luďka"], - ["líh", "lih", "líh"], - ["mráz", "mraz", "mráz"], - ["myš", "myše", "myš"], - ["nehet", "neht", "nehet"], - ["ocet", "oct", "octa"], - ["osel", "osl", "osla"], - ["pavel", "pavl", "pavla"], - ["pes", "ps", "psa"], - ["peň", "pň", "peň"], - ["posel", "posl", "posla"], - ["prsten", "prstýnek", "prstýnku"], - ["pytel", "pytl", "pytel"], - ["půl", "půle", "půli"], - ["skrýš", "skrýše", "skrýš"], - ["smrt", "smrť", "smrt"], - ["sníh", "sněh", "sníh"], - ["sopel", "sopl", "sopel"], - ["stupeň", "stupň", "stupeň"], - ["stůl", "stol", "stůl"], - ["svatozář", "svatozáře", "svatozář"], - ["sůl", "sole", "sůl"], - ["tůň", "tůňe", "tůň"], - ["veš", "vš", "veš"], - ["vítr", "větr", "vítr"], - ["vůl", "vol", "vola"], - ["zeď", "zď", "zeď"], - ["zář", "záře", "zář"], - ["účet", "účt", "účet"], + ["bořek", "bořk", "bořka"], + ["bořek", "bořk", "bořka"], + ["chleba", "chleb", "chleba"], + ["chléb", "chleb", "chleba"], + ["cyklus", "cykl", "cyklus"], + ["dvůr", "dvor", "dvůr"], + ["déšť", "dešť", "déšť"], + ["důl", "dol", "důl"], + ["havel", "havl", "havla"], + ["hnůj", "hnoj", "hnůj"], + ["hůl", "hole", "hůl"], + ["karel", "karl", "karla"], + ["kel", "kl", "kel"], + ["kotel", "kotl", "kotel"], + ["kůň", "koň", "koně"], + ["luděk", "luďk", "luďka"], + ["líh", "lih", "líh"], + ["mráz", "mraz", "mráz"], + ["myš", "myše", "myš"], + ["nehet", "neht", "nehet"], + ["ocet", "oct", "octa"], + ["osel", "osl", "osla"], + ["pavel", "pavl", "pavla"], + ["pes", "ps", "psa"], + ["peň", "pň", "peň"], + ["posel", "posl", "posla"], + ["prsten", "prstýnek", "prstýnku"], + ["pytel", "pytl", "pytel"], + ["půl", "půle", "půli"], + ["skrýš", "skrýše", "skrýš"], + ["smrt", "smrť", "smrt"], + ["sníh", "sněh", "sníh"], + ["sopel", "sopl", "sopel"], + ["stupeň", "stupň", "stupeň"], + ["stůl", "stol", "stůl"], + ["svatozář", "svatozáře", "svatozář"], + ["sůl", "sole", "sůl"], + ["tůň", "tůňe", "tůň"], + ["veš", "vš", "veš"], + ["vítr", "větr", "vítr"], + ["vůl", "vol", "vola"], + ["zeď", "zď", "zeď"], + ["zář", "záře", "zář"], + ["účet", "účt", "účet"], ]; - + protected $forceM = [ - "alexej", - "aleš", - "alois", - "ambrož", - "ametyst", - "andrej", - "arest", - "azbest", - "bartoloměj", - "bruno", - "chlast", - "chřest", - "čaj", - "čaroďej", - "darmoďej", - "dešť", - "displej", - "dobroďej", - "drákula", - "ďeda", - "ďej", - "host", - "hranostaj", - "hugo", - "háj", - "ilja", - "ivo", - "jirka", - "jiří", - "kolega", - "koloďej", - "komoří", - "kontest", - "koň", - "kvido", - "kříž", - "lanýž", - "lukáš", - "maťej", - "mikoláš", - "mikuláš", - "mluvka", - "most", - "motorest", - "moula", - "muž", - "noe", - "ondřej", - "oto", - "otto", - "papež", - "pepa", - "peň", - "plast", - "podkoní", - "polda", - "prodej", - "protest", - "rest", - "saša", - "sleď", - "slouha", - "sluha", - "sprej", - "strejda", - "stupeň", - "sťežeň", - "šmoula", - "termoplast", - "test", - "tobiáš", - "tomáš", - "trest", - "táta", - "velmož", - "výdej", - "výprodej", - "vězeň", - "zeť", - "zloďej", - "žokej", + "alexej", + "aleš", + "alois", + "ambrož", + "ametyst", + "andrej", + "arest", + "azbest", + "bartoloměj", + "bruno", + "chlast", + "chřest", + "čaj", + "čaroďej", + "darmoďej", + "dešť", + "displej", + "dobroďej", + "drákula", + "ďeda", + "ďej", + "host", + "hranostaj", + "hugo", + "háj", + "ilja", + "ivo", + "jirka", + "jiří", + "kolega", + "koloďej", + "komoří", + "kontest", + "koň", + "kvido", + "kříž", + "lanýž", + "lukáš", + "maťej", + "mikoláš", + "mikuláš", + "mluvka", + "most", + "motorest", + "moula", + "muž", + "noe", + "ondřej", + "oto", + "otto", + "papež", + "pepa", + "peň", + "plast", + "podkoní", + "polda", + "prodej", + "protest", + "rest", + "saša", + "sleď", + "slouha", + "sluha", + "sprej", + "strejda", + "stupeň", + "sťežeň", + "šmoula", + "termoplast", + "test", + "tobiáš", + "tomáš", + "trest", + "táta", + "velmož", + "výdej", + "výprodej", + "vězeň", + "zeť", + "zloďej", + "žokej", ]; - + protected $forceF = [ - "dagmar", - "dešť", - "digestoř", - "ester", - "kancelář", - "kleč", - "konzervatoř", - "koudel", - "koupel", - "křeč", - "maštal", - "miriam", - "neteř", - "obec", - "ocel", - "oratoř", - "otep", - "postel", - "prdel", - "rozkoš", - "řeč", - "sbeř", - "trofej", - "ves", - "výstroj", - "výzbroj", - "vš", - "zbroj", - "zteč", - "zvěř", - "závěj", + "dagmar", + "dešť", + "digestoř", + "ester", + "kancelář", + "kleč", + "konzervatoř", + "koudel", + "koupel", + "křeč", + "maštal", + "miriam", + "neteř", + "obec", + "ocel", + "oratoř", + "otep", + "postel", + "prdel", + "rozkoš", + "řeč", + "sbeř", + "trofej", + "ves", + "výstroj", + "výzbroj", + "vš", + "zbroj", + "zteč", + "zvěř", + "závěj", ]; - + protected $forceS = [ - "house", - "kuře", - "kůzle", - "nemluvňe", - "osle", - "prase", - "sele", - "slůně", - "tele", - "vejce", - "zvíře", + "house", + "kuře", + "kůzle", + "nemluvňe", + "osle", + "prase", + "sele", + "slůně", + "tele", + "vejce", + "zvíře", ]; - - public function inflect($text, $animate = FALSE) - { - $words = array_reverse(explode(' ', $text)); - $gender = NULL; - $inflected = []; - foreach ($words as $word) { - $_ = mb_substr($word, 0, 1, 'UTF-8'); - $isUpper = mb_strtoupper($_, 'UTF-8') === $_; - - $inflectedWord = [1 => $word]; - $word = $this->breakAccents($word); - $wordLower = mb_strtolower($word, 'UTF-8'); - if ($gender === NULL) { - if (in_array($wordLower, $this->forceM)) { - $gender = 'm'; - } else if (in_array($wordLower, $this->forceF)) { - $gender = 'f'; - } else if (in_array($wordLower, $this->forceS)) { - $gender = 's'; - } - } - - $exception = NULL; - foreach ($this->exceptions as $e) { - if ($wordLower === $this->breakAccents($e[0])) { - $exception = $e; - break; - } + + public function inflect($text, $animate = FALSE) { + $words = array_reverse(explode(' ', $text)); + $gender = NULL; + $inflected = []; + foreach ($words as $word) { + $_ = mb_substr($word, 0, 1, 'UTF-8'); + $isUpper = mb_strtoupper($_, 'UTF-8') === $_; + + $inflectedWord = [1 => $word]; + $word = $this->breakAccents($word); + $wordLower = mb_strtolower($word, 'UTF-8'); + if ($gender === NULL) { + if (in_array($wordLower, $this->forceM)) { + $gender = 'm'; + } else { + if (in_array($wordLower, $this->forceF)) { + $gender = 'f'; + } else { + if (in_array($wordLower, $this->forceS)) { + $gender = 's'; + } } - - foreach ($this->patterns as $pattern) { - if ($gender && $pattern[0] !== $gender) { - continue; - } - - $word = $exception ? $exception[1] : $word; - $left = $this->match($pattern[1], $word); - - if ($left !== -1) { - $prefix = mb_substr($word, 0, $left, 'UTF-8'); - for ($case = 2; $case < 15; $case++) { - if ($exception && $case === 4) { - $inflectedWord[$case] = ucfirst($exception[2]); - continue; - } - - $postfix = $pattern[$case]; - foreach ($this->replacements as $i => $replacement) { - $postfix = str_replace($i, $replacement, $postfix); - } - - $posSlash = mb_strpos($postfix, '/', NULL, 'UTF-8'); - if ($posSlash) { - if ($animate) { - $postfix = mb_substr($postfix, $posSlash + 1, NULL, 'UTF-8'); - } else { - $postfix = mb_substr($postfix, 0, $posSlash, 'UTF-8'); - } - } - - $result = $this->fixAccents($prefix . $postfix); - if ($isUpper) { - $result = mb_convert_case($result, MB_CASE_TITLE, 'UTF-8'); - } - $inflectedWord[$case] = $result; - } - $inflected[] = $inflectedWord; - $gender = $pattern[0]; - break; + } + } + + $exception = NULL; + foreach ($this->exceptions as $e) { + if ($wordLower === $this->breakAccents($e[0])) { + $exception = $e; + break; + } + } + + foreach ($this->patterns as $pattern) { + if ($gender && $pattern[0] !== $gender) { + continue; + } + + $word = $exception ? $exception[1] : $word; + $left = $this->match($pattern[1], $word); + + if ($left !== -1) { + $prefix = mb_substr($word, 0, $left, 'UTF-8'); + for ($case = 2; $case < 15; $case++) { + if ($exception && $case === 4) { + $inflectedWord[$case] = ucfirst($exception[2]); + continue; + } + + $postfix = $pattern[$case]; + foreach ($this->replacements as $i => $replacement) { + $postfix = str_replace($i, $replacement, $postfix); + } + + $posSlash = mb_strpos($postfix, '/', NULL, 'UTF-8'); + if ($posSlash) { + if ($animate) { + $postfix = mb_substr($postfix, $posSlash + 1, NULL, 'UTF-8'); + } else { + $postfix = mb_substr($postfix, 0, $posSlash, 'UTF-8'); } + } + + $result = $this->fixAccents($prefix . $postfix); + if ($isUpper) { + $result = mb_convert_case($result, MB_CASE_TITLE, 'UTF-8'); + } + $inflectedWord[$case] = $result; } - - if (!isset($inflectedWord[2])) { - // appropriate pattern not found, returning original - $inflected[] = array_fill(1, 14, $inflectedWord[1]); - } + $inflected[] = $inflectedWord; + $gender = $pattern[0]; + break; + } } - - $result = []; - $reversed = array_reverse($inflected); - for ($case = 1; $case < 15; $case++) { - $partials = []; - foreach ($reversed as $word) { - $partials[] = $word[$case]; - } - $result[$case] = implode(' ', $partials); + + if (!isset($inflectedWord[2])) { + // appropriate pattern not found, returning original + $inflected[] = array_fill(1, 14, $inflectedWord[1]); + } + } + + $this->gender = $gender; + + $result = []; + $reversed = array_reverse($inflected); + for ($case = 1; $case < 15; $case++) { + $partials = []; + foreach ($reversed as $word) { + $partials[] = $word[$case]; } - return $result; + $result[$case] = implode(' ', $partials); + } + + return $result; } - + /** * @param string $pattern * @param string $word * * @return int position from left where the pattern matched from right otherwise -1 */ - protected function match($pattern, $word) - { - if (substr($pattern, 0, 1) !== '-') // compare if the first byte is ascii `-` - { - return strcasecmp($pattern, $word) === 0 ? 0 : -1; + protected function match($pattern, $word) { + if (substr($pattern, 0, 1) !== '-') // compare if the first byte is ascii `-` + { + return strcasecmp($pattern, $word) === 0 ? 0 : -1; + } + + $matches = []; + if (preg_match('/' . substr($pattern, 1) . '$/iu', $word, $matches)) { + for ($i = count($matches) - 1; $i > 0; $i--) { + $this->replacements[$i - 1] = $matches[count($matches) - $i]; } - - $matches = []; - if (preg_match('/' . substr($pattern, 1) . '$/iu', $word, $matches)) { - for ($i = count($matches) - 1; $i > 0; $i--) { - $this->replacements[$i - 1] = $matches[count($matches) - $i]; - } - - return mb_strlen($word, 'UTF-8') - mb_strlen($matches[0], 'UTF-8'); - } - - return -1; + + return mb_strlen($word, 'UTF-8') - mb_strlen($matches[0], 'UTF-8'); + } + + return -1; } - + /** * @param $word * * @return string */ - protected function breakAccents($word) - { - return strtr($word, ['di' => 'ďi', 'ti' => 'ťi', 'ni' => 'ňi', 'dě' => 'ďe', 'tě' => 'ťe', 'ně' => 'ňe']); + protected function breakAccents($word) { + return strtr($word, ['di' => 'ďi', 'ti' => 'ťi', 'ni' => 'ňi', 'dě' => 'ďe', 'tě' => 'ťe', 'ně' => 'ňe']); } - + /** * @param $word * * @return string */ - protected function fixAccents($word) - { - return strtr($word, ['ďi' => 'di', 'ťi' => 'ti', 'ňi' => 'ni', 'ďe' => 'dě', 'ťe' => 'tě', 'ňe' => 'ně']); + protected function fixAccents($word) { + return strtr($word, ['ďi' => 'di', 'ťi' => 'ti', 'ňi' => 'ni', 'ďe' => 'dě', 'ťe' => 'tě', 'ňe' => 'ně']); } - + /** * @return mixed */ - public function getPatterns() - { - return $this->patterns; + public function getPatterns() { + return $this->patterns; } - -} + + public function getGender() { + return $this->gender; + } + + }