Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libnumbertext for openSUSE:Factory checked in at 2021-04-01 14:16:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libnumbertext (Old) and /work/SRC/openSUSE:Factory/.libnumbertext.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libnumbertext" Thu Apr 1 14:16:02 2021 rev:6 rq:881408 version:1.0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/libnumbertext/libnumbertext.changes 2020-06-22 17:43:28.973380666 +0200 +++ /work/SRC/openSUSE:Factory/.libnumbertext.new.2401/libnumbertext.changes 2021-04-01 14:16:09.939884683 +0200 @@ -1,0 +2,16 @@ +Sat Mar 13 13:04:15 UTC 2021 - Dirk M??ller <[email protected]> + +- update to 1.0.7: + * ga.sor: new module Irish by L??szl?? N??meth + * lg.sor: new module Luganda by Phillip Samuel + * mr.sor: new module Marathi by Ankur Heramb Joshi + * mt.sor: new module Maltase by L??szl?? N??meth + * fi.sor: fix ordinal 0, bug report by Tuomas Hietala + * hu_Hung.sor: + - fix transliteration of V??r??smarty, bug report by Zolt??n ??v??ri + - replace ?? and ?? by Viktor Kov??cs + - fix transliteration of dates with affixation + * th.sor: fix big (>999,999) numbers by Vladislav Kiper + * ua.sor: fix euro cent, bug report by Kty0mka + +------------------------------------------------------------------- Old: ---- 1.0.6.tar.gz New: ---- 1.0.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libnumbertext.spec ++++++ --- /var/tmp/diff_new_pack.cUembz/_old 2021-04-01 14:16:10.407885495 +0200 +++ /var/tmp/diff_new_pack.cUembz/_new 2021-04-01 14:16:10.411885502 +0200 @@ -1,7 +1,7 @@ # # spec file for package libnumbertext # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define libname libnumbertext-1_0-0 Name: libnumbertext -Version: 1.0.6 +Version: 1.0.7 Release: 0 Summary: Language-neutral NUMBERTEXT and MONEYTEXT functions License: MPL-2.0 ++++++ 1.0.6.tar.gz -> 1.0.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/AUTHORS new/libnumbertext-1.0.7/AUTHORS --- old/libnumbertext-1.0.6/AUTHORS 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/AUTHORS 2021-01-31 22:33:45.000000000 +0100 @@ -32,6 +32,10 @@ - review ordinal numbers in Italian module +Ankur Heramb Joshi: + + - author of Marashi module + Mike Kaganski (mikekaganski at hotmail dot com: - author of ordinal numbers of Russian module (ru) @@ -54,6 +58,10 @@ - author of Indonesian module +Phillip Samuel <phillipsamuelk3 at gmail dot com>: + + - author of Luganda module + Goran Raki?? (grakic at devbase dot net): - author of Serbian modules (sh-RS, sr-RS) @@ -220,14 +228,22 @@ - reported Swedish gender problem with currencies in sv_SE.sor. +Vladislav Kiper <vladislav.kiper@duallab dot com>: + + - fix Thai numbers greater than 999,999 + Viktor Kov??cs: - - add "sch" to "s", "??" to "??" transliteration to Old Hungarian + - add "sch" to "s", "??" to "??" transliteration to Old Hungarian, fix change of "??" and "??" Mantas Kriau??i??nas at Launchpad.net: - hints for Lithuanian module +Kty0mka at GitHub: + + - report bad euro cent in Ukrainian module + Rimas Kudelis: - bug report for default Lithuanian currency @@ -302,10 +318,18 @@ Stephan Nilsson (Stephan at Nilsson dot tf): - sv_SE bug report: the Swedish 7 is "sju", not *sjo +Zolt??n ??v??ri (ovari123 at zoho dot org): + + - report problem with Old Hungarian transliteration of "V??r??smarty" and similar words in LibreOffice issue tdf#136368 + Nicolas Pagni (Nicolas dot Pagni at npagni dot it): - bug report about the bad conversion of 1 eurocent in the Italian module +Pintert3 at GitHub: + + - bug report about outdated documentation + Gwena??l Quenette (g_quenette at yahoo dot fr): - bug report for the Portuguese module: cientos -> centos @@ -314,7 +338,6 @@ - suggested new namespace and compatibility name usage. - Modestas Rimkus: - Lithuanian typo, correct ordinal indicator @@ -339,6 +362,10 @@ - bug report about Thai numbers ending with "01" (Excel BAHTTEXT bug) +Sylvaticus at GitHub: + + - suggesting better introduction on web site + K??lm??n Szalai (Kami): - ooo-build integration of Numbertext OpenOffice.org extension diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/ChangeLog new/libnumbertext-1.0.7/ChangeLog --- old/libnumbertext-1.0.6/ChangeLog 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/ChangeLog 2021-01-31 22:33:45.000000000 +0100 @@ -1,3 +1,17 @@ +2021-01-31: 1.0.7 release: + * ga.sor: new module Irish by L??szl?? N??meth + * lg.sor: new module Luganda by Phillip Samuel + * mr.sor: new module Marathi by Ankur Heramb Joshi + * mt.sor: new module Maltase by L??szl?? N??meth + + * fi.sor: fix ordinal 0, bug report by Tuomas Hietala + * hu_Hung.sor: + - fix transliteration of V??r??smarty, bug report by Zolt??n ??v??ri + - replace ?? and ?? by Viktor Kov??cs + - fix transliteration of dates with affixation + * th.sor: fix big (>999,999) numbers by Vladislav Kiper + * ua.sor: fix euro cent, bug report by Kty0mka + 2020-06-01: 1.0.6 release: * Numbertext.cxx: don't depend on en_US.UTF-8 locale by Stephan Bergmann * Java: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/README.md new/libnumbertext-1.0.7/README.md --- old/libnumbertext-1.0.6/README.md 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/README.md 2021-01-31 22:33:45.000000000 +0100 @@ -5,7 +5,7 @@ ``` Language-neutral NUMBERTEXT and MONEYTEXT functions for LibreOffice Calc -version 1.0.6 (2020-06-01) +version 1.0.7 (2021-01-31) Numbertext LibreOffice extension, Soros programming language specification (draft) and IDE*, @@ -15,13 +15,13 @@ * Not in LibreOffice Numbertext extension, see http://NUMBERTEXT.org. -Copyright: 2009-2020 (C) L??szl?? N??meth (nemeth at numbertext dot org) +Copyright: 2009-2021 (C) L??szl?? N??meth (nemeth at numbertext dot org) License: LGPL-3+/Modified BSD dual-license Numbertext language data (Soros programs): License: LGPL-3+/Modified BSD dual-license (except Serbian) -Copyright: 2009-2020 (C) L??szl?? N??meth et al. (see AUTHORS) +Copyright: 2009-2021 (C) L??szl?? N??meth et al. (see AUTHORS) Bulgarian: 2018 (C) Mihail Balabanov (m dot balabanov at gmail dot com) Croatian: 2014 (C) Mihovil Stani?? (mihovil dot stanic at gmail dot com) Hebrew module: 2010 (C) Alex Bodnaru (alexbodn at 012 dot net dot il) @@ -29,7 +29,9 @@ Galician: 2018 (C) Adri??n Chaves (adrian at chaves dot io) Indonesian: 2010 (C) Eko Prasetiyo (ekoprasetiyo at gmail) Latvian: 2012 (C) Asterisks at OOo Wiki +Luganda: 2020 (C) Phillip Samuel <phillipsamuelk3 at gmail dot com> Luxembourgish: 2009 (C) Michel Weimerskirch (michel at weimerskirch dot net) +Marathi: 2020 (C) Ankur Heramb Joshi Portuguese: 2009 (C) Eduardo Moreno (emoreno at tokonhu dot com) Turkish: 2009 (C) Randem @@ -68,6 +70,7 @@ fr French fr-BE Belgian French fr-CH Swiss French +ga Irish gl Galician he Hebrew hr Croatian @@ -80,9 +83,12 @@ ko-KR Korean (South) ko-KP Korean (North) lb Luxembourgish +lg Luganda lt Lithuanian lv Latvian +mr Marathi ms Malaysian +mt Maltese nb Norwegian Bokm??l nl Dutch nn Norwegian Nynorsk diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/VERSION new/libnumbertext-1.0.7/VERSION --- old/libnumbertext-1.0.6/VERSION 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/VERSION 2021-01-31 22:33:45.000000000 +0100 @@ -1 +1 @@ -1.0.6 +1.0.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/configure.ac new/libnumbertext-1.0.7/configure.ac --- old/libnumbertext-1.0.6/configure.ac 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/configure.ac 2021-01-31 22:33:45.000000000 +0100 @@ -1,6 +1,6 @@ m4_define([numbertext_version_major],[1]) m4_define([numbertext_version_minor],[0]) -m4_define([numbertext_version_micro],[6]) +m4_define([numbertext_version_micro],[7]) m4_define([numbertext_version],[numbertext_version_major.numbertext_version_minor.numbertext_version_micro]) AC_PREREQ([2.68]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/fi.sor new/libnumbertext-1.0.7/data/fi.sor --- old/libnumbertext-1.0.6/data/fi.sor 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/data/fi.sor 2021-01-31 22:33:45.000000000 +0100 @@ -117,7 +117,7 @@ == ordinal == -^0 nolla +^0 nollas 1$ ensimm??inen 2$ toinen 2 kahdes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/ga.sor new/libnumbertext-1.0.7/data/ga.sor --- old/libnumbertext-1.0.6/data/ga.sor 1970-01-01 01:00:00.000000000 +0100 +++ new/libnumbertext-1.0.7/data/ga.sor 2021-01-31 22:33:45.000000000 +0100 @@ -0,0 +1,50 @@ +^0 n??id +1 aon +2$ d?? +2 dh?? +3 tr?? +4 ceathair +5 c??ig +6 s?? +7 seacht +8 ocht +9 naoi +10 deich +12 d?? dh??ag +1(\d) $1 d??ag +(\d)([18]) $(\10) a h$2 +2(\d) fiche[ a $1] +3(\d) tr????cha[ a $1] +4(\d) ceathracha[ a $1] +# 4(\d) daichead[ a $1] # alternative +5(\d) caoga[ a $1] +6(\d) seasca[ a $1] +([78])(\d) $1??[ a $2] +9(\d) n??cha[ a $1] +(\d)(\d\d) $1 c??ad[ $2] +(\d{1,3})(\d\d\d) $1 m??le[ $2] +(\d{1,3})(\d{6}) $1 milli??n$(:\2)$2 +(\d{1,3})(\d{9}) $1 billi??n$(:\2)$2 +(\d{1,3})(\d{12}) $1 trilli??n$(:\2)$2 + +== ordinal == + +# chapter one -> caibidil a haon + +([18]) a h$1 +(\d|10) a $1 +([23]0) $1 +([4-9]0) $1d?? +([234])(\d) $(ordinal \2) is $(\10) +(\d\d) a $1 +(.*) $1 + +== ordinal-number == + +(.*) \1. + +== help == + +"" |$(1)|, |$(2)|, |$(3)|\n$(help ordinal)$(help ordinal-number) +(.*) \1: |$(\1 1)|, |$(\1 2)|, |$(\1 3)|\n + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/hu_Hung.sor new/libnumbertext-1.0.7/data/hu_Hung.sor --- old/libnumbertext-1.0.6/data/hu_Hung.sor 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/data/hu_Hung.sor 2021-01-31 22:33:45.000000000 +0100 @@ -2,15 +2,20 @@ # Transliterate numbers and words -# convert only words with known characters +# convert words with traditional or foreign "i" written as "y" +# e.g. ??prily, Champs-??lys??es, ??lys??e-palota, Dolly, Folly, Hollywood, jolly... +"^(??p????ri????l|Champs-??l|[cC]i????t|Do????l??k-Sa????l|[dfhjDFHJ]ol????l|??l|Fesz????t|[gG]rizz????l|Ha????rasz????t|Hat????va????n|Husz????t|[iI]n????ter????ci????t|K??th????l|Ku????ko????r????el????l|Mind????szen????t|Nosz????t|[pP]en???n|Pes????t|Re????gu????l|So????n|Szi????l|Szte????va????no????vi????t|Th??????k??????l|V??????r??s????mar????t|[zZ][l??]ot)y(.*) 0$" $1????$2 +"^(??P????RI????L|CHAMPS-??L|CI????T|DO????L??K-SA????L|[DFHJ]OL????L|??L|FESZ????T|GRIZZ????L|HA????RASZ????T|HAT????VA????N|HUSZ????T|IN????TER????CI????T|K??TH????L|KU????KO????R????EL????L|MIND????SZEN????T|NOSZ????T|PEN????N|PES????T|RE???GU????L|SO???N|SZI????L|SZTE????VA????NO????VI????T|TH??????K??????L|V??????R??S????MAR????T|Z[L??]OT)Y(.*) 0$" $1????$2 +# if the original word contains an unknown character, return without modification "^(.*[^-0-9a-zA-Z??????????????????????????????????????????,??????\?\;]) 0$" \1 -# and words with known y +# words with y "^y(ard.*) 0$" ????$1 -"^Y([aA][rR][dD].*|[uU][cC][oO][nN].*) 0$" ????$1 -"^Y([bB][lL].*|vette.*) 0$" ????$1 -"^([bB]o|[cC]owbo|[dD]ispla|[gG]ra|[pP]la)y(.*) 0$" $1????$2 -"^(BO|COWBO|DISPLA|GRA|PLA)Y(.*) 0$" $1????$2 -# don't transliterate words with starting y +"^Y([aA][rR][dD].*|[uU]???[cC][oO][nN].*) 0$" ????$1 +"^Y([bB][lL].*) 0$" ????$1 +"^Y(vet????te.*) 0$" ????$1 +"^([bB]o|[cC]ow???bo|[dD]isp???la|[gG]ra|[pP]la)y(.*) 0$" $1????$2 +"^(BO|COW???BO|DISP???LA|GRA|PLA)Y(.*) 0$" $1????$2 +# don't transliterate other words with starting y "(^[yY].*) 0$" \1 # don't transliterate words with q, but not with qu "(^.*[qQ][^uU].*) 0$" \1 @@ -48,7 +53,7 @@ # numbers with letters, for example dates with affixes -(\d+)(.+) $1$2 +"(\d+)([^ ]+)" $1$2 # letters @@ -140,10 +145,10 @@ U(.*) ????$1 ??(.*) ????$1 ??(.*) ????$1 -??(.*) ????$1 -??(.*) ????$1 -??(.*) ????$1 -??(.*) ????$1 +??(.*) ????$1 +??(.*) ????$1 +??(.*) ????$1 +??(.*) ????$1 [vw](.*) ????$1 [VW](.*) ????$1 x(.*) ????????$1 # x->ksz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/lg.sor new/libnumbertext-1.0.7/data/lg.sor --- old/libnumbertext-1.0.6/data/lg.sor 1970-01-01 01:00:00.000000000 +0100 +++ new/libnumbertext-1.0.7/data/lg.sor 2021-01-31 22:33:45.000000000 +0100 @@ -0,0 +1,98 @@ +^0 zeero +:1 mu +:2 biri +:3 satu +:4 na +:5 taano +:6 kaaga +:7 sanvu +:8 naana +:9 enda +:10 kumi +1 emu +2 b$(:2) +3 s$(:3) +4 nnya +5 t$(:5) +6 mu$(:6) +7 mu$(:7) +8 mu$(:8) +9 mw$(:9) + +1(\d) k$(:10) [na $1] +([2-5])(\d) ama$(:10) a$(:\1) [mu $2] +([67])(\d) n$(:\1) [mu $2] +8(\d) ki$(:8) [mu $1] +9(\d) ky$(:9) [mu $1] + +1(\d\d) ki$(:10) [mu $1] +([2-5])(\d\d) bi$(:10) bi$(:\1) [mu $2] +([6-8])(\d\d) lu$(:\1) [mu $2] +9(\d\d) lw$(:9) [mu $1] + +1(\d\d\d) lu$(:10) [mu $1] +([2-5])(\d\d\d) n$(:10) $1 [mu $2] +([6-8])(\d\d\d) ka$(:\1) [mu $2] +9(\d\d\d) k$(:9) [mu $1] + +1(\d{4}) mutwalo [gu$(:1) mu $1] +([2-5])(\d{4}) mitwalo e$(:\1) [mu $2] +([6-9])(\d{4}) mitwalo $1 [mu $2] +(\d\d)(\d{4}) mitwalo $1 [mu $2] + +1(\d{6}) kakadde [ka$(:1) ne $1] +9(\d{6}) bukadde bw$(:9) [ne $1] +(\d)(\d{6}) bukadde bu$(:\1) [ne $2] +(\d{2,6})(\d{6}) bukadde $1 [ne $2] + +1(\d{12}) kawumbi [ka$(:1) ne $1] +9(\d{12}) buwumbi bw$(:9) [ne $1] +(\d)(\d{12}) buwumbi bu$(:\1) [ne $2] +(\d{2,6})(\d{12}) buwumbi $1 [ne $2] + +1(\d{18}) kafukunya [ka$(:1) ne $1] +9(\d{18}) bufukunya bw$(:9) [ne $1] +(\d)(\d{18}) bufukunya bu$(:\1) [ne $2] +(\d{2,6})(\d{18}) bufukunya $1 [ne $2] + +1(\d{24}) kasedde [ka$(:1) ne $1] +9(\d{24}) busedde bw$(:9) [ne $1] +(\d)(\d{24}) busedde bu$(:\1) [ne $2] +(\d{2,6})(\d{24}) busedde $1 [ne $2] + +# e????aanyi + +[-???](\d+) e????aanyi |$1 + +# decimals +0[.,] katonnyeze +([-???]?\d+)[.,] $1| katonnyeze +([-???]?\d+[.,]\d*)(\d) $1| |$2 + + +# unit/subunit +u:([^,]*),([^,]*) \1 +#s:([^,]*),([^,]*) \2 + +GBP:(\D) $(\1: pound za U.K) +KES:(\D) $(\1: ssiringi za Kenya) +UGX:(\D) $(\1: ssiringi za Uganda) +USD:(\D) $(\1: U.S. doola) +TZS:(\D) $(\1: ssiringi za Tanzania) + + +"([A-Z]{3}) (.+)" $(\1:u) |$2 + +== ordinal == +1 esooka +([2-5]) eyoku$(:\1) +([6-9]) eyo$1 +(1\d) eye$1 +(\d+) eya $1 +[-???](\d+) e????aanyi $(ordinal \1) + +== ordinal-number == +(\d+) ey\1 + +== year == +(\d+) mwaka $1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/mr.sor new/libnumbertext-1.0.7/data/mr.sor --- old/libnumbertext-1.0.6/data/mr.sor 1970-01-01 01:00:00.000000000 +0100 +++ new/libnumbertext-1.0.7/data/mr.sor 2021-01-31 22:33:45.000000000 +0100 @@ -0,0 +1,503 @@ +# mr.sor for - MARATHI ??????????????? Indian Language (mr-IN) +# In many Indian languages including MARATHI, rules of number reading (from 0 up to number 100) are complex and inconsistent. +# e.g often a number is read first with units place & then ten's place. - e.g 34 read as " ??????????????? " where " ?????? " stands for 4 (units place) and then ????????? for 30 (ten's place) which is inverse with the number reading logic in ENGLISH (where it is read as Thirty Four) +# Pronunciations of numbers changes and follows virtually no logic - e.g. 54 read as " ?????????????????? " where ten's place 50 is read as ???????????? but only No. 50 would be read as ?????????????????? ! +# when units place number is 9, the number is read with the reference to the NEXT number e.g. 39 is read as ??????????????????????????? where " ???????????? " stands for 9 (units place) and then ??????????????? with reference to 40 (the NEXT number) which is inverse with the number reading logic in ENGLISH (where it is read as Thirty Nine - reference of previous ten's place) +# Reading of same units place but different ten's place is vastly different - e.g. 27 ???????????????????????? , 47 ?????????????????????????????? , 67 ????????????????????? , 77 ???????????????????????????????????? . Here same units place 7 has been read differently as ??????????????? , ??????????????? , ????????? , ????????????????????? ... very difficult to frame any logic ! +# Therefore we have hard coded numbers from 0 to 100 with Marathi translations. +# Number reading after Hundred's place is very similar to English logic ... hence no problem in coding for further Marathi numbers +# -------------------------------------- +# Number List in English , word in MARATHI +# - Ankur Joshi , [email protected] +# + +^0 ??????????????? +1 ?????? +2 ????????? +3 ????????? +4 ????????? +5 ????????? +6 ????????? +7 ????????? +8 ?????? +9 ?????? +10 ????????? +11 ???????????? +12 ???????????? +13 ???????????? +14 ???????????? +15 ??????????????? +16 ???????????? +17 ???????????? +18 ???????????? +19 ?????????????????? +20 ????????? +21 ??????????????? +22 ??????????????? +23 ??????????????? +24 ??????????????? +25 ?????????????????? +26 ?????????????????? +27 ???????????????????????? +28 ???????????????????????? +29 ????????????????????? +30 ????????? +31 ??????????????? +32 ?????????????????? +33 ?????????????????? +34 ??????????????? +35 ?????????????????? +36 ?????????????????? +37 ?????????????????? +38 ??????????????? +39 ??????????????????????????? +40 ??????????????? +41 ?????????????????????????????? +42 ????????????????????? +43 ??????????????????????????? +44 ?????????????????????????????? +45 ??????????????????????????? +46 ??????????????????????????? +47 ?????????????????????????????? +48 ?????????????????????????????? +49 ?????????????????????????????? +50 ?????????????????? +51 ????????????????????? +52 ???????????????????????? +53 ???????????????????????? +54 ?????????????????? +55 ???????????????????????? +56 ??????????????? +57 ??????????????????????????? +58 ??????????????????????????? +59 ????????????????????? +60 ????????? +61 ?????????????????? +62 ?????????????????? +63 ???????????????????????? +64 ?????????????????? +65 ?????????????????? +66 ????????????????????? +67 ????????????????????? +68 ????????????????????? +69 ??????????????????????????? +70 ??????????????? +71 ???????????????????????? +72 ????????????????????? +73 ????????????????????????????????? +74 ????????????????????????????????? +75 ??????????????????????????? +76 ????????????????????? +77 ?????????????????????????????? +78 ????????????????????????????????? +79 ???????????????????????? +80 ???????????? +81 ????????????????????????????????? +82 ???????????????????????? +83 ?????????????????????????????? +84 ?????????????????????????????? +85 ?????????????????????????????? +86 ????????????????????? +87 ????????????????????????????????? +88 ?????????????????????????????? +89 ??????????????????????????? +90 ??????????????? +91 ????????????????????????????????? +92 ???????????????????????? +93 ?????????????????????????????? +94 ????????????????????????????????? +95 ?????????????????????????????? +96 ??????????????????????????? +97 ????????????????????????????????? +98 ?????????????????????????????? +99 ????????????????????????????????? +100 ???????????? + +# ------------------------ + +# separator function +:0+ # ?????? ???????????? +:0*\d?\d " ????????? " # ?????? ???????????? ????????? ????????? +:\d+ ", " # ?????? ????????????, ?????? ?????????, ?????? ???????????? ????????????????????????????????????????????? + +# ------------------------ + +(\d)(\d\d) $1??????[ $2] # default: ???????????? ?????? Note - The intentional space before $ in [ $2] . This is done to eliminate Zero error after 100 +(\d{1,2})(\d\d\d) $1 ????????????[ $2] # ????????? ???????????? ??????????????? +(\d{1,2})(\d{5}) $1 ?????????$(:\2)$2 # 5 zero after number thus its a LAKH [ 5th power of 10 is LAKH thus expression (\d{5}) , after this next is CRORE which is 7th power i.e. diff of 2 powers thus expression (\d{1,2}) . Foww this henceforth if in future needs to adjust Name of decimal places ] +(\d{1,2})(\d{7}) $1 ????????????$(:\2)$2 # 7 zero after number thus its a CRORE +(\d{1,1})(\d{9}) $1 ????????????$(:\2)$2 # 9 zero after number thus its a ABJA (equivalant to a BILLION) +(\d{1,1})(\d{10}) $1 ????????????$(:\2)$2 # 10 zero after number thus its a KHARVA +(\d{1,1})(\d{11}) $1 ??????????????????$(:\2)$2 # 11 zero after number thus its a NIKHARVA +(\d{1,1})(\d{12}) $1 ?????????????????????$(:\2)$2 # 12 zero after number thus its a MAHAPADMA (equivalant to a TRILLION) +(\d{1,1})(\d{13}) $1 ????????????$(:\2)$2 # 1??? zero after number thus its a SHANKU +(\d{1,1})(\d{14}) $1 ????????????$(:\2)$2 # 14 zero after number thus its a JALADHI +(\d{1,1})(\d{15}) $1 ??????????????????$(:\2)$2 # 15 zero after number thus its a ANTYA (equivalant to a QUADRILLION) +(\d{1,1})(\d{16}) $1 ????????????$(:\2)$2 # 16 zero after number thus its a MADHYA +(\d{1,50})(\d{17}) $1 ??????????????????$(:\2)$2 # 17 zero after number thus its a PARARDH. Practically unlimited numbers are sumed um in Parardh. + +### Above nameing for decimal places is with reference to work by BHASKARACHARYA (1150 AD) from book LILAVATI , SHLOKA (Verse) no 11 & 12 which is --> +### ?????? ???????????? ????????????????????? ???????????? ???????????? ?????????????????? ???????????????: ???????????????: | +### ???????????????????????? ?????????????????? ???????????? ?????????????????? ????????????????????? ????????????: ?????????????????????: || 11 || +### ?????????????????? ???????????????????????? ?????????????????? ???????????????????????? ????????? ???????????????????????????????????? ??????????????????: | +### ????????????????????????: ??????????????????????????? ??????????????????????????????????????? ????????????: ??????????????????: || 12 || +### +### Verse is translated as --> +### Positions of the digits from right to left are unit, ten, hundred, thousand, ten thousand, hundred thousand (lakh), million, ten million (Crore), hundred million, billion (abja), Kharva, Nikharva, Mahapadma, Sanku, Jaladhi, Antya, Madhya, Parardha. The value of each digit on the left is ten times that on the right. +### Although for practical purpose this verse goes up to parardha (17th power of 10), there are terms for numbers up to 140th power of 10 in Sanskrit. +### In todays practice wordings ???????????? and ?????????????????? are not used and if used are replaced by ??????????????????????????? and ?????????????????? / ??????????????? respectively (Not used here) +### + +# ------------------------ + +# negative number + +[-???](\d+) ????????? |$1 + +# ------------------------ + +# decimals + +0[.,] ??????????????? ??????????????? +([-???]?\d+)[.,] $1| ??????????????? + +"([-???]?\d+[.,])([^0]\d)" $1| |$2 # e.g. ???????????? ????????? ??????????????? ?????? +"([-???]?\d+[.,])(0)(0)(\d)" $1| |$2 |$3 |$4 # e.g. ????????????????????? ??????????????? ??????????????? ??????????????? ?????? +"([-???]?\d+[.,])(0)(\d\d)" $1| |$2 |$3 # e.g. ??????????????????????????? ??????????????? ??????????????? ??????????????????????????? +"([-???]?\d+[.,])(\d\d\d)" $1| |$2 # e.g. ??????????????? ??????????????? ??????????????? ????????????????????? , upto 3 places after decimal, decimals read in hundreds +"([-???]?\d+[.,])(\d)(\d)(\d)(\d)" $1| |$2 |$3 |$4 |$5 # e.g. ?????????????????????????????? ??????????????? ????????? ????????? ????????? ????????? +"([-???]?\d+[.,]\d*)(\d)" $1| |$2 + +# ------------------------ +# currency +# unit/subunit singular/plural + +us:([^,]*),([^,]*),([^,]*),([^,]*) \1 +up:([^,]*),([^,]*),([^,]*),([^,]*) \2 +ss:([^,]*),([^,]*),([^,]*),([^,]*) \3 +sp:([^,]*),([^,]*),([^,]*),([^,]*) \4 + +AED:(\D+) $(\1: ????????????????????? ?????????????????????, ????????????????????? ?????????????????????, ??????????????????, ??????????????????) +AUD:(\D+) $(\1: ????????????????????????????????? ????????????, ????????????????????????????????? ??????????????????, ????????????, ??????????????????) +BGN:(\D+) $(\1: lev, leva, stotinka, stotinki) +BWP:(\D+) $(\1: pula, pula, thebe, thebe) +CAD:(\D+) $(\1: ???????????????????????? ????????????, ???????????????????????? ??????????????????, ????????????, ??????????????????) +CHF:(\D+) $(\1: ?????????????????? ??????????????????, ?????????????????? ????????????????????????, ??????????????????, ????????????????????????) +CNY:(\D+) $(\1: ?????????????????? ????????????, ?????????????????? ????????????, ?????????, ?????????) +CZK:(\D+) $(\1: Czech koruna, Czech koruny, hal??r, hal??re) +EEK:(\D+) $(\1: kroon, kroonid, sent, senti) +EUR:(\D+) $(\1: ????????????, ????????????, ????????????, ??????????????????) +GBP:(\D+) $(\1: ???????????? ???????????????????????????, ?????????????????? ???????????????????????????, ????????????, ??????????????????) +GHS:(\D+) $(\1: Ghana cedi, Ghana cedis, pesewa, pesewas) +GMD:(\D+) $(\1: dalasi, dalasi, butut, bututs) +HKD:(\D+) $(\1: ?????????????????????????????? ????????????, ?????????????????????????????? ??????????????????, ????????????, ??????????????????) +HRK:(\D+) $(\1: kuna, kuna, lipa, lipa) +HUF:(\D+) $(\1: forint, forint, fill??r, fill??r) + +# --- Using Indian Rupee Symbol " ??? " ------ +INR:(\D+) $(\1: ??? ???????????????, ??? ???????????????, ????????????, ????????????) +# ------------------------------------------ + +JMD:(\D+) $(\1: Jamaica dollar, Jamaica dollars, cent, cents) +JPY:(\D+) $(\1: ??????????????? ?????????, ??????????????? ?????????, ?????????, ?????????) +KES:(\D+) $(\1: Kenyan shilling, Kenyan shillings, cent, cents) +KRW:(\D+) $(\1: Korean won, Korean won, jeon, jeon) +KWD:(\D+) $(\1: ?????????????????? ???????????????, ?????????????????? ???????????????, ??????????????????, ??????????????????) +LRD:(\D+) $(\1: Liberian dollar, Liberian dollars, cent, cents) +LSL:(\D+) $(\1: loti, maloti, sente, lisente) +LTL:(\D+) $(\1: litas, litai, centas, centai) +LVL:(\D+) $(\1: lats, lati, santims, santimi) +MGA:(\D+) $(\1: ariary, ariaries, iraimbilanja, iraimbilanja) +MUR:(\D+) $(\1: Mauritian rupee, Mauritian rupees, cent, cents) +MXN:(\D+) $(\1: Mexican peso, Mexican pesos, centavo, centavos) +MWK:(\D+) $(\1: Malawian kwacha, Malawian kwacha, tambala, tambala) +MYR:(\D+) $(\1: Ringgit, Ringgit, cent, cents) +NAD:(\D+) $(\1: Namibian dollar, Namibian dollars, cent, cents) +NGN:(\D+) $(\1: naira, naira, kobo, kobo) +NZD:(\D+) $(\1: ??????????????????????????? ????????????, ??????????????????????????? ??????????????????, ????????????, ??????????????????) +PGK:(\D+) $(\1: kina, kina, toea, toea) +PHP:(\D+) $(\1: Philippine peso, Philippine pesos, centavo, centavos) +PKR:(\D+) $(\1: ?????????????????????????????? ???????????????, ?????????????????????????????? ???????????????, ????????????, ????????????) +PLN:(\D+) $(\1: zloty, zlotys, grosz, groszy) +RON:(\D+) $(\1: Romanian leu, Romanian lei, ban, bani) +RSD:(\D+) $(\1: Serbian dinar, Serbian dinars, para, para) +RUB:(\D+) $(\1: Russian ruble, Russian rubles, kopek, kopeks) +RWF:(\D+) $(\1: Rwandese franc, Rwandese francs, centime, centimes) +SAR:(\D+) $(\1: ???????????? ???????????????, ???????????? ???????????????, ???????????????, ???????????????) +SDG:(\D+) $(\1: Sudanese pound, Sudanese pounds, piastre, piastres) +SGD:(\D+) $(\1: ???????????????????????? ????????????, ???????????????????????? ??????????????????, ????????????, ??????????????????) +SLL:(\D+) $(\1: leone, leones, cent, cents) +SZL:(\D+) $(\1: lilangeni, emalangeni, cent, cents) +THB:(\D+) $(\1: baht, baht, satang, satang) +TRY:(\D+) $(\1: Turkish lira, Turkish lira, kurus, kurus) +TTD:(\D+) $(\1: Trinidad and Tobago dollar, Trinidad and Tobago dollars, cent, cents) +TZS:(\D+) $(\1: Tanzanian shilling, Tanzanian shillings, cent, cents) +UAH:(\D+) $(\1: hryvnia, hryvnia, kopiyka, kopiyka) +UGX:(\D+) $(\1: Uganda shilling, Uganda shillings, cent, cents) +USD:(\D+) $(\1: ??????. ??????. ????????????, ??????. ??????. ??????????????????, ????????????, ?????????????????? ) +X[AO]F:(\D+) $(\1: CFA franc, CFA francs, centime, centimes) +ZAR:(\D+) $(\1: South African rand, South African rand, cent, cents) +ZMK:(\D+) $(\1: Zambian kwacha, Zambian kwacha, ngwee, ngwee) +ZWL:(\D+) $(\1: Zimbabwe dollar, Zimbabwe dollars, cent, cents) + +"(JPY [-???]?\d+)[.,](\d\d)0" $1 +"(JPY [-???]?\d+[.,]\d\d)(\d)" $1 $2 ????????? + +"([A-Z]{3}) ([-???]?1)([.,]00?)?" $2$(\1:us) +"([A-Z]{3}) ([-???]?\d+)([.,]00?)?" $2$(\1:up) + +"(CNY [-???]?\d+)[.,](\d)0?" $1 $2 ??????????????? +"(CNY [-???]?\d+[.,]\d)(\d)" $1 $2 ????????? + +"((MGA|MRO) [-???]?\d+)[.,]0" $1 +"((MGA|MRO) [-???]?\d+)[.,]2" $1 ????????? |$(1)$(\2:ss) +"((MGA|MRO) [-???]?\d+)[.,]4" $1 ????????? |$(2)$(\2:sp) +"((MGA|MRO) [-???]?\d+)[.,]6" $1 ????????? |$(3)$(\2:sp) +"((MGA|MRO) [-???]?\d+)[.,]8" $1 ????????? |$(4)$(\2:sp) + +"(([A-Z]{3}) [-???]?\d+)[.,](01)" $1 ????????? |$(1)$(\2:ss) +"(([A-Z]{3}) [-???]?\d+)[.,](\d)" $1 ????????? |$(\30)$(\2:sp) +"(([A-Z]{3}) [-???]?\d+)[.,](\d\d)" $1 ????????? |$3$(\2:sp) + +== money == + +"(JPY [-???]?\d+)[.,](\d\d)0" $1 +"(JPY [-???]?\d+[.,]\d\d)(\d)" $1 $2 ????????? + +"([A-Z]{3}) ([-???]?1)([.,]00?)?" $2$(\1:us) +"([A-Z]{3}) ([-???]?\d+)([.,]00?)?" $2$(\1:up) + +"(CNY [-???]?\d+)[.,](\d)0?" $1 $2 ??????????????? +"(CNY [-???]?\d+[.,]\d)(\d)" $1 $2 ????????? + +"(MGA|MRO) ([-???]?\d+)[.,]0" $2$(\1:us) +"(MGA|MRO) ([-???]?\d+)[.,]2" $2 ????????? 1/5$(\1:us) +"(MGA|MRO) ([-???]?\d+)[.,]4" $2 ????????? 2/5$(\1:up) +"(MGA|MRO) ([-???]?\d+)[.,]6" $2 ????????? 3/5$(\1:up) +"(MGA|MRO) ([-???]?\d+)[.,]8" $2 ????????? 4/5$(\1:up) + +"([A-Z]{3}) ([-???]?1)" $2$(\1:us) +"([A-Z]{3}) ([-???]?\d+)" $2$(\1:up) +"(([A-Z]{3}) ([-???]?\d+))[.,](01)" $3 ????????? 1/100$(\2:us) +"(([A-Z]{3}) ([-???]?\d+))[.,](\d)" $3 ????????? \40/100$(\2:up) +"(([A-Z]{3}) ([-???]?\d+))[.,](\d\d)" $3 ????????? \4/100$(\2:up) +"(([A-Z]{3}) ([-???]?\d+))[.,](\d\d\d)" $3 ????????? \4/1000$(\2:up) + +# ------------------------ +# Ordinal ------ +# Ordinal no. reading in Marathi are GENDER dependent ( and not as simple in English where anyone at no 1 will be read as FIRST ) +# in Marathi there are 3 gender identities Male ??????????????????????????? , Female ????????????????????????????????? & Neutral ?????????????????????????????? (similar to masculine, feminine, neuter in Swiss ) +# ----------------------- +# If a sentence refer to MALE subject equivalent of FIRST is ??????????????? +# ordinal masculine --- ??????????????????????????? + +== ordinal-masculine == +([-???]?\d+) $(ordinal-masculine |$1) +(.*)?????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1???????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)?????? \1???????????? +(.*)?????? \1???????????? +(.*)????????? \1??????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)??????????????? \1????????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? + + +(.*)???????????????????????? \1?????????????????????????????? +(.*)???????????? \1?????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? +(.*)???????????????????????? \1?????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)????????????????????? \1??????????????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? + +([-???]?\d+)[.,](.*) $1 ??????????????? $(\2)?????? # Ordinal of Decimals +(.*) \1????????? # General Masculine Ordinal + +# ----------------------- +# If a sentence refer to FEMALE subject equivalent of FIRST is ??????????????? +# ordinal feminine --- ????????????????????????????????? + +== ordinal-feminine == +([-???]?\d+) $(ordinal-feminine |$1) +(.*)?????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1???????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)?????? \1???????????? +(.*)?????? \1???????????? +(.*)????????? \1??????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)??????????????? \1????????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? + + +(.*)???????????????????????? \1?????????????????????????????? +(.*)???????????? \1?????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? +(.*)???????????????????????? \1?????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)????????????????????? \1??????????????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? + +([-???]?\d+)[.,](.*) $1 ??????????????? $(\2)?????? # Ordinal of Decimals +(.*) \1????????? # General Feminine Ordinal + +# ----------------------- +# If a sentence refer to NEUTRAL subject equivalent of FIRST is ??????????????? / ??????????????? +# ordinal neutral --- ?????????????????????????????? + +== ordinal-neutral == +([-???]?\d+) $(ordinal-neutral |$1) +(.*)?????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1???????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)????????? \1??????????????? +(.*)?????? \1???????????? +(.*)?????? \1???????????? +(.*)????????? \1??????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)??????????????? \1????????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? +(.*)???????????? \1?????????????????? + +(.*)???????????????????????? \1?????????????????????????????? +(.*)???????????? \1?????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? +(.*)???????????????????????? \1?????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? +(.*)????????????????????? \1??????????????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? + +([-???]?\d+)[.,](.*) $1 ??????????????? $(\2)?????? # Ordinal of Decimals +(.*) \1????????? # General Neutral Ordinal + +# ----------------------- +# As the SUBJECT in the sentence forming is unknown and is out of scope of this code, default ordinal numbering is set to output all possible GENDERs separated by " / " , and hence may not deliver grammatically correct sentences ( we have hard coded Ordinal numbers from 1-10 with all possible GENDERs separated by " / " .. as in ??????????????? / ??????????????? / ??????????????? +# This is done deliberately considering ease of use. +# As separate commands for masculine, feminine & neutral eventhough exists, a User may not be aware. So by providing all gender words in default ordinal option, user at least will get some output of relevance. +# ordinal default --- ordinal words with all gender options separated by " / " + +== ordinal == # Default +([-???]?\d+) $(ordinal |$1) + +(.*)?????? \1??????????????? / \1 ??????????????? / \1 ??????????????? +(.*)????????? \1??????????????? / \1 ??????????????? / \1 ??????????????? +(.*)????????? \1??????????????? / \1 ??????????????? / \1 ??????????????? +(.*)????????? \1???????????? / \1 ???????????? / \1 ???????????? +(.*)????????? \1??????????????? / \1 ??????????????? / \1 ??????????????? +(.*)????????? \1??????????????? / \1 ??????????????? / \1 ??????????????? +(.*)????????? \1??????????????? / \1 ??????????????? / \1 ??????????????? +(.*)?????? \1???????????? / \1 ???????????? / \1 ???????????? +(.*)?????? \1???????????? / \1 ???????????? / \1 ???????????? +(.*)????????? \1??????????????? / \1 ??????????????? / \1 ??????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? +(.*)??????????????? \1????????????????????? / \1 ????????????????????? / \1 ????????????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? + + +(.*)???????????????????????? \1?????????????????????????????? / \1 ?????????????????????????????? / \1 ?????????????????????????????? +(.*)???????????? \1?????????????????? / \1 ?????????????????? / \1 ?????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? / \1 ??????????????????????????????????????? / \1 ??????????????????????????????????????? +(.*)???????????????????????? \1?????????????????????????????? / \1 ?????????????????????????????? / \1 ?????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? / \1 ???????????????????????????????????? / \1 ???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? / \1 ???????????????????????????????????? / \1 ???????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? / \1 ???????????????????????????????????? / \1 ???????????????????????????????????? +(.*)????????????????????? \1??????????????????????????? / \1 ??????????????????????????? / \1 ??????????????????????????? +(.*)????????????????????????????????? \1??????????????????????????????????????? / \1 ??????????????????????????????????????? / \1 ??????????????????????????????????????? +(.*)?????????????????????????????? \1???????????????????????????????????? / \1 ???????????????????????????????????? / \1 ???????????????????????????????????? + + +([-???]?\d+)[.,](.*) $1 ??????????????? $(\2)?????? / $1 ??????????????? $(\2)?????? / $1 ??????????????? $(\2)?????? # Ordinal of Decimals +(.*) \1????????? / \1????????? / \1????????? # General ALL Gender Ordinals + +# ----------------------- +# Also we have considered to use generalized method where result for "ELEVEN" will be like - ????????????????????? ???????????? (similar to saying "Rank Eleven" in English in a gender neutral way.) +# ordinal Sequential --- ordinal-sq + +== ordinal-sq == +([-???]?\d+) $(ordinal-sq |$1) +(.*) ????????????????????? \1 + +# ------------------------ +# ordinal-number +# Not relevant in Marathi + +== ordinal-number == +([-???]?\d+) $(ordinal-number |$2) +(.*) \2 + +# ------------------------ +# cardinal +# Not relevant in Marathi + +== cardinal(-)? == +([-???]?\d+) $(cardinal |$2) +(.*) \2 + +# ------------------------ + +== year == + +(1[0-9])00 $1?????? +(1[0-9])([0-9][0-9]) $1?????? $2 # e.g. 1857 = ?????????????????? ??????????????????????????? , 1947 = ???????????????????????? ?????????????????????????????? +(2[0-9])([0-9][0-9]) $1?????? $2 # e.g. 2021 = ??????????????? ??????????????? +(3[0-9])([0-9][0-9]) $1?????? $2 +(4[0-9])([0-9][0-9]) $1?????? $2 +(5[0-9])([0-9][0-9]) $1?????? $2 +(6[0-9])([0-9][0-9]) $1?????? $2 +(7[0-9])([0-9][0-9]) $1?????? $2 +(8[0-9])([0-9][0-9]) $1?????? $2 +(9[0-9])([0-9][0-9]) $1?????? $2 +(.*) $(year-remove-and $1) + +# ------------------------ + +== year-remove-and == + +"(.*) and (.*)" \1 \2 +(.*) \1 + +== help == + +"" $(1)|, $(2), $(3)\n$(\0 ordinal)$(\0 ordinal-masculine)$(\0 ordinal-feminine)$(\0 ordinal-neutral)$(\0 ordinal-sq)$(\0 ordinal-number)year: $(year 1999), two thousand, $(year 2001) +"" \ncurrency \(for example, INR\): $(INR 2.5)\nmoney INR: $(money INR 2.5) \1: $(\1 1), $(\1 2), $(\1 3)\n diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/mt.sor new/libnumbertext-1.0.7/data/mt.sor --- old/libnumbertext-1.0.6/data/mt.sor 1970-01-01 01:00:00.000000000 +0100 +++ new/libnumbertext-1.0.7/data/mt.sor 2021-01-31 22:33:45.000000000 +0100 @@ -0,0 +1,94 @@ +^0 xejn # ??ero +1 wie??ed +2 tnejn +3 tlieta +4 erbg??a +5 ??amsa +6 sitta +7 sebg??a +8 tmienja +9 disg??a +10 g??axra +11 ??dax +12 tnax +13 tlettax +14 erbatax +15 ??mistax +16 sittax +17 sbatax +18 tmintax +19 dsatax +2(\d) [$1 u ]g??oxrin +3(\d) [$1 u ]tletin +4(\d) [$1 u ]erbg??in +5(\d) [$1 u ]??amsin +6(\d) [$1 u ]sittin +7(\d) [$1 u ]sebg??in +8(\d) [$1 u ]tmenin +9(\d) [$1 u ]disg??in +1(\d\d) mija[ $1] +2(\d\d) mitejn[ $1] +3(\d\d) tliet mija[ $1] +4(\d\d) erba??? mija[ $1] +5(\d\d) hames mija[ $1] +6(\d\d) sitt mija[ $1] +7(\d\d) seba??? mija[ $1] +8(\d\d) tminn mija[ $1] +9(\d\d) disa??? mija[ $1] +1(\d{1,3}) elf[ $1] +2(\d{1,3}) elfejn[ $1] +3(\d{1,3}) tlitt elef[ $1] +4(\d{1,3}) erbat elef[ $1] +5(\d{1,3}) ??amest elef[ $1] +6(\d{1,3}) sitt elef[ $1] +7(\d{1,3}) sebat elef[ $1] +8(\d{1,3}) tmint elef[ $1] +9(\d{1,3}) disat elef[ $1] +(\d{1,3})(\d\d\d) $1 elf[ $2] +(\d{1,3})(\d{6}) $1 miljun[ $2] +(\d{1,3})(\d{9}) $1 biljun[ $2] +(\d{1,3})(\d{12}) $1 triljun[ $2] + +== cardinal-feminine == + +1 wa??da +(.*) $1 + +== cardinal-masculine == + +(.*) $1 + + +== ordinal == + +1 l-ewwel +2 it-tieni +3 it-tielet +4 ir-raba???g +5 il-??ames +6 is-sitt +7 is-seba???g +8 it-tmien +9 id-disa???g +10 l-g??axar +11 il-??dax +12 it-tnax +13 it-tlettax +14 l-erbatax +15 il-??mistax +16 is-sittax +17 is-sbatax +18 it-tmintax +19 id-dsatax +20 l-g??oxrin +(.*) \1 + +== ordinal-number == + +(.*) \1. + +== help == + +"" |$(1)|, |$(2)|, |$(3)|\n$(help cardinal-feminine)$(help cardinal-masculine)$(help ordinal)$(help ordinal-number) +(cardinal(-feminine|-masculine)?|ordinal(-number)?) \1: |$(\1 1)|, |$(\1 2)|, |$(\1 3)|\n + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/th.sor new/libnumbertext-1.0.7/data/th.sor --- old/libnumbertext-1.0.6/data/th.sor 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/data/th.sor 2021-01-31 22:33:45.000000000 +0100 @@ -17,25 +17,10 @@ (\d)(\d{3}) $1?????????$2 (\d)(\d{4}) $1???????????????$2 (\d)(\d{5}) $1?????????$2 -(\d)(\d{6}) $1????????????$2 -(\d\d)(\d{6}) $1????????????$2 -(\d)(\d{8}) $1????????????????????????$2 -(\d)(\d{9}) $1?????????????????????$2 -(\d)(\d{10}) $1???????????????????????????$2 -(\d)(\d{11}) $1?????????????????????$2 -(\d)(\d{12}) $1????????????????????????$2 -(\d\d)(\d{12}) $1????????????????????????$2 -(\d)(\d{14}) $1????????????????????????????????????$2 -(\d)(\d{15}) $1?????????????????????????????????$2 -(\d)(\d{16}) $1???????????????????????????????????????$2 -(\d)(\d{17}) $1?????????????????????????????????$2 -(\d)(\d{18}) $1????????????????????????????????????$2 -(\d\d)(\d{18}) $1????????????????????????????????????$2 -(\d)(\d{20}) $1????????????????????????????????????????????????$2 -(\d)(\d{21}) $1?????????????????????????????????????????????$2 -(\d)(\d{22}) $1???????????????????????????????????????????????????$2 -(\d)(\d{23}) $1?????????????????????????????????????????????$2 -(\d)(\d{24}) $1????????????????????????????????????????????????$2 +(\d{1,6})(\d{6}) $1|????????????$2 +(\d{1,6})(\d{12}) $1|????????????????????????$2 +(\d{1,6})(\d{18}) $1|????????????????????????????????????$2 +(\d)(\d{24}) $1|????????????????????????????????????????????????$2 # negative numbers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/data/uk.sor new/libnumbertext-1.0.7/data/uk.sor --- old/libnumbertext-1.0.6/data/uk.sor 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/data/uk.sor 2021-01-31 22:33:45.000000000 +0100 @@ -107,7 +107,7 @@ sp:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \5 sg:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \6 -EUR:(\D+) $(\1: ????????, ????????, ????????, ????????, ??????????, ????????????) +EUR:(\D+) $(\1: ????????, ????????, ????????, ????????, ??????????, ????????????) GBP:(\D+) $(\1: ???????? ????????????????????, ?????????? ????????????????????, ???????????? ????????????????????, ??????????, ??????????, ????????????) RUB:(\D+) $(\1: ??????????, ??????????, ????????????, ??????????????, ??????????????, ??????????????) UAH:(\D+) $(\1: ????????????, ????????????, ??????????????, ??????????????, ??????????????, ??????????????) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/doc/addnewlocale.txt new/libnumbertext-1.0.7/doc/addnewlocale.txt --- old/libnumbertext-1.0.6/doc/addnewlocale.txt 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/doc/addnewlocale.txt 2021-01-31 22:33:45.000000000 +0100 @@ -1,21 +1,13 @@ -Adding a new locale to the Numbertext distribution +Add/test a new language module -1. Make a new Soros program in the data/ subdirectory under the -name of your locale (the format and the numbertext algorithm -are described in format.txt). +1. Create a new module using Soros tutorial and IDE in https://numbertext.github.io/Soros.html. -2. Translate the function description for your localized LibreOffice -in the data/titles.txt +2. Put it in the data/ subdirectory under the name of your locale to test it + in command line tool src/spellout, see section "Build C++11" in README.md or + test as a LibreOffice extension, see Section "Build and using LibreOffice Extension" + in README.md. -3. Type make in the root directory or without a Unix or Cygwin -environment, you can manually extend the -pythonpath/numbertext_locales.py and compile your Soros program with the -following command in the pythonpath subfolder: + OR test it in LibreOffice by putting the module in the share/numbertext/ subdirectory + of an installation of a recent LibreOffice distribution, see http://www.libreoffice.org. -python Compile.py data/your_locale.sor >numbertext_your_locale.py -python CompileTitles.py data/titles.txt >numbertext_titles.py - -4. Type make dist to zip the distribution or use your zip compresser -in the root directory, eg. - -zip -r numbertext.oxt . +3. Create an issue or pull request in https://github.com/Numbertext/libnumbertext diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/doc/format.txt new/libnumbertext-1.0.7/doc/format.txt --- old/libnumbertext-1.0.6/doc/format.txt 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/doc/format.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +0,0 @@ -Soros language is the key of the easy implementation of -the platform-independent number to number name conversion. - -Soros language specification: see sorosspec.odt. - -See also regex tutorial/Wikipedia article about regular expressions -and use Soros development environment (Soros.html). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/java/Manifest.txt new/libnumbertext-1.0.7/java/Manifest.txt --- old/libnumbertext-1.0.6/java/Manifest.txt 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/java/Manifest.txt 2021-01-31 22:33:45.000000000 +0100 @@ -1,3 +1,3 @@ Main-Class: org.numbertext.Numbertext -Implementation-Version: 1.0.6 -Implementation-Date: 2020-06-01 +Implementation-Version: 1.0.7 +Implementation-Date: 2021-01-31 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/java/pom.xml new/libnumbertext-1.0.7/java/pom.xml --- old/libnumbertext-1.0.6/java/pom.xml 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/java/pom.xml 2021-01-31 22:33:45.000000000 +0100 @@ -7,7 +7,7 @@ <artifactId>numbertext</artifactId> <packaging>jar</packaging> - <version>1.0.6</version> + <version>1.0.7</version> <name>numbertext</name> <url>http://numbertext.org</url> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/test/test new/libnumbertext-1.0.7/test/test --- old/libnumbertext-1.0.6/test/test 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/test/test 2021-01-31 22:33:45.000000000 +0100 @@ -8,5 +8,5 @@ mkdir $TEMPDIR fi -PYTHONPATH=../src/ python test.py $TESTDIR/$1 $TESTDIR/$2 $TEMPDIR/test.out$$ +PYTHONPATH=../src/ python3 test.py $TESTDIR/$1 $TESTDIR/$2 $TEMPDIR/test.out$$ diff $TEMPDIR/test.out$$ $TESTDIR/$3 || exit 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnumbertext-1.0.6/web/index.html.in new/libnumbertext-1.0.7/web/index.html.in --- old/libnumbertext-1.0.6/web/index.html.in 2020-06-01 17:42:26.000000000 +0200 +++ new/libnumbertext-1.0.7/web/index.html.in 2021-01-31 22:33:45.000000000 +0100 @@ -72,7 +72,7 @@ <div id="about"> <div class="container"> <div class="section-title text-center center"> - <h2>About Us</h2> + <h2>1, 2, 3 ??? One, Two, Three</h2> <hr> </div> <div class="row"> @@ -86,19 +86,19 @@ <div class="col-md-4"> <div class="about-text"> - <h4>From Numbers to Number Names</h4> + <h4>Write Out Numbers Using Words</h4> <p>We provide easy to configure, lightweight open source C++, Java, JavaScript, Python libraries - and a LibreOffice Spreadsheet extension for number to number name conversion, including cardinal and - ordinal numbers, ordinal indicators and money amounts with currencies in more than 40 languages + and a LibreOffice Spreadsheet extension for writing out numbers (including cardinal and + ordinal numbers, ordinal indicators and money amounts with currencies) in words in more than 50 languages and numeral systems.</p> - <p>Join the Numbertext/LibreOffice development: please, check the Soros language tutorial in the integrated language module development environment, fix bugs or missing parts of the language modules, or create new modules based on the existing ones!</p> + <p>Join the Numbertext/LibreOffice development: check the Soros language tutorial in the integrated language module development environment, fix bugs or missing parts of the language modules, or create new modules based on the existing ones.</p> </div> </div> <div class="col-md-4"> <div class="about-text"> <h4>Background</h4> - <p>Origin of the ???spell out??? component of LibreOffice 6.1, NUMBERTEXT/MONEYTEXT functions and Soros programming language was developed in 2009 for generalization of BAHTTEXT spreadsheet function, a function of Microsoft Excel for number to Thai number name and currency conversion, standardized by ECMA???376 and ISO/IEC 29 500:2008 Office Open XML format.</p> + <p>Origin of the ???spell out??? component of LibreOffice 6.1, NUMBERTEXT/MONEYTEXT functions and Soros programming language was developed in 2009 for generalization of BAHTTEXT spreadsheet function, a function of Microsoft Excel to write out numbers and Thai money amounts using Thai words, standardized by ECMA???376 and ISO/IEC 29 500:2008 Office Open XML format.</p> <p>Soros programming language is based on regular expressions, just like its small interpreters (in Python: less, than 120 lines). Despite its simplicity, it can handle language variants, complex spelling functions and rules in a concise manner.</p> </div> </div> @@ -117,27 +117,27 @@ <div class="col-md-3 col-sm-6"> <div class="service"> <i class="fa fa-table"></i> <h3>LibreOffice</h3> - <p>Extension with NUMBERTEXT and MONEYTEXT spreadsheet functions: <a href="https://extensions.libreoffice.org/extensions/numbertext-1/1-0.6/@@download/file/numbertext-1.0.6.oxt">numbertext-1.0.6.oxt</a> - (<a href="https://extensions.libreoffice.org/extensions/numbertext-1/1-0.6">description</a>)</p> + <p>Extension with NUMBERTEXT and MONEYTEXT spreadsheet functions: <a href="https://extensions.libreoffice.org/extensions/numbertext-1/1-0.7/@@download/file/numbertext-1.0.7.oxt">numbertext-1.0.7.oxt</a> + (<a href="https://extensions.libreoffice.org/extensions/numbertext-1/1-0.7">description</a>)</p> </div> </div> <div class="col-md-3 col-sm-6"> <div class="service"> <i class="fa fa-cogs"></i> <h3>C++</h3> - <p>Source distribution (1.0.6): <a href="https://github.com/Numbertext/libnumbertext/releases/download/1.0.6/libnumbertext-1.0.6.tar.xz">libnumbertext-1.0.6.tar.xz</a> (<a href="https://github.com/Numbertext/libnumbertext/releases/tag/1.0.6">installation</a>)</p> + <p>Source distribution (1.0.7): <a href="https://github.com/Numbertext/libnumbertext/releases/download/1.0.7/libnumbertext-1.0.7.tar.xz">libnumbertext-1.0.7.tar.xz</a> (<a href="https://github.com/Numbertext/libnumbertext/releases/tag/1.0.7">installation</a>)</p> </div> </div> <div class="col-md-3 col-sm-6"> <div class="service"> <i class="fa fa-coffee"></i> <h3>Java</h3> - <p>JAR package: <a href="https://github.com/Numbertext/libnumbertext/releases/download/1.0.6/numbertext.jar">numbertext.jar</a> (1.0.6). + <p>JAR package: <a href="https://github.com/Numbertext/libnumbertext/releases/download/1.0.7/numbertext.jar">numbertext.jar</a> (1.0.7). Usage: java -jar numbertext.jar</p> </div> </div> <div class="col-md-3 col-sm-6"> <div class="service"><i class="fa fa-pencil"></i> <h3>Python & JavaScript</h3> - <p>Interpreters: <a href="https://github.com/Numbertext/libnumbertext/blob/master/src/Soros.py">Soros.py</a> and <a href="https://github.com/Numbertext/libnumbertext/blob/master/src/Soros.js">Soros.js</a>. For usage, see source distribution (<a href="https://github.com/Numbertext/libnumbertext/archive/1.0.6.zip">zip</a> or <a href="https://github.com/Numbertext/libnumbertext/archive/1.0.6.tar.gz">tar.gz</a>).</p> + <p>Interpreters: <a href="https://github.com/Numbertext/libnumbertext/blob/master/src/Soros.py">Soros.py</a> and <a href="https://github.com/Numbertext/libnumbertext/blob/master/src/Soros.js">Soros.js</a>. For usage, see source distribution (<a href="https://github.com/Numbertext/libnumbertext/archive/1.0.7.zip">zip</a> or <a href="https://github.com/Numbertext/libnumbertext/archive/1.0.7.tar.gz">tar.gz</a>).</p> </div> </div> </div> @@ -342,6 +342,7 @@ "fr": "Fran??ais", "fr-BE": "Fran??ais (BE)", "fr-CH": "Fran??ais (CH)", +"ga": "Gaeilge", "gl": "Galego", "he": "??????????", "hr": "Hrvatski", @@ -354,9 +355,12 @@ "ko": "????????? (KR)", "ko-KP": "????????? (KP)", "lb": "Luxembourgish", +"lg": "Luganda", "lt": "Lietuvi??", "lv": "Latvie??u", +"mr": "???????????????", "ms": "Bahasa Melayu", +"mt": "Malti", "nl": "Nederlands", "no": "Bokm??l", "nn": "Nynorsk", @@ -377,7 +381,7 @@ "vi": "Ti???ng Vi???t", "zh": "??????", "zh": "??????", -"hu-Hung": "????????????????????????????????????*", +"hu_Hung": "???????????????????? ????????????????*", "Roman-large": "Roman*", "Suzhou": "??????*" } @@ -400,6 +404,7 @@ "fr": "EUR", "fr-BE": "EUR", "fr-CH": "CHF", +"ga": "EUR", "gl": "EUR", "id": "IDR", "is": "ISK", @@ -408,9 +413,12 @@ "ko-KP": "KPW", "ko": "KRW", "lb": "EUR", +"lg": "UGX", "lt": "EUR", "lv": "EUR", +"mr": "INR", "ms": "MYR", +"mt": "EUR", "he": "ILS", "hu": "HUF", "hr": "HRK", @@ -484,13 +492,13 @@ var header = "" if (window.header == "") { window.num = (window.currency == "help") ? "help" : Math.round(b.getTime()/1000) + ""; - header = "Unix time in sec (" + num + ")" + header = "Number: " + num + " (Unix time in sec)" window.time = setTimeout("tim()", 1000); - } else header = "Number (" + window.num + ")" + } else header = "Number: " + window.num target = document.getElementById('result') if (document.body.scrollTop < target.offsetTop + target.offsetHeight) target.innerHTML = "<table id='conv' width='100%'><tbody><tr id='header' style='text-align:left;background-color:rgba(100%, 100%, 100%, 0)'><td width='150px'>Language<td>" + header + "</td></tr>" + <!-- **************************************************************************************************** --> -<!--!cd ../data; n=3; for i in `ls *.sor | awk '{print}/de/{print"de-CH.sor"}/en/{print"en-GB.sor\nen-IN.sor"}/pt/{print"pt-BR.sor"}/ko/{print"ko-KP.sor"}/fr/{print"fr-BE.sor\nfr-CH.sor"}/no/{print"nn.sor"}' | grep -v ^[A-Z]` hu_Hung.sor Roman-large.sor Suzhou.sor; do name=`basename $i .sor`; name2=`echo $name | tr _ -`; head=""; rtl=""; rovas=""; case $name in hu_Hung) rovas="rovas"; rtl="align='right'";; he) rtl="align='right'";; esac; echo "\"$head<tr class='$rovas \"+ ($n%2?\"second\":\"\")+\"' style='text-align:left;' title='$name2'><td valign='top'>\" + language[\"$name\"] + \"</td><td $rtl>\" + numlang['$name'].run((window.currency == \"-\" || window.currency == \"help\" ? \"\" : (window.currency == \"def\" ? default_currency[\"$name\"] : window.currency) + \" \") + window.num).replace(/\\\n/g,\"<br>\") + '</td></tr>' +";n=`echo $n+1 | bc`; done--> +<!--!cd ../data; n=3; for i in `ls *.sor | awk '{print}/de/{print"de-CH.sor"}/en/{print"en-GB.sor\nen-IN.sor"}/pt/{print"pt-BR.sor"}/ko/{print"ko-KP.sor"}/fr/{print"fr-BE.sor\nfr-CH.sor"}/no/{print"nn.sor"}' | grep -v ^[A-Z] | grep -v Hung` hu_Hung.sor Roman-large.sor Suzhou.sor; do name=`basename $i .sor`; name2=`echo $name | tr _ -`; head=""; rtl=""; rovas=""; case $name in hu_Hung) rovas="rovas"; rtl="align='right'";; he) rtl="align='right'";; esac; echo "\"$head<tr class='$rovas \"+ ($n%2?\"second\":\"\")+\"' style='text-align:left;' title='$name2'><td valign='top'>\" + language[\"$name\"] + \"</td><td $rtl>\" + numlang['$name'].run((window.currency == \"-\" || window.currency == \"help\" ? \"\" : (window.currency == \"def\" ? default_currency[\"$name\"] : window.currency) + \" \") + window.num).replace(/\\\n/g,\"<br>\") + '</td></tr>' +";n=`echo $n+1 | bc`; done--> <!-- **************************************************************************************************** --> "<tr><td colspan=2>*Old numeral systems (extended for large numbers) – Old Hungarian, Roman and Suzhou numerals</td></tr></tbody></table>"; }
