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;