Fix issue #546: add initial support for Ukrainian language

This commit is contained in:
Valdis Vitolins
2020-04-12 15:29:16 +03:00
parent d0d929a307
commit d17a5ecc53
7 changed files with 204 additions and 2 deletions
+3
View File
@@ -19,6 +19,9 @@ updated languages:
* ur (Urdu) -- Ejaz Shah
* zh (Chinese) -- Silas S. Brown
new languages:
* uk (Ukrainian) -- Valdis Vitolins
### 1.50 - 2019-11-29
* Add a `--disable-rpath` option to prevent libtool hardcoding rpaths in the executable.
+4
View File
@@ -548,6 +548,7 @@ dictionaries: \
espeak-ng-data/tr_dict \
espeak-ng-data/tt_dict \
espeak-ng-data/ur_dict \
espeak-ng-data/uk_dict \
espeak-ng-data/uz_dict \
espeak-ng-data/vi_dict \
espeak-ng-data/zh_dict \
@@ -834,6 +835,9 @@ espeak-ng-data/tr_dict: dictsource/tr_list dictsource/tr_rules dictsource/tr_ext
tt: espeak-ng-data/tt_dict
espeak-ng-data/tt_dict: dictsource/tt_list dictsource/tt_rules dictsource/tt_extra
uk: espeak-ng-data/uk_dict
espeak-ng-data/uk_dict: dictsource/uk_list dictsource/uk_rules dictsource/uk_extra
ur: espeak-ng-data/ur_dict
espeak-ng-data/ur_dict: dictsource/ur_list dictsource/ur_rules dictsource/ur_extra dictsource/ur_emoji
+82
View File
@@ -0,0 +1,82 @@
// This file is UTF8 encoded
// Spelling-to-phoneme words for Ukrainian
// Letter names
а a
_б bE
б bE $atend
_в vE
в vE $atend
г gE
ґ gE
д dE
е e
є je
_ж ZE
ж ZE $atend
з zE
и i
і i
ї ji
й jot
к kA
л El
м Em
н En_
о o
п pE
р Er
_с Es
с Es $atend
т tE
у u
ф Ef
х xA
ц tsE
ч tS;e
ш SA
щ S;ja
ь m;'jak;I#jzn'Ak
ю ju
я ja
// Numbers
_0 nul;j
_1 od;'in
_2 dv'a
_3 tR;'i
_4 tS;otiR;i
_5 p;j'at;
_6 S'is;t;
_7 s;'im
_8 v'is;im
_9 d;'evjat;
_10 d;'esjat;
_11 od;'inadtsjat;
_12 dv;'anadtsjat;
_13 trin'adtsjat;
_14 tSot'irnadtsjat;
_15 pjatn'adtsjat;
_16 Sistn'adtsjat;
_17 simn'adtsjat;
_18 visimn'adtsjat;
_19 d;ev;jatn'adtsjat;
_2X dv'adtsjat;
_3X tr'idtsjat;
_4X s'orok
_5X pjatdesj'at;
_6X Sistdesj'at;
_7X s;imd;es;jat;
_8X vis;imdesj;at;
_9X d;ev;jan'osto
_0C st'o
_2C dv;'es;t;I
_3C tr;'ista
_4C tS;It'yr;esta
_5C p;,It;s'ot
_6C S,es;t;s'ot
_7C s;,Ims'ot
_8C vOs;Ims'ot
_9C d;ev;Vts'ot
_0M1 t'isjatSa
_dpt _:'i_:
+109
View File
@@ -0,0 +1,109 @@
// This file is UTF8 encoded
// Translation rules for Ukrainian
// Special characters:
// A vowel: а е ё и о у ы э ю я ә ө ұ ү і
// B soft consonant: ь й ч щ
// C any consonant: б в г д ж з й к л м н п р с т ф х ц ч ш щ ъ ь қ ң һ
// F consonant, not hard: б в г д з й к л м н п р с т ф х ч щ ь
// G voiced: б в г д ж з
// H hard consonant: ъ ж ц ш
// Y iotated vowel, softsign: ь ю я ё
.group а
а a
.group б
б b
.group в
в v
.group г
г g
.group д
д d
.group е
е e
.group є
є e
.group ж
ж Z
.group з
з z
.group и
и i
.group і
і i
.group ї
ї i
.group й
й j
.group к
к k
.group л
л l
.group м
м m
.group н
н n
.group о
о o
.group п
п p
.group р
р r
.group с
с s
.group т
т t
.group у
у u
.group ф
ф f
.group х
х x
.group ц
ц ts
.group ч
ч tS;
.group ш
ш S
.group щ
щ S;
.group ь
ь ;
.group ю
ю ju
.group я
я ja
+3
View File
@@ -0,0 +1,3 @@
name Ukrainian
language uk
status testing
+2
View File
@@ -1996,6 +1996,8 @@ include ph_serbian
phonemetable ru-lv ru
include ph_russian_lv
phonemetable uk ru
phonemetable az tr
include ph_azerbaijani
+1 -2
View File
@@ -1488,8 +1488,7 @@ Translator *SelectTranslator(const char *name)
break;
case L('u', 'k'): // Ukrainian
{
SetCyrillicLetters(tr);
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word
Translator_Russian(tr);
}
break;
case L('u', 'r'): // Urdu