// ***************************************************************************
// *   Copyright (C) 2007 to 2013 by Jonathan Duddington                     *
// *   email: jonsd@users.sourceforge.net                                    *
// *   Copyright (C) 2018 Reece H. Dunn                                      *
// *                                                                         *
// *   This program is free software; you can redistribute it and/or modify  *
// *   it under the terms of the GNU General Public License as published by  *
// *   the Free Software Foundation; either version 3 of the License, or     *
// *   (at your option) any later version.                                   *
// *                                                                         *
// *   This program is distributed in the hope that it will be useful,       *
// *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
// *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
// *   GNU General Public License for more details.                          *
// *                                                                         *
// *   You should have received a copy of the GNU General Public License     *
// *   along with this program; if not, see:                                 *
// *               <http://www.gnu.org/licenses/>.                           *
// ***************************************************************************/

// Russian translation rules
// This file is UTF8 encoded

// Special characters:
// A  vowel:                    а е ё и о у ы э ю я ә ө ұ ү і
// B  soft consonant:           ь й ч щ
// C  any consonant:            б в г д ж з й к л м н п р с т ф х ц ч ш щ ъ ь қ ң һ
// F  consonant, not hard:      б в г д з й к л м н п р с т ф х ч щ ь
// G  voiced:                   б в г д ж з
// H  hard consonant:           ъ ж ц ш
// Y  iotated vowel, softsign:  ь ю я ё

// Conditional rules
// ?2 Russian (Latvia)

