From a35c29f76d117b871a050f275179cc9da7ae6da1 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Sun, 17 May 2020 21:47:01 +0300 Subject: [PATCH] Latvian language improvements --- dictsource/lv_list | 6 +++ dictsource/lv_rules | 76 ++++++++++++++++++++++-------- phsource/h/h-lv.wav | Bin 3582 -> 4894 bytes phsource/ph_latvian | 43 +++++++++-------- phsource/vwl_lv/ui | Bin 0 -> 6754 bytes tests/language-phonemes.test | 2 +- tests/language-pronunciation.test | 2 +- tests/translate.test | 2 +- 8 files changed, 89 insertions(+), 42 deletions(-) create mode 100644 phsource/vwl_lv/ui diff --git a/dictsource/lv_list b/dictsource/lv_list index 8c872513..1db2bc96 100644 --- a/dictsource/lv_list +++ b/dictsource/lv_list @@ -505,6 +505,7 @@ lvu $abbrev na $abbrev nra $abbrev nr $abbrev +oecd $abbrev $allcaps pctvl $abbrev $pause prks $abbrev psrs $abbrev @@ -549,6 +550,7 @@ bruno $alt bruto $alt bufalo $alt burkinafaso $alt $4 +covid $alt čello $alt dekoltē $alt $3 depo $alt @@ -581,6 +583,7 @@ info $alt inkognito $alt $3 intermeco $alt $3 ivo $alt +(joko ono) j'oko:||'ono: kakao $alt $2 kanapē $3 kastro $alt @@ -598,6 +601,7 @@ lego $alt leo $alt leporello $alt lesoto $alt +limbo $alt logo $alt loto $alt lumbago $alt @@ -613,6 +617,7 @@ mono $alt montekarlo $alt $3 montevideo $alt $3 moto $alt +mož $alt nato $alt odo $alt odoo $alt @@ -675,6 +680,7 @@ uno $alt ūdenspolo $alt veto $alt video $alt +vienmēr v'ienme::R vivo $alt volvo $alt žabo $alt diff --git a/dictsource/lv_rules b/dictsource/lv_rules index 4da89eb1..d03fc592 100644 --- a/dictsource/lv_rules +++ b/dictsource/lv_rules @@ -38,8 +38,11 @@ .L17 ai ais am ā ām ās ie iem o os // suffixes of certain adjectives finishing with ..ējais .L18 am āk i u ot ēt os // suffixes of adverbs (apstākļa vārdi) -.L10 ~ at ie iz jā jā jāat jāie jāiz jāno jāsa ne no pa pār pie pie sa vis // optional verb prefixes -.L20 ~ ne // optional negation prefix +.L30 ~ at ie iz jā jā jāat jāie jāiz jāno jāsa ne no pa pār pie sa vis // optional verb prefixes +.L31 ~ ne // optional negation prefix +.L32 ~ ie ne sa vis visne // optional prefixes for adjectives +.L33 ~ ār iekš civil ie eks komerc kop liel līdz nam pār pārpa pie privāt sa uz valsts māj // optional prefixes for nouns + // +---------------------------+ // | Pronunciation of e and ē | @@ -140,6 +143,9 @@ ai ai aie a_!ie // a-ie is more frequent than ai-e au au + _L32v) aja a`ja` + _L33v) aja a`ja` + _v) aj a`j .group ā ā a: @@ -159,7 +165,9 @@ .group d d d dz Dz` + dz (L57 Dz`_| dž DZ` + dž (L57 DZ`_| dž (L61 DZ .group e @@ -220,11 +228,13 @@ // specific words ----------------------------------------------------------------- // b) e (dL82L05_ e // bedre + b) e (nzīnL01_ e // benzīns _b) e (t_ e _b) e (z_ e _b) e (z+ e _C) e (_ e // re, te, ve c) e (nL83+ e + c) e (nL88+ e c) e (tur e č) e (tr e d) ebe (L83 ebe @@ -260,11 +270,11 @@ _j) e (l_ e kur) e (n e _ķ) eme (rL01_ eme // Ķemeri - _L20) e (sam_+ _!e // esam - _L20) e (sat_+ _!e // esat - _L20) e (si_ _!e // esi - _L20) e (smu_ _!e // esmu - _L20) e (sot_ _!e // esot + _L31) e (sam_+ _!e // esam + _L31) e (sat_+ _!e // esat + _L31) e (si_ _!e // esi + _L31) e (smu_ _!e // esmu + _L31) e (sot_ _!e // esot _m) e (dūzL04_ e _m) e (kL04_ e // Meka m) e (L86+ e @@ -406,7 +416,7 @@ konstat) ē e: kr) ē (t+ e: ķ) ē (dL05_ e: // ķēde - L10) ē (du_< e: + L30) ē (du_< e: L76) ē (tu_ e: _l) ē (L83+ e: // lēst m) ē (L77L05+ e: // mēle @@ -433,7 +443,9 @@ sp) ē (kL01 E: // ..spēks sp) ē (L65 e: // spēt sp) ē (L77+ e: // ..spēl.. + sv) ē (t e: sv) ē (tk E: + sv) ē (tL01_ E: // svēts šķ) ē (L77L05_ e: // šķēle šķ) ē (L82L05_ e: // šķēre _tāp) ē (c_ e: // tāpēc @@ -470,6 +482,7 @@ _) i (kkuL82 %i // ikkurš _) i (kvien %i // ikviens iu iu + v) ientie (s ientie: .group ī ī i: @@ -483,25 +496,24 @@ k k _) kaut (_ k,aut // secondary stress as average between verb and particle _) klāt (_ kl,a:t // ... and similarly - k (ļ k} // tiny pause between k and ļ + k (ļ k_| // tiny pause between k and ļ .group ķ ķ c - ķ (L55 c} // tiny pause for sharper sound before short vowels + ķ (L55 c_| // tiny pause for sharper sound before short vowels .group l l l C) l (C l- // more voiced variant between consonants _lie) l (@ l> - l (L60@+ l: - l (L60+ l> - l (L61@+ l> + l (L60A+ l: ll (++ ll - + l (n l: + l (zC++ l .group ļ ļ l^ - ļ (ķ l^} + ļ (ķ l^_| .group m m m @@ -683,6 +695,7 @@ L46L45L45) o (<< uo kontr) o (JL56 o: konv) o o kript) o o + kr) o (L80L02_+ uo // ..kronis kr) o (L80 uo _kr) o (nL04_ o: // krona kum) o (L65 uo @@ -708,6 +721,7 @@ L46L45L45) o (<< uo mar) o o maž) o o mec) o o + merit) o o met) o (L72 o: metr) o (@ o mez) o o @@ -766,6 +780,7 @@ L46L45L45) o (<< uo ring) o o rip) o uo rmat) o o + _r) odže (r oDZ`e r) o (L90L05_ uo // roze r) o (z o rtr) o o @@ -776,6 +791,7 @@ L46L45L45) o (<< uo sink) o o: skal) o (+ uo skarb) o (_ uo + skart) o uo skler) o o: slav) o o slog) o uo @@ -885,11 +901,15 @@ L46L45L45) o (<< uo n) od (L05_ o:d // ..node n) od uod n) odz uo`dz + _) od (ai_ o:d + _) od (as_ o:d + _) od (ām_ o:d _) od (ek od od (erL51 uod _) od (esL04_ od // Odesa od (ia od _) odio odio: + _) odo (@ odo _) odo (s_ uoduo // odos par) od od p) od (e od @@ -921,6 +941,7 @@ L46L45L45) o (<< uo ogo uoguo osm) og og pr) og (L68 og + pr) ogno (L90L05_ ogno: // ..prognoze sl) og (L01_ uog // slogs sl) og (o uog // slogot _sm) og (L01_ o:g // smogs @@ -945,6 +966,7 @@ L46L45L45) o (<< uo _) oj (ārL01_ oj // Ojārs oj (is_ uoj _pr) oj (ām_ uoj + pr) oj (ek o`j pr) oj (L42 oj _tr) oj (L04_ oj // Troja z) oj (L01_+ oj // ..zojs @@ -996,7 +1018,7 @@ L46L45L45) o (<< uo r) ok (L04_ uok // ..roka r) ok (a_ uo`k // _roka_ r) ok (m ok - r) okope oko:p + r) okope oko:pe r) ok (tu uok sm) ok uok s) ok (o ok @@ -1043,6 +1065,7 @@ L46L45L45) o (<< uo k) ol (o ol k) ol (p ol k) ol (s ol + L33p) ol (it ol _l) ol (itL04_ ol // Lolita l) oloj (L13_ uoluoj l) olo (L12_ uoluo // lolot @@ -1066,6 +1089,7 @@ L46L45L45) o (<< uo _p) ol (ie uol _p) ol (ijL04_+ uol // Polija _p) ol (kL04_ ol // polka + _p) ol (L01_+ o:l // pols p) ol (L01_ o:l // ..pols p) ol (L05_ o:l // ..pole p) ol (L50 ol @@ -1124,6 +1148,8 @@ L46L45L45) o (<< uo d) om (nL04_ om // domna dr) om (L01_ o:m // ..droms gl) om om + k) om (iL67 o:m + k) om (isk o:m k) om (L04_+ o:m // koma k) om om k) omo omo @@ -1150,8 +1176,10 @@ L46L45L45) o (<< uo p) om (er om p) om (p om _pr) om (b uom // prombūtne + _pr) omejo uomejuo _pr) om (es uom // promesošs pr) om om + _pr) omo omo: _pr) om (_ uom // prom pt) om (L01_ o:m // ..ptoms pt) om o>m @@ -1183,6 +1211,7 @@ L46L45L45) o (<< uo b) on (us on br) on on cens) on uon + cēl) on (L02 uon daig) on uon dail) on uon dalt) on o:n @@ -1195,12 +1224,14 @@ L46L45L45) o (<< uo egl) on uon ek) ono ono: em) on on + f) on (dL01_ oN> // ..fonds f) on (i o:n furg) on o:n g) on on harm) on o:n hr) on o:n hr) on (o on + ik) on (L04_ o:n // ikona ikr) on (+ o:n im) on o>n ir) on (i< o:n @@ -1259,6 +1290,7 @@ L46L45L45) o (<< uo _ram) on (L04_ o:n // Ramona rez) on on rib) on (uk on + _r) on (aldL01_ on // Ronalds s) on on sp) on on t) on (edēļ uon @@ -1296,9 +1328,11 @@ L46L45L45) o (<< uo k) op (ējL04_ uop // ..kopēja _k) op (ējo_ uop // kopējo k) op (ē_ op // ..kopē + k) op (fond uop k) op (ij op // ..kopij.. k) op (j uop // ..kopj.. k) op (L04_+ uop // ..kopa + k) op (L05_ uop // ..kope k) op (L65+ uop // ..kuop.. k) opo uopuo k) op (pr uop // ..koppr.. @@ -1429,6 +1463,7 @@ L46L45L45) o (<< uo p) orno oRno p) or (o oR p) or (t oR + profes) or (L05_ o:R // profesore r) or oR s) or (L01_+ o:R // ..sors s) or oR @@ -1442,6 +1477,7 @@ L46L45L45) o (<< uo _t) or (eiz_ uoR // toreiz _t) or (e oR // toreadors _t) or (ijL01_ o:R // torijs + t) or (ikL04_ o:R // ..torika t) or (L05_+ o:R // ..tore t) or (L80+ uoR t) or (o oR @@ -1529,7 +1565,7 @@ L46L45L45) o (<< uo k) ot (L51 ot k) ot (l ot kv) ot (L04 o:t - _L10pr) ot (L13_ uot // (ne|sa..)prot(i|u) + _L30pr) ot (L13_ uot // (ne|sa..)prot(i|u) lin) ot (ip ot l) ot (er ot _l) ot (iņL04 ot // Lotiņa @@ -1584,13 +1620,14 @@ L46L45L45) o (<< uo n) ov (ad uov n) ov (at ov n) ov (āci ov + n) ov (āc uov n) ov (elL05_ ov // novele _n) ov (emb ov // novembris n) ov (ēr uov n) ov (it ov n) ov (L04_ ov // nova n) ov (o ov - _) ov (āc ov + ov (āc ov _pl) ov (L01_ ov // plovs pr) ov (an ov pr) ov (in ov @@ -1643,7 +1680,7 @@ L46L45L45) o (<< uo .group p p p - _) pie (A pie} + _) pie (A pie_| _) pie (e+ pie_! _) pus (vien p%us // pus..number stress on next syllable _) pus (div p%us @@ -1729,6 +1766,7 @@ L46L45L45) o (<< uo .group z z z + i) z (v z z (n z- z (v z- diff --git a/phsource/h/h-lv.wav b/phsource/h/h-lv.wav index 4425ec6e59867c6f9a6f9762b14408cd0f53c023..b1e5cf7495a068642c5267d422c4190bf7119245 100644 GIT binary patch literal 4894 zcmW+(2Ygf2_kYWFyPIm%ZC0ZIU)=^1nYm-_JSko_o(7=e%>?J#YBC{rag$3>#BCx@6kS zc}9R?7z@EX8pHY?!Z0=lu+op_eH0-uER$g)Vj+!mhKo2G<09f=d_-bQfJreC(w1Qa zroxn14yMN_EDvjsb-}t}1y~V6U#uTC2pf!zz(!(|5$0g?uvOSPY#Vk6JAz%sE@2O` zTi7e?KK25&o+7+NaA6)Sj-@d-sbe<4CV~yjOR?@lyasc%;GHIlyko0Y~`Hb+~v4ALN3KE=DyEe#$C_d&ppmP z#XZkG%e~A!$*o25|M+F@U)<;17+1#Y%p1)6g!dh9FYh|<0nfz?^1{3fFTvySn|UHW zkFVpmT_75x{7=Q}po63>O`N~zwYUMHIedQ~q zPZ?J#RXSA{Rf+0-)gsjz)nV0X)gzTx#Zm*cUfo&URo!1bL_J@->-qH2fjnz%k&C-3L`$o50SF3xhOX#4!hyH#2BK^<$!}|03TlzctKM_BtuSN16 z{Sp0f{T2OleOzxc3^pt=oG`pF0Ar!?edAo?YJ~O13gc(S4~_ke-Ho|MlaVrZG!`2t z8CMz47(+&@X@aTBbj1`fNz7JrPxAnCKXZZkEpvNwzFB8Bn$6}e=Dy~M=Edf1=0D6H zv%u2E($_M=G9F==WvJzCOM8pbBDSQ>P39IeW+9L~!1A$WqvfpSl_hRbQWVvd>P~f} zI#7Cwq*zpw#bs%*cr7stm&&1fP!p*ys9n@~>NyplnkbGnMWrbp<)H3Rm#M>44fP|n ziTa7!PVJ}8Q8%eqRET0(fmLnQS~XUcRc_^4(^Ng>Me}K@4z*e+k=0=BY#nGFZY{M= zw$8Lpu#UI(wsu7NNy<*$r7lpvQpXT}r~X89Vw4c+=UKa3J6Lnks!h}js+w9x4WKks z&~nvMgKVip_}Nlxd00i_en8JvMkbK{C(zMa^ znQ6GGok?c08Lt};8n+p%jFkxA8aEiXBkVEmFm5t_ZJc9#7roDB!&AdCL%Ct1q0nG3 z07F_I(FgP)eN^A9Pw6oO+mO^Z>3#Y~`b+v9`U?FA`gimuJy-A2-PWDb?bKE2mh0x| zrs~G&`sh07fG(PIH|IdkvYc@_c{yqAeeFRMw`C}Tduw}W3$)#|-4Tkk#o9jFUMRZT zX!+X4?7y>Xvn#V_W*2Acv)S2onj4xL%^J;e&8M0%ni5SrjYiXw#blk!+L|>tYiL$( zR*U+D`mB0`dX{>Wx=`Itoud{Z@LzMeTCFyz4QjJmr&g*7bzJ3CT~_T^m8(8fbyZ1K zUgZ_#4rRG=s`5Q$cV)g(r_50TC0Ch-5g3Lv{0Cl!C*fAO3eJKfVGn4ABG`z&6?e$r z$iw7LvWl!Eza;08lgW`}3Hb(@OX8%Mj1lz&Lp&w!6AutQLin3_hU6zmx=Q>?>?T$b z^N2A-0bwGzL==CH|BatVIF0{`U&PNMx`zLWa2>S{S1DnB4Pz`FpA+QH* z0V}~mFcl0$UsMX@000O;0u5*j-UNft*L4P1fab0OUxVe~Gf)b~fMU=UC;=ZN6;VY* zQLl(8cpw{e1AW1GFcXx&UVjVPb2C_r_M3}V7zu`vH?$$z zBJcMiiitv^JMjk54c!rK(0ySh42b8WvHrv;Vg|Y|wiCyRyM&!cq8md;=96!dy%37Y z0c4S9e(LY_kWFj4oC4d3J!w3U;*p|+d?bMfhsf(p&qrn!(uoAPKOn61N;SEM7WRc zr(5t6tcCmFCb$HC0w=Uo9E zQx6j`4Mj?sQjKy@kBCHh$X2G%8S2o?OYjKVcN1KL)?WhW!uiO)PZ3Q=G!@Q3n2h{0 z9@#zQwHNxo_Q6m%8jeLH|I?ZdKYH!o|AQ9Df_@&w zjwj2=1*j@mhOiX9%Q@sE)Spl0kVzs)+$OFNHN+lb1F@d?mROBYiSRA4g7}hHK$H;^ ziT@Ct2@4@3Lij8E5{kX8_$qupJ{_NczlZn1yW{O~EzZXqz%y_j<>OaiG|G@HAOvp3 zeZ^%(t>S>{pEN4XNQE*WQ_4g#OxA$<&q_B+ zKa&oWnx$+hjVijMl0%XoB|k~lOV&!hMm67mB@-k)BnC-bd`tYJxK!L(oDn?~Rg0FR zdUB|!SX6}2Q#4T2Pc&Neo@fku7K`#lgeW0=Dy$W56)qBv6ZRFh7aE1QP%IP((}EU3 z2-UCm1iuTmpqh4=AWzW9|AW7tKZE}^U&~MN9K3%}y?l*#fp?yFmUj$c7q5!9m^X>n zlV{?^xKFs%+)C~g?ojTVToaezin(b{E2n|u=e*?HHLUHd@6lhwG*%y$nbm?l!S-Vn=#Qie`g;jyo@6d& z4rMlGR%RAtre(%uiZX38icBp1D19bfm0p-0m3}*|N@MA|*1uYhw*K6@vbC&rY-{&c zLu*UQo;sb{np&6|o9dcUrJ9m-@>cRpa&K~TvMRYExi~o^IWk$2?3k1%8(MC+)U?cR z8PTF|X=%RIe5ARed3N)N=HAWinsv>xW>Ir25lB2vTuU5Ge3zJ!7?98lVW2a+>V_RY?V{>DpVui8nSh(qCQ%%$7O~abs$48Lf`4js7<}AetZLM#GWkkxP-Ik!_I;k=2pU5y~Pn zBI6<>BgK&}5p^UJc80Hn4~EOb)5CqkxnX|T*>JOAe?w(MS;L@){02pXxBhPZ?)ugB zrSE^guka>=NJ3qKBw=Q?=Rmq z-#OnA-+tc?-}k=dzS+JBzW%=UKEfCE{^LF8-Q`{CE%OfX_VVU>HD10q?FoC_o|m4- zp1(a;J->SPdA4}I_RRN8@bvYx^C&zK_Y?Pd_g42e?lSjScOQ2bx6Undx41&C7p_~b z-(34#Ke)H`n%q6nOtI5tJCd#<-F!R-@ku#M#|RIfc%M9fgi=j?RvJhs9xZs2x%V#}T$W?f2|w?A7*F_IdVk_7Zz% zd$wI_kJ`ev7q)x0Tee?qCvCfJKiO8=7TZ3xO|T8L71*pcwT)*>F#*QTJYw!Ke=^sY zt4u9(n%T$fVKy^snR4cH<`d>4W;8Q|>CF@}Z!q1M_DlyRmoYO2M$O0>4ilyQ^h5eG zeU#orucT+uljy;8G2MmkM7N>!w3)_f4XvP6G(jtADJ`clI#U;}3)KbcoORwhcU=^L zhct|ISNaWl5Sl%TodvBq)0amI1S@vo!7fjJ4M#aZYa z+`HX-#cTIsKFZhA_aTbr&Ay8$ z!s~rpe~!PvKioglzs6tVzu|ZKIf3?p-hnxR6@jCHTY+FejPmE5;N;-4U{&y3@LDhw zWQVMwlF-D^x1rskyCH8#UEjU_gZgFld+V>)`|HIGZBfQfZdl#0rQuq`qXsOj3>Sq* zq0HVCz7ehqOCoI}Ln1RH>mr9D_ap9zG-`?ViB60zj&6>gh(3-6qpHUI#<7jF8n-o` zYW%kmYtl9iYMR)zy6Kmut4;nUEY>#GGd4Z8IJP%-CdR~4F-^Q@e02Pa_=b3G{9!y8 zClYNE0}~%5RwRB-{FZo%8WJBE7LzSHB**ZomrDP PkU5_D1Kk2lCYt$w?%D;* literal 3582 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 diff --git a/phsource/ph_latvian b/phsource/ph_latvian index 18d82b4a..3ce3aa4c 100644 --- a/phsource/ph_latvian +++ b/phsource/ph_latvian @@ -4,6 +4,12 @@ phoneme a FMT(vwl_lv/a, 100) // adjusted from aa_3 endphoneme +phoneme a` // shorter variant of a + vwl starttype #a endtype #a + length 60 + FMT(vwl_lv/a, 100) +endphoneme + phoneme a: vwl starttype #a endtype #a length 310 @@ -67,6 +73,12 @@ phoneme o FMT(vwl_lv/o, 90) endphoneme +phoneme o` // shorter version of o + vwl starttype #o endtype #o + length 60 + FMT(vwl_lv/o, 90) +endphoneme + phoneme o: vwl starttype #o endtype #o length 300 @@ -94,7 +106,7 @@ endphoneme phoneme au vwl starttype #a endtype #u - length 300 + length 280 lng FMT(vdiph/aau, 100) endphoneme @@ -193,19 +205,19 @@ phoneme h // more quiet version of standard h ipa h IF nextPh(#a) THEN - WAV(h/h-lv, 10) + WAV(h/h-lv, 20) ELIF nextPh(#e) THEN - WAV(h/h-lv, 10) + WAV(h/h-lv, 20) ELIF nextPh(#i) THEN - WAV(h/h-lv, 10) + WAV(h/h-lv, 20) ELIF nextPh(#o) THEN - WAV(h/h-lv, 10) + WAV(h/h-lv, 20) ELIF nextPh(#u) THEN - WAV(h/h-lv, 10) + WAV(h/h-lv, 20) ELIF nextPh(isPause) THEN WAV(h/h-lv, 20) ENDIF - WAV(h/h-lv, 10) // no vowel following + WAV(h/h-lv, 20) // no vowel following endphoneme phoneme j // **y**es @@ -299,7 +311,7 @@ phoneme l^ // Latvian ļ, customized from standard l^ ipa ʎ lengthmod 7 Vowelout len=60 lenadd rate - length 100 + length 80 NextVowelStarts VowelStart(l^/j2@) @@ -313,6 +325,7 @@ phoneme l^ // Latvian ļ, customized from standard l^ IF prevPh(isPause) THEN FMT(l^/_l^) ELSEIF nextPh(isPause) THEN + length 100 FMT(l^/l^_) ENDIF @@ -459,7 +472,7 @@ phoneme z` // Shortest version of z for diphthong dz vcd alv frc sib ipa z voicingswitch s - length 8 + length 10 Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 IF KlattSynth THEN @@ -499,16 +512,6 @@ endphoneme phoneme > // lengthen previous vowel less than using ":" ipa ː virtual - length 20 // it actually seems working shorter, but anyway... + length 30 // it actually seems working shorter, but anyway... endphoneme -phoneme } // Tiny, 5ms non-linked pause (used between phonemes in word) - ipa ʔ - pause - nolink - length 5 -endphoneme - - - - diff --git a/phsource/vwl_lv/ui b/phsource/vwl_lv/ui new file mode 100644 index 0000000000000000000000000000000000000000..472b55c9d0fe3c512901f26d43240467d16fad10 GIT binary patch literal 6754 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 literal 0 HcmV?d00001 diff --git a/tests/language-phonemes.test b/tests/language-phonemes.test index 1cf3c3d6..ea9d6137 100755 --- a/tests/language-phonemes.test +++ b/tests/language-phonemes.test @@ -95,7 +95,7 @@ test_lang ky bee9e683218b0c53c29a89709501f8a2486b71b2 "ma na Na pa ba ta da ka g test_lang la 080bd53c20991eae7baec73b8c735eacc8aae076 "ma na Na pa pa ba ta ta da ka ka ga fa sa za ha Ra la ja wa _:_ ma mE mI mO mU ma: me: mi: mo: mu: my my: maU maI meI mEU mOI" test_lang lfn 044e27a5100528760a185e0773dccaca504b5bd4 "ma na Na pa ba ta da ka ga fa va sa za Sa Za ha la ja R2a **a wa _:_ ma me mi mo mu maI maU meU moI" test_lang lt 615e503b996ea5f7b267ebd77b91e77c5b874e18 "ma m;a na n;a pa p;a ta t;a ka k;a ba b;a da d;a ga g;a tsa ts;a tSa tS;a dza dz;a dZa dZ;a fa f;a sa s;a Sa S;a xa x;a va v;a za z;a Za Z;a la l;a ra r;a ja _:_ m@ ma mA ma: me mE me: mee meA mi mI mi: mo mO mo: mu mU mu: mw mW mai mei mau muo moi mui mie maU meU moU maI meI" -test_lang lv 060b6f94cd505e5c3e649d94c41856d801c0c695 "ma na n^a Na pa ba ta da ca Ja ka ga tsa dza Dz\`a tSa dZa DZ\`a fa va sa za Sa Za xa ha ja la l^a Ra ra _:_ mi my mu mE me mo ma mi: my: mu: mE: me: mo: ma: mai mau mei mie miu mui muo muo\` moi" +test_lang lv b20e6cc99cd96551294060eecd7d199f9fe446ae "ma na n^a Na pa ba ta da ca Ja ka ga tsa dza Dz\`a tSa dZa DZ\`a fa va sa za Sa Za xa ha ja la l^a Ra ra _:_ mi my mu mE me mo ma mi: my: mu: mE: me: mo: ma: mai mau mei mie miu mui muo muo\` moi" test_lang mi b6e622de46c33181cdfea351b907f932da9a0a1a "ma na Na pa ta ka fa ha ra wa _:_ ma ma: me me: mi mi: mo mo: mu mu:" test_lang mk 072d0a74acf54bea528e7dde427eb04808d38364 "ma na n^a Na pa ta xa k^a ka ba da Ja ga tsa tSa tS;a dza dZa dZ;a fa sa Sa xa va za Za l^a la ja Ra @-*a ra _:_ ma me mi mo mu mA mE ma: me: mi: mo: mu: moU" test_lang shn e568aca66c2f58fdaf5dda8a67f4d21f05710234 "ma na Ja Na pa p_ha ba ta t_ha da ka k_ha ga ?a fa sa za Ta ha tS;a Ra ja wa la _:_ mi mI mW mu me m@ mo mE ma ma: mO miu meu mEu mau ma:u mWi mui m@i moi mai ma:i mOi maW _:_ ma1 ma2 ma3 ma4 ma5 ma6" diff --git a/tests/language-pronunciation.test b/tests/language-pronunciation.test index 825917a9..565e8b8d 100755 --- a/tests/language-pronunciation.test +++ b/tests/language-pronunciation.test @@ -149,7 +149,7 @@ los es don'ada **az'ona e k,onsi;'ensa e d'ebe 'ata la 'un a la 'ot**a en 'un sp test_phonemes lfn "Latn" "t'ota um'anes n'ase l'ib**e e eg'al en d'inja e di**'etos los es don'ada **az'ona e k,onsi;'ensa e d'ebe 'ata la 'un a la 'ot**a en 'un spi**'ito de f**'ati;,a" "Tota umanes nase libre e egal en dinia e diretos. Los es donada razona e consiensa e debe ata la un a la otra en un spirito de fratia." test_phonemes lt "Latn" "i:l;ingd'ama fext'Uoto:jo: Sp'aga subl;i:ktS;;o:j'us;i p@-rag@-r;'eAZee apv'alu: arb'u:za:" "Įlinkdama fechtuotojo špaga sublykčiojusi pragręžė apvalų arbūzą." -test_phonemes lv "Latn" "gl'a:ZScu:n^a R'u:ci:Si Dz\`'E:Ruma: tS'iepj b'aha k'ontsERtfli:Jel^u v'a::kus" "Glāžšķūņa rūķīši dzērumā čiepj Baha koncertflīģeļu vākus." +test_phonemes lv "Latn" "gl'a:ZScu:n^a R'u:ci:Si Dz\`_|'E:Ruma: tS'iepj b'aha k'ontsERtfli:Jel^u v'a::kus" "Glāžšķūņa rūķīši dzērumā čiepj Baha koncertflīģeļu vākus." test_phonemes mi "Latn" "k'o_| t'e_| kat'oa_ 'o_| N'a_| taN'ata_ 'i_| t'e_| f,ana,uNat'aNa_| m'ai_ 'e_| wat'ea_ 'ana_ 'i_| N'a_| h'ere_| kat'oa_| 'e_| t,aur,iter'ite_ 'ana_| h'oki_| N'a_| m'ana_| m'e_| N'a_| t'ika_| 'e_| f,akafif'ia_ 'ana_| h'oki_| k'i_ 'a_| rat'ou_| t'e_| Nak'au_| f'ai_| f,aka'aro_| m'e_| t'e_| h,ineN'aro_| moh'io_| k'i_| t'e_| t'ika_| m'e_| t'e_| h'e_| diff --git a/tests/translate.test b/tests/translate.test index fbcca3c0..1f60d23b 100755 --- a/tests/translate.test +++ b/tests/translate.test @@ -20,7 +20,7 @@ test_phonemes en "s'VmTIN Imp'o@t@nt" "something important" # suffix rules test_phonemes lv \ - "nev'ie:na nuo\`_ 'eiRo:pas v'al>sti:m nek,ad nav p'a:Rga:jusi nuo\`_ 'univERsa:la:s_:_: nuo\` v'ispa:Re:jiem n'uoduok}l^iem f'inanse:tas_:_: s'iste:mas uz 'obliga:ta:s 'apdRuoSina:Sanas s'iste:mu b'eigas" \ + "nev'ie:na nuo\`_ 'eiRo:pas v'alsti:m nek,ad nav p'a:Rga:jusi nuo\`_ 'univERsa:la:s_:_: nuo\` v'ispa:Re:jiem n'uoduok_|l^iem f'inanse:tas_:_: s'iste:mas uz 'obliga:ta:s 'apdRuoSina:Sanas s'iste:mu b'eigas" \ "Neviena no Eiropas valstīm nekad nav pārgājusi no universālās (no vispārējiem nodokļiem finansētas) sistēmas uz obligātās apdrošināšanas sistēmu Beigas." # A list entry that uses '$text' to map to another list entry crashes 1.49.2 multi-word support: