diff --git a/CHANGELOG.md b/CHANGELOG.md index 72d9a1d3..8bd06820 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/Makefile.am b/Makefile.am index 3cd2ef5d..797bb8ae 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/dictsource/uk_list b/dictsource/uk_list new file mode 100644 index 00000000..d81b9ac5 --- /dev/null +++ b/dictsource/uk_list @@ -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_: diff --git a/dictsource/uk_rules b/dictsource/uk_rules new file mode 100644 index 00000000..80e0c2dc --- /dev/null +++ b/dictsource/uk_rules @@ -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 + diff --git a/espeak-ng-data/lang/zle/uk b/espeak-ng-data/lang/zle/uk new file mode 100644 index 00000000..a9c53661 --- /dev/null +++ b/espeak-ng-data/lang/zle/uk @@ -0,0 +1,3 @@ +name Ukrainian +language uk +status testing diff --git a/phsource/phonemes b/phsource/phonemes index fd0fc127..f429be78 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1996,6 +1996,8 @@ include ph_serbian phonemetable ru-lv ru include ph_russian_lv +phonemetable uk ru + phonemetable az tr include ph_azerbaijani diff --git a/src/libespeak-ng/tr_languages.c b/src/libespeak-ng/tr_languages.c index 3b958d4d..0638b9aa 100644 --- a/src/libespeak-ng/tr_languages.c +++ b/src/libespeak-ng/tr_languages.c @@ -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