Russian: improve numbers and add wordsmaster
| @@ -40,15 +40,17 @@ _6C S,E#s;t;s'ot | |||
| _7C s;,Ims'ot | |||
| _8C vOs;Ims'ot | |||
| _9C dev;Vts'ot | |||
| _1MA1 t'ys;ItS;V // no '1' before thousand | |||
| _0MB1 t'ys;ItS;V // keep '1' before thousand | |||
| _0MA1 t'ys;ItS;i | |||
| _0M1 t'ys;VtS; | |||
| _1M2 ojd;'in_m;,Il;I;'on | |||
| _0MB2 m;,Il;I;'on | |||
| _0MA2 m;,IlI;'ona | |||
| _0M2 m;,IlI;'onof | |||
| _1M3 ojd;'in_m;,IlI;'art | |||
| _0MB3 m;,IlI;'art | |||
| _0MA3 m;,IlI;'arda | |||
| _0M3 m;,IlI;'ardof | |||
| _1M3 ojd;'in||m;,IlI;'art | |||
| _0MA3 m;,IlI;'arda | |||
| _dpt _:'i_: // start of decimal fraction | |||
| _dpt2 _d;Is;'atYx // end of decimal fraction | |||
| @@ -90,8 +92,8 @@ _» z'akr uglof | |||
| _, zVpit'aja | |||
| // particle | |||
| б by $u // shortened form of 'бы' | |||
| ж ZE $u // same as the particle form | |||
| // б by $u // shortened form of 'бы' | |||
| ж S $u // same as the particle form | |||
| // prepositions | |||
| в v $u // to,in,at -- TODO: 'f' before voiceless consonants. | |||
| @@ -217,4 +219,5 @@ _с Es | |||
| на na $atend | |||
| радио r'ad;Io | |||
| сельского $1 // for the unit test pangram | |||
| (косая черта) kas'Aja||tS;ert'A | |||
| (из города) iz||g'orVda | |||
| @@ -81,6 +81,8 @@ | |||
| в (ч f | |||
| в (щ f | |||
| в (ь_ f; | |||
| здра) в (ств // silent v(не произносимая в) | |||
| чу) в (ств // silent v(не произносимая в) | |||
| .group г | |||
| г g | |||
| @@ -101,6 +103,8 @@ | |||
| _доро) г (о g | |||
| _е) г (о_ v | |||
| е) г (ося_ v | |||
| _ле) г (о_ g // лего, конструктор lego, до исправления читал как лево | |||
| _ло) г (о_ g // сокращенное от логотип, до исправления читал как лово. | |||
| _мно) г (о_ g | |||
| _мое) г (о_ v | |||
| _намно) г (о_ g | |||
| @@ -129,6 +133,12 @@ | |||
| д (хY t | |||
| д (хкY t | |||
| д (ь_ t; | |||
| з) д (н // silent d(Непроизносимая д) | |||
| р) д (ц // Silent D(не произносимая д) | |||
| мо) де (м dE#% | |||
| ре) д (ко t // редко, редкость, редкого... До исправления читал с буквой д | |||
| се) д (к t // беседка, наседка, соседка... | |||
| .group е | |||
| е e | |||
| @@ -137,6 +147,7 @@ | |||
| A) е (_ jI3 //second position | |||
| _) е jI3 //second position | |||
| т) е (ст E% | |||
| про) е (кт E | |||
| ъ) е je | |||
| ъ) е (_ jI3 //second position | |||
| ь) е je | |||
| @@ -214,7 +225,7 @@ | |||
| .group л | |||
| л l | |||
| ?2 л (Y l^ | |||
| ?2 л (Y l; | |||
| л (Y l; | |||
| .group м | |||
| @@ -230,8 +241,9 @@ | |||
| .group н | |||
| н n | |||
| ?2 н (Y n^ | |||
| н (Y n; | |||
| н (Y n; | |||
| биз) не (с nE | |||
| интер) не (т nE // интернет, интернетный, интернета... ?????????? | |||
| н (_ n_ | |||
| .group о | |||
| @@ -303,11 +315,19 @@ | |||
| т (нY t; | |||
| т (сY t; | |||
| т (тY t; | |||
| с) т (н // Silent t(Непроизносимая т) | |||
| бак) те (р tE% // бактериальный, антибактериальный, ... | |||
| бар) те (р tE% | |||
| ин) те (рн tE% // интернет, интернационал, ... ?????????? | |||
| аль) те (рнатив tE // альтернатива, альтернативный, альтернатив... | |||
| _ан) те (нн tE // антенна, антенны, антенн... | |||
| _кон) те (н tE // контент, контента, контенту... | |||
| прин) те (р tV // принтер, принтера, принтеров... | |||
| роу) те (р tV# // роутер, роутэр, router... | |||
| ин) те (рактив tE // интерактив, интерактивный... | |||
| ин) те (рC tE% // интернет, интернационал, ... ?????????? | |||
| ин) те (рпункт tE# // интерпункт, интерпункта... | |||
| ин) терфе (йс tE#rf'E2 // интерфейс, интерфейса, ... ?????????? | |||
| компью) те (р tE% | |||
| компью) те (р tV# | |||
| .group у | |||
| у u | |||
| @@ -381,7 +401,7 @@ | |||
| ч (з dZ; | |||
| ч (зY dZ; | |||
| деви) ч (н S | |||
| коне) ч (но_ S | |||
| _коне) ч (но_ S | |||
| пустя) ч (н S | |||
| скворе)ч (н S | |||
| ску) ч (н S | |||
| @@ -406,7 +426,6 @@ | |||
| ш (зY Z | |||
| ш (з Z | |||
| .group щ | |||
| щ S; | |||
| ?2 щ SS | |||
| @@ -880,9 +880,13 @@ static const char *M_Variant(int value) | |||
| switch (translator->langopts.numbers2 & NUM2_THOUSANDS_VAR_BITS) | |||
| { | |||
| case NUM2_THOUSANDS_VAR1: // lang=ru use singular for xx1 except for x11 | |||
| if ((teens == false) && ((value % 10) == 1)) | |||
| return "1M"; | |||
| case NUM2_THOUSANDS_VAR1: // lang=ru | |||
| if (teens == false) { | |||
| if ((value % 10) == 1) | |||
| return "0MB"; | |||
| if (((value % 10) >= 2) && ((value % 10) <= 4)) | |||
| return "0MA"; | |||
| } | |||
| break; | |||
| case NUM2_THOUSANDS_VAR2: // lang=cs,sk | |||
| if ((value >= 2) && (value <= 4)) | |||
| @@ -37,8 +37,8 @@ test_phon hi "ka:n'u:n" "कानून" | |||
| test_phon en "k'apIt@Lz" "capitals" | |||
| # bug: https://github.com/espeak-ng/espeak-ng/issues/824 | |||
| test_phon ru "(en)s'i:(ru) n'ojl t'otS;ka# v'os;E2md;E2s;ats;'ejm m;,IlI;'onof_! p;,It;s'ot SE2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! dv;'es;t;I p;Vd;d;Is;'jattR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka# t@-r;'ittsat;S'Es;t; t'ys;VtS;_! vOs;Ims'ot s;Imn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# dv;'e t'ys;VdZ; d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka# n'ojl tR;'iv'os;Im_!s;'ejm d;'evI3t;S'Es;t;_!tR;'i p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka# n'ojl tR;'iv'os;Im_!s;'ejm d;'evI3t;S'Es;t;_!tR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka# tS;It'yr;E2sta# d;E2v;Itn'AttsVt; t'ys;VtS;_! S,E#s;t;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# n'ojldv'A_! tR;'is;'ejm_!p;'jat; p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I t'otS;ka# t@-r;'ittsVt; t'ys;VtS;_! v'os;E2md;E2s;ats;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# n'ojltS;It'yR;I_! p;'jat;Vjd;'in_!tS;It'yR;I p@-rats'Ent dv;'es;t;I t'otS;ka# p;,It;s'ot v'os;E2md;E2s;atdv;'e t'ys;VtS;_! s;,Ims'ot t@-r;'ittsat;d;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# dv;'es;t;I SE#stn'AttsVt; t'ys;VtS;_! dev;ats'ot s'o@-*Okdv'A p@-rats'Ent dv;'es;t;I t'otS;ka# s;,Ims'ot p;Vd;d;Is;'jat t'ys;VtS;_! p;,It;s'ot d;E2v;In'ostOtR;'i p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# tS;It'yr;E2sta# s;'emd;E2s;Vt t'ys;VtS;_! t@-r;'ista# v'os;Im p@-rats'Ent dv;'es;t;I t'otS;ka# n'ojld;'evI3t;_! p;'jat;n'ojl_!dv'A p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# st'o s'o@-*Okdv;'e t'ys;VtS;_! p;,It;s'ot s;Imn'AttsVt; p@-rats'Ent | |||
| dv'A (en)s'i:(ru) v'os;Im t'otS;ka# vOs;Ims'ot dv'Attsat;d;'evI3t; t'ys;VtS;_! s;,Ims'ot SE2z;d;d;Is;'jatv'os;Im p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I p@-rats'Ent dv'A (en)s'i:(ru) p;'jat; t'otS;ka# S,E#s;t;s'ot SE2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! s'o@-*Okojd;'in p@-rats'Ent dv'AttsVt; tS;It'yR;I t'otS;ka# p;Vd;d;Is;'jatd;'evI3t; t'ys;VtS;_! S,E#s;t;s'ot d;E2v;In'ostOd;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka# dv'A m;,IlI;'onof_! S,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;VtS;_! t@-r;'ista# d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; d;'es;It; t'otS;ka# dv;'es;t;I SE2z;d;d;Is;'jatp;'jat; t'ys;VtS;_! dv;'es;t;I t@-r;'ittsat;v'os;Im p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka# dv'A m;,IlI;'onof_! S,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;VtS;_! t@-r;'ista# d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; (en)z'Ed(ru) p@-rats'Ent dv'AttsVt; (en)'Em(ru) p@-rats'Ent dv;'e t'ys;VdZ; d;'es;It; t'otS;ka# n'ojltR;'i_!s;'ejm v'os;ImS'Es;t;_!p;'jat; p@-rats'Ent dv'A (en)s'i:(ru) d;E2v;Itn'AttsVt; t'otS;ka# s;,Ims'ot d;E2v;In'ostOv'os;Im t'ys;VtS;_! p;,It;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'AttsVt; (en)v'i:(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka# st'o s;'emd;E2s;VttS;It'yR;I t'ys;VtS;_! st'o v'os;E2md;E2s;atv'os;Im p@-rats'Ent dv'AttsVt; (en)'eI(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka# tS;It'yr;E2sta# v'os;E2md;E2s;atv'os;Im t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka# tS;It'yr;E2sta# v'os;E2md;E2s;atv'os;Im t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka# vOs;Ims'ot p;Vd;d;Is;'jats;'ejm t'ys;VtS;" "C0.87569253%200%200%201%200.36817%2C-0.2019%201.0387963%2C1.0387963%200%200%201%200.419637%2C-0.02375%20c%200.30087%2C0.04514%200.582739%2C0.216942%200.750593%2C0.470308%200.09502%2C0.142517%200.153603%2C0.308788%200.18844%2C0.478226%200.03484%2C0.168646%200.0475%2C0.340459%200.05701%2C0.513064%200.03167%2C0.601741%200.03167%2C1.205067%200.01426%2C1.808392%20-0.01426%2C0.526524%20-0.04355%2C1.0673%20-0.253366%2C1.549486%20-0.271575%2C0.619159%20-0.817101%2C1.08155%20-1.405383%2C1.414092%20a%205.5835296%2C5.5835296%200%200%201%20-1.257323%2C0.512272%20c%200.38163%2C1.219319%200.580363%2C2.56532%200.580363%2C3.93349%20a%2013.935071%2C13.935071%200%200%201%20-0.106901%2C1.682498%2010.264446%2C10.264446%200%200%200%205.054631%2C-8.829768%20c%200%2C-5.669041%20-4.59699%2C-10.2652391%20-10.265238%2C-10.2652391%20z%20M%2010.037865%2C19.798537%20v%201.174188%20a%201.488519%2C1.488519%200%200%201%200.857482%2C0.286619%201.3760882%2C1.3760882%200%200%201%200.440222%2C0.538402%20c%200.0966%2C0.213775%200.131432%2C0.456056%200.09184%2C0.687252%20a%201.1821057%2C1.1821057%200%200%201%20-0.262867%2C0.560568%201.3040376%2C1.3040376%200%200%201%20-0.502772%2C0.36263%201.3760882%2C1.3760882%200%200%201%20-0.623119%2C0.0966%20v%202.953287%20l%206.145683%2C-3.33175%20-6.145683%2C-3," "ru sum strings" | |||
| test_phon ru "(en)s'i:(ru) n'ojl t'otS;ka# v'os;E2md;E2s;ats;'ejm m;,IlI;'onof_! p;,It;s'ot SE2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! dv;'es;t;I p;Vd;d;Is;'jattR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka# t@-r;'ittsat;S'Es;t; t'ys;VtS;_! vOs;Ims'ot s;Imn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# dv;'e t'ys;ItS;i d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka# n'ojl tR;'iv'os;Im_!s;'ejm d;'evI3t;S'Es;t;_!tR;'i p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka# n'ojl tR;'iv'os;Im_!s;'ejm d;'evI3t;S'Es;t;_!tR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka# tS;It'yr;E2sta# d;E2v;Itn'AttsVt; t'ys;VtS;_! S,E#s;t;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# n'ojldv'A_! tR;'is;'ejm_!p;'jat; p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I t'otS;ka# t@-r;'ittsVt; t'ys;VtS;_! v'os;E2md;E2s;ats;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# n'ojltS;It'yR;I_! p;'jat;Vjd;'in_!tS;It'yR;I p@-rats'Ent dv;'es;t;I t'otS;ka# p;,It;s'ot v'os;E2md;E2s;atdv;'e t'ys;ItS;i_! s;,Ims'ot t@-r;'ittsat;d;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# dv;'es;t;I SE#stn'AttsVt; t'ys;VtS;_! dev;ats'ot s'o@-*Okdv'A p@-rats'Ent dv;'es;t;I t'otS;ka# s;,Ims'ot p;Vd;d;Is;'jat t'ys;VtS;_! p;,It;s'ot d;E2v;In'ostOtR;'i p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# tS;It'yr;E2sta# s;'emd;E2s;Vt t'ys;VtS;_! t@-r;'ista# v'os;Im p@-rats'Ent dv;'es;t;I t'otS;ka# n'ojld;'evI3t;_! p;'jat;n'ojl_!dv'A p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka# st'o s'o@-*Okdv;'e t'ys;ItS;i_! p;,It;s'ot s;Imn'AttsVt; p@-rats | |||
| dv'A (en)s'i:(ru) v'os;Im t'otS;ka# vOs;Ims'ot dv'Attsat;d;'evI3t; t'ys;VtS;_! s;,Ims'ot SE2z;d;d;Is;'jatv'os;Im p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I p@-rats'Ent dv'A (en)s'i:(ru) p;'jat; t'otS;ka# S,E#s;t;s'ot SE2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! s'o@-*Okojd;'in p@-rats'Ent dv'AttsVt; tS;It'yR;I t'otS;ka# p;Vd;d;Is;'jatd;'evI3t; t'ys;VtS;_! S,E#s;t;s'ot d;E2v;In'ostOd;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka# dv'A m;,IlI;'ona#_! S,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;ItS;i_! t@-r;'ista# d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; d;'es;It; t'otS;ka# dv;'es;t;I SE2z;d;d;Is;'jatp;'jat; t'ys;VtS;_! dv;'es;t;I t@-r;'ittsat;v'os;Im p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka# dv'A m;,IlI;'ona#_! S,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;ItS;i_! t@-r;'ista# d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; (en)z'Ed(ru) p@-rats'Ent dv'AttsVt; (en)'Em(ru) p@-rats'Ent dv;'e t'ys;ItS;i d;'es;It; t'otS;ka# n'ojltR;'i_!s;'ejm v'os;ImS'Es;t;_!p;'jat; p@-rats'Ent dv'A (en)s'i:(ru) d;E2v;Itn'AttsVt; t'otS;ka# s;,Ims'ot d;E2v;In'ostOv'os;Im t'ys;VtS;_! p;,It;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'AttsVt; (en)v'i:(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka# st'o s;'emd;E2s;VttS;It'yR;I t'ys;ItS;i_! st'o v'os;E2md;E2s;atv'os;Im p@-rats'Ent dv'AttsVt; (en)'eI(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka# tS;It'yr;E2sta# v'os;E2md;E2s;atv'os;Im t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka# tS;It'yr;E2sta# v'os;E2md;E2s;atv'os;Im t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka# vOs;Ims'ot p;Vd;d;Is;'jats;'ejm t'ys;" "C0.87569253%200%200%201%200.36817%2C-0.2019%201.0387963%2C1.0387963%200%200%201%200.419637%2C-0.02375%20c%200.30087%2C0.04514%200.582739%2C0.216942%200.750593%2C0.470308%200.09502%2C0.142517%200.153603%2C0.308788%200.18844%2C0.478226%200.03484%2C0.168646%200.0475%2C0.340459%200.05701%2C0.513064%200.03167%2C0.601741%200.03167%2C1.205067%200.01426%2C1.808392%20-0.01426%2C0.526524%20-0.04355%2C1.0673%20-0.253366%2C1.549486%20-0.271575%2C0.619159%20-0.817101%2C1.08155%20-1.405383%2C1.414092%20a%205.5835296%2C5.5835296%200%200%201%20-1.257323%2C0.512272%20c%200.38163%2C1.219319%200.580363%2C2.56532%200.580363%2C3.93349%20a%2013.935071%2C13.935071%200%200%201%20-0.106901%2C1.682498%2010.264446%2C10.264446%200%200%200%205.054631%2C-8.829768%20c%200%2C-5.669041%20-4.59699%2C-10.2652391%20-10.265238%2C-10.2652391%20z%20M%2010.037865%2C19.798537%20v%201.174188%20a%201.488519%2C1.488519%200%200%201%200.857482%2C0.286619%201.3760882%2C1.3760882%200%200%201%200.440222%2C0.538402%20c%200.0966%2C0.213775%200.131432%2C0.456056%200.09184%2C0.687252%20a%201.1821057%2C1.1821057%200%200%201%20-0.262867%2C0.560568%201.3040376%2C1.3040376%200%200%201%20-0.502772%2C0.36263%201.3760882%2C1.3760882%200%200%201%20-0.623119%2C0.0966%20v%202.953287%20l%206.145683%2C-3.33175%20-6.145683%2C-3," "ru sum strings" | |||
| # A deleted phoneme at the start of a word should preserve the sourceix property. | |||
| test_phon en-GB-x-gbcwmd "aI 'av" "I have" | |||