.group а
        а       V
     B) а (_    V
     _) а       a
        а (_    a

.group б
        б       b
?2      б (_    b
        б (Y    b;
        б (_    p
        б (бY   b;
        б (бвY  b;
        б (бмY  b;
        б (вY   b;
        б (кY   p
        б (мY   b;
        б (пY   p;
        б (сY   p
        б (тY   p
        б (фY   p;
        б (ффY  p;
        б (хY   p
        б (хкY  p
        б (ч    p
        б (щ    p
        б (ь_   p;

.group в
        в       v
?2      в (_    v-
        в (_    f
        в (Y    v;
        в (бY   v;
        в (вY   v;
        в (вбY  v;
        в (вмY  v;
        в (кY   f
        в (мY   v;
        в (п'   f;
        в (сY   f
        в (тY   f
        в (ф'   f;
        в (хY   f
        в (хкY  f
        в (ч    f
        в (щ    f
        в (ь_   f;

.group г
        г       g
    Cе) г (о_   v
    Cо) г (о_   v
  _все) г (о_   v
        г (Y    g;
        г (_    k
        г (к    x
        г (пY   k
        г (сY   k
        г (тY   k
        г (фY   k
        г (ффY  k
        г (хY   k
        г (хкY  k
    _е) г (о_   v
     е) г (ося_ v
  _мно) г (о_   g
  _мое) г (о_   v
   _не) г (о_   v
   _се) г (о    v
 _твое) г (о_   v

.group д
        д       d
        д (B    d;
        д (Y    d;
        д (_    t
        д (дY   d;
        д (зY   d;
        д (кY   t
        д (нь   d;
        д (пY   t
        д (сY   t;
        д (тY   t;
        д (фY   t
        д (ффY  t
        д (хY   t
        д (хкY  t
        д (ь_   t;

.group е
        е          e
?2      A) е (_    ;e
        A) е       je
        A) е (_    jI3     //second position
     бакт) е (р    E%      // бактериальный, антибактериальный, ...
     барт) е (р    E%
        _) е       jI3     //second position
      инт) е (р    E%      // интернет, интернационал, ... ??????????
  компьют) е (р    E%
        т) е (ст   E%
        ъ) е       je
        ъ) е (_    jI3     //second position
        ь) е       je
        ь) е (_    jI3     //second position

.group ж
        ж       Z
        ж (_    S
        ж (кY   S
        ж (пY   S
        ж (сY   S
        ж (тY   S
        ж (фY   S
        ж (ффY  S
        ж (хY   S
        ж (хкY  S
        жч      S;
?2      жч      SS

.group з
        з       z
?2      з (е    z
?2      зч     SS
        з (Y    z;
        з (_    s
        з (дY   z;
        з (ж    Z
        з (зY_  s;
        з (зY   z;
        з (здY_ s;
        з (здY  z;
        з (знB_ s;
        з (знB  z;
        з (знY_ s;
        з (знY  z;
        з (кY   s
        з (нB   z;
        з (нY   z;
        з (пY   s
        з (сY   s;
        з (тY   s;
        з (фY   s
        з (ффY  s
        з (хY   s
        з (хкY  s
        зч      S;
        з (ш    S
        зщ      S;
        з (щ    s

.group и
        и       i
     H) и       y       // preceded by hard consonant
     ж) и       y
     _) и       I
        и (_    I
     ш) и       y

.group й
        й       j

.group к
        к       k
        к (Y    k;
        к (б    g
        к (бY   g
        к (г    g
        к (гY   g
        к (дB   g
        к (д    g
        к (дY   g
        к (ж    g
        к (з    g
        к (зY   g

.group л
        л       l
?2      л (Y    l^
        л (Y    l;

.group м
        м       m
?2      м (Y    m
        м (Y    m;
        м (бY   m;
        м (вY   m;
        м (пY   m;
        м (фY   m;
        м (ффY  m;

.group н
        н       n
?2      н (Y    n^
        н (Y    n;
   биз) не (с   nE%
        н (_    n_

.group о
        о       o

.group п
        п       p
        п (Y    p;
        п (б    b
        п (б'   b;
        п (г    b
        п (гY   b
        п (д    b
        п (дB   b
        п (дY   b
        п (ж    b
        п (з    b
        п (зY   b
        п (мY   p;
        п (пY   p;
        п (пмY  p;
        п (пфY  p;
        п (фY   p;
        п (ффY  p;

.group р
        р       r
        р (B    r;
        р (Y    r;
        р (ь    rI^

.group с
        с       s
?2      сч      S
        с (Y    s;
        с (б    z
        с (г    z
        с (дB   z;
        с (дY   z;
        с (д    z
        с (ж    Z
        с (ж    z
        с (зY   z;
        с (з    z
        с (нB   s;
        с (нY   s;
        с (сY   s;
        с (тY   s;
        с (ть   s
        сч      S;
        с (ш    S
        с (щ    s;s;

.group т
        т       t
        Y) тс   ts
        т (Y    t;
        т (б    d
        т (г    d
        т (дB   d;
        т (д    d
        т (дY   d;
        т (ж    d
        т (ж    d
        т (з    d
        т (зY   d;
        т (нB   t;
        т (нY   t;
        т (сY   t;
        т (тY   t;

.group у
        у       u
     B) у       u#

.group ф
        ф       f
        ф (Y    f;
        ф (б    v
        ф (б'   v;
        ф (гY   v
        ф (г    v
        ф (дB   v
        ф (дY   v
        ф (д    v
        ф (ж    v
        ф (зY   v
        ф (з    v
        ф (мY   f;
        ф (пY   f;
        ф (пмY  f;
        ф (пфY  f;
        ф (фY   f;

.group х
        х       x
        х (Y    x     //С
        х (бY   x
        х (б    x
        х (бвY  x
        х (бмY  x
        х (_бы  x
        х (гY   x
        х (г    x
        х (дB   x
        х (дY   x
        х (д    x
        х (ж    x
        х (зY   x
        х (з    x
        х (кY   x    //С

.group ц
        ц       ts
        ц (б    dz
        ц (бY   dz
        ц (бвY  dz
        ц (бмY  dz
        ц (г    dz
        ц (гY   dz
        ц (дB   dz
        ц (д    dz
        ц (дY   dz
        ц (ж    dz
        ц (з    dz
        ц (зY   dz

.group ч
        ч       tS;
   лу) ч (ше    t
        ч (б    dZ;
        ч (бY   dZ;
        ч (бвY  dZ;
        ч (бмY  dZ;
        ч (г    dZ;
        ч (гY   dZ;
        ч (дB   dZ;
        ч (д    dZ;
        ч (дY   dZ;
        ч (ж    dZ;
        ч (з    dZ;
        ч (зY   dZ;
  деви) ч (н    S
  коне) ч (но   S
 пустя) ч (н    S
 скворе)ч (н    S
   ску) ч (н    S
        ч (на_  S
        ч (не_  S
        ч (ной_ S
        ч (ну_  S
        ч (ны_  S
     _) ч (то   S
    яи) ч (ни   S

.group ш
        ш       S
        ш (бY   Z
        ш (б    Z
        ш (бвY  Z
        ш (бмY  Z
        ш (гY   Z
        ш (г    Z
        ш (дB   Z
        ш (дY   Z
        ш (д    Z
        ш (ж    Z
        ш (зY   Z
        ш (з    Z


.group щ
        щ       S;
?2      щ       SS
        щ (бY   Z;
        щ (б    Z;
        щ (бвY  Z;
        щ (бмY  Z;
        щ (гY   Z;
        щ (г    Z;
        щ (дB   Z;
        щ (дY   Z;
        щ (д    Z;
        щ (ж    Z;
        щ (зY   Z;
        щ (з    Z;

.group ъ
        ъ (Y    j
?2      ъ (Y    _|

.group ы
        ы       y

.group ь
        ь (Y    j
?2      ь (Y    _|

.group э
        э       E2
     _) э       E#
        э (_    E#

.group ю
        ю       u"
     A) ю       ju
 следу) ю (щ    ju
     ъ) ю       ju
     ь) ю       ju
     _) ю       ju

.group я
        я       V       // TODO: in unstressed position it sometimes sounds more like [i] than like [V]
     A) я       ja
     A) я (_    ja      //second position
     ъ) я       ja
     ъ) я (_    ja      //second position
     ь) я       ja
     ь) я (_    ja      //second position
     _) я       ja      //second position
        я (_    V

.group ё
        ё       '8
?2   A) ё       'j8
     _) ё       'j8
     ж) ё       'O
     ш) ё       'O

.group
        // other cyrillic letters
        ѓ       dZ;
        ґ       g
        ђ       dZ;
        є       jE
        і       i
        ї       ji
        ј       j   // U+458
        ќ       kj
        љ       lj
        ћ       tS;
        ў       w
        џ       dZ