diff --git a/lib/src/bulgarian/NumeralBul.gf b/lib/src/bulgarian/NumeralBul.gf index ebd431f8d..3c30d62de 100644 --- a/lib/src/bulgarian/NumeralBul.gf +++ b/lib/src/bulgarian/NumeralBul.gf @@ -100,16 +100,16 @@ lin pot3plus n m = { tail = inc i.tail } ; - D_0 = mk2Dig "0" "0в" ; - D_1 = mk3Dig "1" "1ви" Sg ; + D_0 = mk3Dig "0" "0" "0ев" Pl ; + D_1 = mk3Dig "1" "1" "1ви" Sg ; D_2 = mk2Dig "2" "2ри" ; D_3 = mkDig "3" ; D_4 = mkDig "4" ; D_5 = mkDig "5" ; D_6 = mkDig "6" ; - D_7 = mk2Dig "7" "7ми" ; - D_8 = mk2Dig "8" "8ми" ; - D_9 = mkDig "9" ; + D_7 = mk3Dig "7" "7на" "7ми" Pl ; + D_8 = mk3Dig "8" "8на" "8ми" Pl ; + D_9 = mk3Dig "9" "9има" "9ти" Pl ; oper commaIf : DTail -> Str = \t -> case t of { @@ -123,11 +123,11 @@ lin pot3plus n m = { T3 => T1 } ; - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; + mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c (c+"ма") o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ти") ; - mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> { - s = table {NCard _ => c ; NOrd aform => regAdjective o ! aform} ; + mk3Dig : Str -> Str -> Str -> Number -> TDigit = \c1,c2,o,n -> { + s = mkCardOrd c1 c2 c1 o ; n = n } ; diff --git a/lib/src/bulgarian/ResBul.gf b/lib/src/bulgarian/ResBul.gf index 1c5365bee..7de5ede20 100644 --- a/lib/src/bulgarian/ResBul.gf +++ b/lib/src/bulgarian/ResBul.gf @@ -530,18 +530,19 @@ resource ResBul = ParamX ** open Prelude, Predef in { \dva, dvama, dve, vtori -> table { NCard dg => digitGenderSpecies dva dvama dve ! dg ; - NOrd aform => let vtora = init vtori + "а" ; - vtoro = init vtori + "о" + NOrd aform => let vtora : Str = case vtori of {_+"в" => vtori; _ => init vtori} + "а" ; + vtoro : Str = case vtori of {_+"в" => vtori; _ => init vtori} + "о"; + i : Str = case vtori of {_+"в" => "и"; _ => ""} in case aform of { ASg Masc Indef => vtori ; - ASg Masc Def => vtori+"я" ; - ASgMascDefNom => vtori+"ят" ; + ASg Masc Def => vtori+i+"я" ; + ASgMascDefNom => vtori+i+"ят" ; ASg Fem Indef => vtora ; ASg Fem Def => vtora+"та" ; ASg Neut Indef => vtoro ; ASg Neut Def => vtoro+"то" ; - APl Indef => vtori ; - APl Def => vtori+"те" + APl Indef => vtori+i ; + APl Def => vtori+i+"те" } } ; @@ -565,23 +566,26 @@ resource ResBul = ParamX ** open Prelude, Predef in { digitGenderSpecies : Str -> Str -> Str -> CardForm => Str = \dva, dvama, dve - -> let addDef : Str -> Str = - \s -> case s of { + -> let addDef : Str -> Gender -> Str = + \s,g -> case s of { dves+"та" => dves+"тате" ; dv+"а" => dv+"ата" ; + "0" => s+"та" ; + "1" => s+case g of {Masc => "ят"; Fem => "та"; Neut => "то"} ; + "2" => s+case g of {Masc => "та"; _ => "те"} ; x => x+"те" - } + } in table { CFMasc Indef NonHuman => dva ; - CFMasc Def NonHuman => addDef dva ; - CFMascDefNom NonHuman => addDef dva ; + CFMasc Def NonHuman => addDef dva Masc ; + CFMascDefNom NonHuman => addDef dva Masc ; CFMasc Indef Human => dvama ; - CFMasc Def Human => addDef dvama ; - CFMascDefNom Human => addDef dvama ; + CFMasc Def Human => addDef dvama Masc ; + CFMascDefNom Human => addDef dvama Masc ; CFFem Indef => dve ; - CFFem Def => addDef dve ; + CFFem Def => addDef dve Fem ; CFNeut Indef => dve ; - CFNeut Def => addDef dve + CFNeut Def => addDef dve Neut } ; mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} =