tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

cy_cy_FONIPA.txt (5582B)


      1 # © 2016 and later: Unicode, Inc. and others.
      2 # License & terms of use: http://www.unicode.org/copyright.html
      3 # Generated using tools/cldr/cldr-to-icu/
      4 #
      5 # File: cy_cy_FONIPA.txt
      6 # Generated from CLDR
      7 #
      8 
      9 # Transformation from Welsh (cy) to its IPA transcription (cy_FONIPA).
     10 # Based on description of Northern Welsh in:
     11 #
     12 # http://en.wikipedia.org/wiki/Welsh_orthography
     13 # http://en.wikipedia.org/wiki/Welsh_phonology
     14 #
     15 # Note that these rules are NOT complete: to be complete we would have to know
     16 # the morphological analysis of the word. For example, final ‹au› is pronounced
     17 # /a/ if it is the noun plural marker, otherwise it is /aɨ/. Similarly in
     18 # “llongyfarch” (‘congratulating’), the morphological decomposition — “llon +
     19 # cyfarch” — is needed to know that the ‹ng› is pronounced as /ŋg/, not as
     20 # /ŋ/.
     21 #
     22 # Author: Richard Sproat
     23 ::Lower;
     24 ::NFC;
     25 [’ [:P:]] → ;
     26 # Class definitions
     27 $end = [$ ];
     28 # Both orthographic and phonetic vowels
     29 $vowel = [aeiouwyâêîôûŵŷɑɨəɛɪɔʊ];
     30 # W is a placeholder for the glide -- see below
     31 $cons = [
     32 m {m\u0325} n {n\u0325} ŋ {ŋ\u030A}
     33 p b t d k ɡ
     34 f v θ ð s ʃ h χ
     35 l ɬ r {r\u0325}
     36 {d\u0361ʒ} g W w j
     37 ];
     38 # Preprocessing of letters that sometimes occur
     39 k → c;
     40 v → f;
     41 x → s;
     42 z → s;
     43 ::Null;
     44 # Consonant transductions:
     45 # Trigraphs
     46 ngh → ŋ\u030A;
     47 # Digraphs
     48 ch → χ;
     49 dd → ð;
     50 ff → f;
     51 ll → ɬ;
     52 mh → m\u0325;
     53 nh → n\u0325;
     54 ng → ŋ;
     55 ph → f;
     56 rh → r\u0325;
     57 th → θ;
     58 # Monographs
     59 b → b;
     60 c → k;
     61 d → d;
     62 f → v;
     63 g → ɡ;
     64 h → h;
     65 j → d\u0361ʒ;   # Loan words
     66 l → l;
     67 m → m;
     68 n → n;
     69 p → p;
     70 r → r;
     71 s → s;
     72 t → t;
     73 ::Null;
     74 # Transduce ‹si› to /ʃ/ before vowels
     75 si} $vowel → ʃ;
     76 ::Null;
     77 # Treatment of glides.
     78 # First transduce ‹i›, ‹w› to glides prior to vowels. With ‹w› we want to
     79 # do this also before /r,l/ after /ɡ/ (from Proto-Celtic *w) e.g. “gwlad”,
     80 # “gwraig”. However the “after g” environment must allow for the following
     81 # possibilities:
     82 #
     83 # ɡ → ŋ via nasal mutation
     84 # ɡ → 0 via soft mutation
     85 {i} $vowel → j;
     86 {w} $vowel → W; # Temporary register
     87 [ɡŋ] {w} [rl] $vowel → W;   # Plain or nasal mutation environment
     88 ^ {w} [rl] $vowel → W;      # Soft mutation at the beginning of a word
     89 # Transduce accented ‹ẃ› to ‹w›: this is used to indicate when a ‹w› that would
     90 # normally be expected to be a glide, is instead a vowel:
     91 ẃ → w;
     92 ::Null;
     93 # Stress placement, needed for vowel quality/quantity prediction
     94 # Basic rule of stress in Welsh is to place it on the penult,
     95 # except of course in monosyllables.
     96 {($vowel+ $cons+ $vowel+ $cons*)} $end → ˈ $1;  ## Polysyllabic words
     97 $end $cons* {($vowel+ $cons*)} $end → ˈ $1;     ## Monosyllabic words
     98 ::Null;
     99 # Transduction of vowels
    100 # The first rule above overgenerates streams of stress marks. The rule below
    101 # cleans that up.
    102 ˈ+ → ˈ;
    103 # Diphthongs
    104 # Deal with ‹y› first since we also need to lengthen the /ɨ/ if that is in the
    105 # correct environment for lengthening.
    106 # ‹y› is /ɨ/ in final syllable, otherwise /ə/
    107 yw } $cons* $end → ɨu;
    108 yw → əu;
    109 y} $cons* $end → ɨ;
    110 y → ə;
    111 ::Null;
    112 # Diphthongs in long environment
    113 # Final, or before word-final s
    114 ˈ { ɨu } s? $end → ɨːu;
    115 ˈ { aw } s? $end → ɑːu;
    116 ˈ { ew } s? $end → eːu;
    117 ˈ { oe } s? $end → ɔːɨ;
    118 ˈ { ou } s? $end → ɔːɨ;
    119 ˈ { wy } s? $end → uːɨ;
    120 # before b, ch, d, dd, g, f, ff, th followed by the end of a word
    121 # or a vowel
    122 ˈ { ɨu } [bχdðɡvfθ] $end → ɨːu;
    123 ˈ { aw } [bχdðɡvfθ] $end → ɑːu;
    124 ˈ { ew } [bχdðɡvfθ] $end → eːu;
    125 ˈ { oe } [bχdðɡvfθ] $end → ɔːɨ;
    126 ˈ { ou } [bχdðɡvfθ] $end → ɔːɨ;
    127 ˈ { wy } [bχdðɡvfθ] $end → uːɨ;
    128 ˈ { ɨu } [bχdðɡvfθ] $vowel → ɨːu;
    129 ˈ { aw } [bχdðɡvfθ] $vowel → ɑːu;
    130 ˈ { ew } [bχdðɡvfθ] $vowel → eːu;
    131 ˈ { oe } [bχdðɡvfθ] $vowel → ɔːɨ;
    132 ˈ { ou } [bχdðɡvfθ] $vowel → ɔːɨ;
    133 ˈ { wy } [bχdðɡvfθ] $vowel → uːɨ;
    134 # Diphthongs in other environments
    135 ae → ɑːɨ;
    136 ai → ai;
    137 au → aɨ; ## As plural ending /a/, but we can't predict this
    138 aw → au;
    139 ei → əi;
    140 eu → əɨ;
    141 ew → ɛu;
    142 ey → əɨ;
    143 iw → ɪu;
    144 oe → ɔɨ;
    145 oi → ɔi;
    146 ou → ɔɨ;
    147 uw → ɨu;
    148 wy → ʊɨ;
    149 # Long environments
    150 # Final, or before word-final s
    151 ˈ { ɨ } s? $end → ɨː;
    152 ˈ { a } s? $end → ɑː;
    153 ˈ { e } s? $end → eː;
    154 ˈ { i } s? $end → iː;
    155 ˈ { o } s? $end → oː;
    156 ˈ { u } s? $end → ɨː;
    157 ˈ { w } s? $end → uː;
    158 # before b, ch, d, dd, g, f, ff, th followed by the end of a word
    159 # or a vowel
    160 ˈ { ɨ } [bχdðɡvfθ] $end → ɨː;
    161 ˈ { a } [bχdðɡvfθ] $end → ɑː;
    162 ˈ { e } [bχdðɡvfθ] $end → eː;
    163 ˈ { i } [bχdðɡvfθ] $end → iː;
    164 ˈ { o } [bχdðɡvfθ] $end → oː;
    165 ˈ { u } [bχdðɡvfθ] $end → ɨː;
    166 ˈ { w } [bχdðɡvfθ] $end → uː;
    167 ˈ { ɨ } [bχdðɡvfθ] $vowel → ɨː;
    168 ˈ { a } [bχdðɡvfθ] $vowel → ɑː;
    169 ˈ { e } [bχdðɡvfθ] $vowel → eː;
    170 ˈ { i } [bχdðɡvfθ] $vowel → iː;
    171 ˈ { o } [bχdðɡvfθ] $vowel → oː;
    172 ˈ { u } [bχdðɡvfθ] $vowel → ɨː;
    173 ˈ { w } [bχdðɡvfθ] $vowel → uː;
    174 # Short environments
    175 a → a;
    176 e → ɛ;
    177 i → ɪ;
    178 o → ɔ;
    179 u → ɨ\u031E;
    180 w → ʊ;
    181 ::Null;
    182 W → w;
    183 # Finally, deal with vowels that are marked as long with a circumflex
    184 # (“to bach”). Do this last because we don't want the other vowel
    185 # changes messing this up.
    186 â → ɑː;
    187 ê → eː;
    188 î → iː;
    189 ô → oː;
    190 û → ɨː;
    191 ŵ → uː;
    192 ŷ → ɨː;
    193 ::Null;
    194 # Move IPA stress marker to start of syllable.
    195 ([$cons w] [l ɬ r {r\u0325}]? j? w?) ˈ → ˈ $1;