177 lines
5.5 KiB
Java
177 lines
5.5 KiB
Java
# 0-135;200;205;210;211;231;300;400;405;410;411;420;431;500;600;700;800;900;1000;1015;1030;1031;1100;1101;1120;1121;1200;2000;2001;2020;2021;2100;2101;2120;2121;10000;11000;11001;11020;11021;11100;11101;11120;11121;20000;21000;21001;21020;21021;21200;21201;21220;21221;22000;100000;300000;300001;310000;321000;321321;1000000;1000001;1000023;4000435;11320387;34045671940;1.1;1.2;2,01;2.21;2.22;2.222;2,2222;45,9876543;-5;−17,48
|
||
|
||
^0 нула
|
||
1 едно
|
||
2 две
|
||
3 три
|
||
4 четири
|
||
5 пет
|
||
6 шест
|
||
7 седем
|
||
8 осем
|
||
9 девет
|
||
10 десет
|
||
11 единадесет
|
||
12 дванадесет
|
||
1([0-9]) $1надесет
|
||
([0-9])([0-9]) $(m:$1)десет[ и $2]
|
||
([0-9])([0-9][0-9]) $(e2:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{3}) $(e3:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{6}) $(e6:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{9}) $(e9:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{12}) $(e12:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{15}) $(e15:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{18}) $(e18:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{21}) $(e21:\1)[ $(and:$2)]
|
||
([0-9]{1,3})([0-9]{24}) $(e24:\1)[ $(and:$2)]
|
||
|
||
e2:1 сто
|
||
e2:([23]) $1ста
|
||
e2:([0-9]) $1стотин
|
||
e3:1 хиляда
|
||
e3:([0-9]{1,3}) $(f:$1) хиляди
|
||
e6:1 един милион
|
||
e6:([0-9]{1,3}) $(m:$1) милиона
|
||
e9:1 един милиард
|
||
e9:([0-9]{1,3}) $(m:$1) милиарда
|
||
e12:1 един трилион
|
||
e12:([0-9]{1,3}) $(m:$1) трилиона
|
||
e15:1 един квадрилион
|
||
e15:([0-9]{1,3}) $(m:$1) квадрилиона
|
||
e18:1 един квинтилион
|
||
e18:([0-9]{1,3}) $(m:$1) квинтилиона
|
||
e21:1 един секстилион
|
||
e21:([0-9]{1,3}) $(m:$1) секстилиона
|
||
e24:1 един септилион
|
||
e24:([0-9]{1,3}) $(m:$1) септилиона
|
||
|
||
# prepend "и" ("and") only to a subphrase that does not already contain it
|
||
|
||
"and:([а-я ]+ и [^0-9]+)" \1
|
||
"and:([^0-9]+)" и \1
|
||
|
||
# negative number
|
||
|
||
[-−]([0-9]+) минус |$1
|
||
|
||
# decimals
|
||
|
||
by_digits:([0-9])([0-9]*) $1 $(by_digits:\2)
|
||
([-−]?[0-9]+)[.,] цяло
|
||
([-−]?[0-9]+)[.,]1 $1 цяло и една десета
|
||
([-−]?[0-9]+)[.,]([0-9]) $1 цяло и $(f:|$2) десети
|
||
([-−]?[0-9]+)[.,]01 $1 цяло и една стотна
|
||
([-−]?[0-9]+)[.,]([0-9][0-9]) $1 цяло и $(f:|$2) стотни
|
||
([-−]?[0-9]+)[.,]001 $1 цяло и една хилядна
|
||
([-−]?[0-9]+)[.,]([0-9]{3}) $1 цяло и $(f:|$2) хилядни
|
||
([-−]?[0-9]+)[.,]0001 $1 цяло и една десетохилядна
|
||
([-−]?[0-9]+)[.,]([0-9]{4}) $1 цяло и $(f:|$2) десетохилядни
|
||
([-−]?[0-9]+)[.,]00001 $1 цяло и една стохилядна
|
||
([-−]?[0-9]+)[.,]([0-9]{5}) $1 цяло и $(f:|$2) стохилядни
|
||
([-−]?[0-9]+)[.,]000001 $1 цяло и една милионна
|
||
([-−]?[0-9]+)[.,]([0-9]{6}) $1 цяло и $(f:|$2) милионни
|
||
([-−]?[0-9]+)[.,]([0-9]+) $1 цяло и $(by_digits:\2)
|
||
|
||
# gender conversion for cardinals (default is neuter)
|
||
|
||
n:([^0-9]+) \1
|
||
f:([^0-9]*)едно \1една
|
||
f:([^0-9]+) \1
|
||
m:([^0-9]*)едно \1един
|
||
m:([^0-9]*)две \1два
|
||
m:([^0-9]+) \1
|
||
|
||
# currency
|
||
|
||
# unit/subunit singular/plural
|
||
|
||
us(.).:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \2
|
||
up(.).:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \3
|
||
ss.(.):([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \4
|
||
sp.(.):([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \5
|
||
|
||
BGN:(.+),(.+) $(\2mf:лев,лева,стотинка,стотинки,\1)
|
||
CHF:(.+),(.+) $(\2mm:швейцарски франк,швейцарски франка,сантим,сантима,\1)
|
||
CNY:(.+),(.+) $(\2mm:юан,юана,фен,фена,\1)
|
||
EUR:(.+),(.+) $(\2nm:евро,евро,цент,цента,\1)
|
||
GBP:(.+),(.+) $(\2fm:британска лира,британски лири,пенс,пенса,\1)
|
||
JPY:(.+),(.+) $(\2fm:йена,йени,сен,сена,\1)
|
||
RUB:(.+),(.+) $(\2ff:рубла,рубли,копейка,копейки,\1)
|
||
TRY:(.+),(.+) $(\2fm:турска лира,турски лири,куруш,куруша,\1)
|
||
USD:(.+),(.+) $(\2mm:щатски долар,щатски долара,цент,цента,\1)
|
||
|
||
"([A-Z]{3}) ([-−]?1)([.,]00?)?" $(\1:|$2,us)
|
||
"([A-Z]{3}) ([-−]?[0-9]+)([.,]00?)?" $(\1:|$2,up)
|
||
|
||
"(([A-Z]{3}) [-−]?[0-9]+)[.,](01)" $1 и $(\2:|$3,ss)
|
||
"(([A-Z]{3}) [-−]?[0-9]+)[.,]([0-9])" $1 и $(\2:|$(\30),sp)
|
||
"(([A-Z]{3}) [-−]?[0-9]+)[.,]([0-9][0-9])" $1 и $(\2:|$3,sp)
|
||
|
||
== neuter ==
|
||
|
||
([-−]?[0-9]+) $1
|
||
|
||
== masculine ==
|
||
|
||
([-−]?[0-9]+) $(m:|$1)
|
||
|
||
== feminine ==
|
||
|
||
([-−]?[0-9]+) $(f:|$1)
|
||
|
||
== ordinal ==
|
||
|
||
# up to 6 digits, more than enough for outline numbering
|
||
|
||
0 нулев
|
||
1 първи
|
||
2 втори
|
||
3 трети
|
||
4 четвърти
|
||
5 пети
|
||
6 шести
|
||
7 седми
|
||
8 осми
|
||
9 девети
|
||
(1[0-9]|[2-9]0) $1и
|
||
([0-9])([0-9]) $(\10)[ и $(ordinal \2)]
|
||
100 стотен
|
||
([23])00 $1стен
|
||
([0-9])00 $1стотен
|
||
([0-9])([0-9][0-9]) $(\100) $(and:$(ordinal \2))
|
||
1000 хиляден
|
||
(1?[0-9]|[1-9]00?)000 $(f:|$1)хиляден
|
||
([0-9]{2,3})000 $(f:|$1) хиляден
|
||
1([0-9]{3}) хиляда[ $(and:$(ordinal \1))]
|
||
([0-9]{1,3})([0-9]{3}) $(f:|$1) хиляди[ $(and:$(ordinal \2)])
|
||
|
||
[-−]([0-9]+) минус $(ordinal \1)
|
||
|
||
== ordinal-masculine ==
|
||
|
||
([-−]?[0-9]+) $(ordinal \1)
|
||
|
||
== ordinal-feminine ==
|
||
|
||
([-−]?[0-9]+) $(ordinal-feminine $(ordinal \1))
|
||
|
||
([^0-9]+)ен \1на
|
||
([^0-9]+)и \1а
|
||
([^0-9]+) \1а
|
||
|
||
== ordinal-neuter ==
|
||
|
||
([-−]?[0-9]+) $(ordinal-neuter $(ordinal \1))
|
||
|
||
([^0-9]+)ен \1но
|
||
([^0-9]+)и \1о
|
||
([^0-9]+) \1о
|
||
|
||
== ordinal-number ==
|
||
|
||
([0-9]+) \1.
|
||
|
||
== help ==
|
||
|
||
"" $(1)|, $(2), $(3)\n$(\0 masculine)$(\0 feminine)$(\0 neuter)$(\0 ordinal-masculine)$(\0 ordinal-feminine)$(\0 ordinal-neuter)$(\0 ordinal-number)
|
||
(.*) \1: |$(\1 1)|, |$(\1 2)|, |$(\1 3)|\n |