bg.sor 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. # 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
  2. ^0 нула
  3. 1 едно
  4. 2 две
  5. 3 три
  6. 4 четири
  7. 5 пет
  8. 6 шест
  9. 7 седем
  10. 8 осем
  11. 9 девет
  12. 10 десет
  13. 11 единадесет
  14. 12 дванадесет
  15. 1([0-9]) $1надесет
  16. ([0-9])([0-9]) $(m:$1)десет[ и $2]
  17. ([0-9])([0-9][0-9]) $(e2:\1)[ $(and:$2)]
  18. ([0-9]{1,3})([0-9]{3}) $(e3:\1)[ $(and:$2)]
  19. ([0-9]{1,3})([0-9]{6}) $(e6:\1)[ $(and:$2)]
  20. ([0-9]{1,3})([0-9]{9}) $(e9:\1)[ $(and:$2)]
  21. ([0-9]{1,3})([0-9]{12}) $(e12:\1)[ $(and:$2)]
  22. ([0-9]{1,3})([0-9]{15}) $(e15:\1)[ $(and:$2)]
  23. ([0-9]{1,3})([0-9]{18}) $(e18:\1)[ $(and:$2)]
  24. ([0-9]{1,3})([0-9]{21}) $(e21:\1)[ $(and:$2)]
  25. ([0-9]{1,3})([0-9]{24}) $(e24:\1)[ $(and:$2)]
  26. e2:1 сто
  27. e2:([23]) $1ста
  28. e2:([0-9]) $1стотин
  29. e3:1 хиляда
  30. e3:([0-9]{1,3}) $(f:$1) хиляди
  31. e6:1 един милион
  32. e6:([0-9]{1,3}) $(m:$1) милиона
  33. e9:1 един милиард
  34. e9:([0-9]{1,3}) $(m:$1) милиарда
  35. e12:1 един трилион
  36. e12:([0-9]{1,3}) $(m:$1) трилиона
  37. e15:1 един квадрилион
  38. e15:([0-9]{1,3}) $(m:$1) квадрилиона
  39. e18:1 един квинтилион
  40. e18:([0-9]{1,3}) $(m:$1) квинтилиона
  41. e21:1 един секстилион
  42. e21:([0-9]{1,3}) $(m:$1) секстилиона
  43. e24:1 един септилион
  44. e24:([0-9]{1,3}) $(m:$1) септилиона
  45. # prepend "и" ("and") only to a subphrase that does not already contain it
  46. "and:([а-я ]+ и [^0-9]+)" \1
  47. "and:([^0-9]+)" и \1
  48. # negative number
  49. [-−]([0-9]+) минус |$1
  50. # decimals
  51. by_digits:([0-9])([0-9]*) $1 $(by_digits:\2)
  52. ([-−]?[0-9]+)[.,] цяло
  53. ([-−]?[0-9]+)[.,]1 $1 цяло и една десета
  54. ([-−]?[0-9]+)[.,]([0-9]) $1 цяло и $(f:|$2) десети
  55. ([-−]?[0-9]+)[.,]01 $1 цяло и една стотна
  56. ([-−]?[0-9]+)[.,]([0-9][0-9]) $1 цяло и $(f:|$2) стотни
  57. ([-−]?[0-9]+)[.,]001 $1 цяло и една хилядна
  58. ([-−]?[0-9]+)[.,]([0-9]{3}) $1 цяло и $(f:|$2) хилядни
  59. ([-−]?[0-9]+)[.,]0001 $1 цяло и една десетохилядна
  60. ([-−]?[0-9]+)[.,]([0-9]{4}) $1 цяло и $(f:|$2) десетохилядни
  61. ([-−]?[0-9]+)[.,]00001 $1 цяло и една стохилядна
  62. ([-−]?[0-9]+)[.,]([0-9]{5}) $1 цяло и $(f:|$2) стохилядни
  63. ([-−]?[0-9]+)[.,]000001 $1 цяло и една милионна
  64. ([-−]?[0-9]+)[.,]([0-9]{6}) $1 цяло и $(f:|$2) милионни
  65. ([-−]?[0-9]+)[.,]([0-9]+) $1 цяло и $(by_digits:\2)
  66. # gender conversion for cardinals (default is neuter)
  67. n:([^0-9]+) \1
  68. f:([^0-9]*)едно \1една
  69. f:([^0-9]+) \1
  70. m:([^0-9]*)едно \1един
  71. m:([^0-9]*)две \1два
  72. m:([^0-9]+) \1
  73. # currency
  74. # unit/subunit singular/plural
  75. us(.).:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \2
  76. up(.).:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \3
  77. ss.(.):([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \4
  78. sp.(.):([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\6) \5
  79. BGN:(.+),(.+) $(\2mf:лев,лева,стотинка,стотинки,\1)
  80. CHF:(.+),(.+) $(\2mm:швейцарски франк,швейцарски франка,сантим,сантима,\1)
  81. CNY:(.+),(.+) $(\2mm:юан,юана,фен,фена,\1)
  82. EUR:(.+),(.+) $(\2nm:евро,евро,цент,цента,\1)
  83. GBP:(.+),(.+) $(\2fm:британска лира,британски лири,пенс,пенса,\1)
  84. JPY:(.+),(.+) $(\2fm:йена,йени,сен,сена,\1)
  85. RUB:(.+),(.+) $(\2ff:рубла,рубли,копейка,копейки,\1)
  86. TRY:(.+),(.+) $(\2fm:турска лира,турски лири,куруш,куруша,\1)
  87. USD:(.+),(.+) $(\2mm:щатски долар,щатски долара,цент,цента,\1)
  88. "([A-Z]{3}) ([-−]?1)([.,]00?)?" $(\1:|$2,us)
  89. "([A-Z]{3}) ([-−]?[0-9]+)([.,]00?)?" $(\1:|$2,up)
  90. "(([A-Z]{3}) [-−]?[0-9]+)[.,](01)" $1 и $(\2:|$3,ss)
  91. "(([A-Z]{3}) [-−]?[0-9]+)[.,]([0-9])" $1 и $(\2:|$(\30),sp)
  92. "(([A-Z]{3}) [-−]?[0-9]+)[.,]([0-9][0-9])" $1 и $(\2:|$3,sp)
  93. == neuter ==
  94. ([-−]?[0-9]+) $1
  95. == masculine ==
  96. ([-−]?[0-9]+) $(m:|$1)
  97. == feminine ==
  98. ([-−]?[0-9]+) $(f:|$1)
  99. == ordinal ==
  100. # up to 6 digits, more than enough for outline numbering
  101. 0 нулев
  102. 1 първи
  103. 2 втори
  104. 3 трети
  105. 4 четвърти
  106. 5 пети
  107. 6 шести
  108. 7 седми
  109. 8 осми
  110. 9 девети
  111. (1[0-9]|[2-9]0) $1и
  112. ([0-9])([0-9]) $(\10)[ и $(ordinal \2)]
  113. 100 стотен
  114. ([23])00 $1стен
  115. ([0-9])00 $1стотен
  116. ([0-9])([0-9][0-9]) $(\100) $(and:$(ordinal \2))
  117. 1000 хиляден
  118. (1?[0-9]|[1-9]00?)000 $(f:|$1)хиляден
  119. ([0-9]{2,3})000 $(f:|$1) хиляден
  120. 1([0-9]{3}) хиляда[ $(and:$(ordinal \1))]
  121. ([0-9]{1,3})([0-9]{3}) $(f:|$1) хиляди[ $(and:$(ordinal \2)])
  122. [-−]([0-9]+) минус $(ordinal \1)
  123. == ordinal-masculine ==
  124. ([-−]?[0-9]+) $(ordinal \1)
  125. == ordinal-feminine ==
  126. ([-−]?[0-9]+) $(ordinal-feminine $(ordinal \1))
  127. ([^0-9]+)ен \1на
  128. ([^0-9]+)и \1а
  129. ([^0-9]+) \1а
  130. == ordinal-neuter ==
  131. ([-−]?[0-9]+) $(ordinal-neuter $(ordinal \1))
  132. ([^0-9]+)ен \1но
  133. ([^0-9]+)и \1о
  134. ([^0-9]+) \1о
  135. == ordinal-number ==
  136. ([0-9]+) \1.
  137. == help ==
  138. "" $(1)|, $(2), $(3)\n$(\0 masculine)$(\0 feminine)$(\0 neuter)$(\0 ordinal-masculine)$(\0 ordinal-feminine)$(\0 ordinal-neuter)$(\0 ordinal-number)
  139. (.*) \1: |$(\1 1)|, |$(\1 2)|, |$(\1 3)|\n