1 # © 2016 and later: Unicode, Inc. and others.
2 # License & terms of use: http://www.unicode.org/copyright.html#License
4 # File: cy_cy_FONIPA.txt
8 # Transformation from Welsh (cy) to its IPA transcription (cy_FONIPA).
9 # Based on description of Northern Welsh in:
11 # http://en.wikipedia.org/wiki/Welsh_orthography
12 # http://en.wikipedia.org/wiki/Welsh_phonology
14 # Note that these rules are NOT complete: to be complete we would have to know
15 # the morphological analysis of the word. For example, final ‹au› is pronounced
16 # /a/ if it is the noun plural marker, otherwise it is /aɨ/. Similarly in
17 # “llongyfarch” (‘congratulating’), the morphological decomposition — “llon +
18 # cyfarch” — is needed to know that the ‹ng› is pronounced as /ŋg/, not as
21 # Author: Richard Sproat
27 # Both orthographic and phonetic vowels
28 $vowel = [aeiouwyâêîôûŵŷɑɨəɛɪɔʊ];
29 # W is a placeholder for the glide -- see below
31 m {m\u0325} n {n\u0325} ŋ {ŋ\u030A}
37 # Preprocessing of letters that sometimes occur
43 # Consonant transductions:
64 j → d\u0361ʒ; # Loan words
73 # Transduce ‹si› to /ʃ/ before vowels
76 # Treatment of glides.
77 # First transduce ‹i›, ‹w› to glides prior to vowels. With ‹w› we want to
78 # do this also before /r,l/ after /ɡ/ (from Proto-Celtic *w) e.g. “gwlad”,
79 # “gwraig”. However the “after g” environment must allow for the following
82 # ɡ → ŋ via nasal mutation
83 # ɡ → 0 via soft mutation
85 {w} $vowel → W; # Temporary register
86 [ɡŋ] {w} [rl] $vowel → W; # Plain or nasal mutation environment
87 ^ {w} [rl] $vowel → W; # Soft mutation at the beginning of a word
88 # Transduce accented ‹ẃ› to ‹w›: this is used to indicate when a ‹w› that would
89 # normally be expected to be a glide, is instead a vowel:
92 # Stress placement, needed for vowel quality/quantity prediction
93 # Basic rule of stress in Welsh is to place it on the penult,
94 # except of course in monosyllables.
95 {($vowel+ $cons+ $vowel+ $cons*)} $end → ˈ $1; ## Polysyllabic words
96 $end $cons* {($vowel+ $cons*)} $end → ˈ $1; ## Monosyllabic words
98 # Transduction of vowels
99 # The first rule above overgenerates streams of stress marks. The rule below
103 # Deal with ‹y› first since we also need to lengthen the /ɨ/ if that is in the
104 # correct environment for lengthening.
105 # ‹y› is /ɨ/ in final syllable, otherwise /ə/
106 yw } $cons* $end → ɨu;
111 # Diphthongs in long environment
112 # Final, or before word-final s
113 ˈ { ɨu } s? $end → ɨːu;
114 ˈ { aw } s? $end → ɑːu;
115 ˈ { ew } s? $end → eːu;
116 ˈ { oe } s? $end → ɔːɨ;
117 ˈ { ou } s? $end → ɔːɨ;
118 ˈ { wy } s? $end → uːɨ;
119 # before b, ch, d, dd, g, f, ff, th followed by the end of a word
121 ˈ { ɨu } [bχdðɡvfθ] $end → ɨːu;
122 ˈ { aw } [bχdðɡvfθ] $end → ɑːu;
123 ˈ { ew } [bχdðɡvfθ] $end → eːu;
124 ˈ { oe } [bχdðɡvfθ] $end → ɔːɨ;
125 ˈ { ou } [bχdðɡvfθ] $end → ɔːɨ;
126 ˈ { wy } [bχdðɡvfθ] $end → uːɨ;
127 ˈ { ɨu } [bχdðɡvfθ] $vowel → ɨːu;
128 ˈ { aw } [bχdðɡvfθ] $vowel → ɑːu;
129 ˈ { ew } [bχdðɡvfθ] $vowel → eːu;
130 ˈ { oe } [bχdðɡvfθ] $vowel → ɔːɨ;
131 ˈ { ou } [bχdðɡvfθ] $vowel → ɔːɨ;
132 ˈ { wy } [bχdðɡvfθ] $vowel → uːɨ;
133 # Diphthongs in other environments
136 au → aɨ; ## As plural ending /a/, but we can't predict this
149 # Final, or before word-final s
150 ˈ { ɨ } s? $end → ɨː;
151 ˈ { a } s? $end → ɑː;
152 ˈ { e } s? $end → eː;
153 ˈ { i } s? $end → iː;
154 ˈ { o } s? $end → oː;
155 ˈ { u } s? $end → ɨː;
156 ˈ { w } s? $end → uː;
157 # before b, ch, d, dd, g, f, ff, th followed by the end of a word
159 ˈ { ɨ } [bχdðɡvfθ] $end → ɨː;
160 ˈ { a } [bχdðɡvfθ] $end → ɑː;
161 ˈ { e } [bχdðɡvfθ] $end → eː;
162 ˈ { i } [bχdðɡvfθ] $end → iː;
163 ˈ { o } [bχdðɡvfθ] $end → oː;
164 ˈ { u } [bχdðɡvfθ] $end → ɨː;
165 ˈ { w } [bχdðɡvfθ] $end → uː;
166 ˈ { ɨ } [bχdðɡvfθ] $vowel → ɨː;
167 ˈ { a } [bχdðɡvfθ] $vowel → ɑː;
168 ˈ { e } [bχdðɡvfθ] $vowel → eː;
169 ˈ { i } [bχdðɡvfθ] $vowel → iː;
170 ˈ { o } [bχdðɡvfθ] $vowel → oː;
171 ˈ { u } [bχdðɡvfθ] $vowel → ɨː;
172 ˈ { w } [bχdðɡvfθ] $vowel → uː;
182 # Finally, deal with vowels that are marked as long with a circumflex
183 # (“to bach”). Do this last because we don't want the other vowel
184 # changes messing this up.
193 # Move IPA stress marker to start of syllable.
194 ([$cons w] [l ɬ r {r\u0325}]? j? w?) ˈ → ˈ $1;