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" |