]>
Commit | Line | Data |
---|---|---|
0f5d89e8 A |
1 | # © 2016 and later: Unicode, Inc. and others. |
2 | # License & terms of use: http://www.unicode.org/copyright.html#License | |
3 | # | |
4 | # File: cy_cy_FONIPA.txt | |
5 | # Generated from CLDR | |
6 | # | |
7 | ||
8 | # Transformation from Welsh (cy) to its IPA transcription (cy_FONIPA). | |
9 | # Based on description of Northern Welsh in: | |
10 | # | |
11 | # http://en.wikipedia.org/wiki/Welsh_orthography | |
12 | # http://en.wikipedia.org/wiki/Welsh_phonology | |
13 | # | |
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 | |
19 | # /ŋ/. | |
20 | # | |
21 | # Author: Richard Sproat | |
22 | ::Lower; | |
23 | ::NFC; | |
24 | [’ [:P:]] → ; | |
25 | # Class definitions | |
26 | $end = [$ ]; | |
27 | # Both orthographic and phonetic vowels | |
28 | $vowel = [aeiouwyâêîôûŵŷɑɨəɛɪɔʊ]; | |
29 | # W is a placeholder for the glide -- see below | |
30 | $cons = [ | |
31 | m {m\u0325} n {n\u0325} ŋ {ŋ\u030A} | |
32 | p b t d k ɡ | |
33 | f v θ ð s ʃ h χ | |
34 | l ɬ r {r\u0325} | |
35 | {d\u0361ʒ} g W w j | |
36 | ]; | |
37 | # Preprocessing of letters that sometimes occur | |
38 | k → c; | |
39 | v → f; | |
40 | x → s; | |
41 | z → s; | |
42 | ::Null; | |
43 | # Consonant transductions: | |
44 | # Trigraphs | |
45 | ngh → ŋ\u030A; | |
46 | # Digraphs | |
47 | ch → χ; | |
48 | dd → ð; | |
49 | ff → f; | |
50 | ll → ɬ; | |
51 | mh → m\u0325; | |
52 | nh → n\u0325; | |
53 | ng → ŋ; | |
54 | ph → f; | |
55 | rh → r\u0325; | |
56 | th → θ; | |
57 | # Monographs | |
58 | b → b; | |
59 | c → k; | |
60 | d → d; | |
61 | f → v; | |
62 | g → ɡ; | |
63 | h → h; | |
64 | j → d\u0361ʒ; # Loan words | |
65 | l → l; | |
66 | m → m; | |
67 | n → n; | |
68 | p → p; | |
69 | r → r; | |
70 | s → s; | |
71 | t → t; | |
72 | ::Null; | |
73 | # Transduce ‹si› to /ʃ/ before vowels | |
74 | si} $vowel → ʃ; | |
75 | ::Null; | |
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 | |
80 | # possibilities: | |
81 | # | |
82 | # ɡ → ŋ via nasal mutation | |
83 | # ɡ → 0 via soft mutation | |
84 | {i} $vowel → j; | |
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: | |
90 | ẃ → w; | |
91 | ::Null; | |
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 | |
97 | ::Null; | |
98 | # Transduction of vowels | |
99 | # The first rule above overgenerates streams of stress marks. The rule below | |
100 | # cleans that up. | |
101 | ˈ+ → ˈ; | |
102 | # Diphthongs | |
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; | |
107 | yw → əu; | |
108 | y} $cons* $end → ɨ; | |
109 | y → ə; | |
110 | ::Null; | |
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 | |
120 | # or a vowel | |
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 | |
134 | ae → ɑːɨ; | |
135 | ai → ai; | |
136 | au → aɨ; ## As plural ending /a/, but we can't predict this | |
137 | aw → au; | |
138 | ei → əi; | |
139 | eu → əɨ; | |
140 | ew → ɛu; | |
141 | ey → əɨ; | |
142 | iw → ɪu; | |
143 | oe → ɔɨ; | |
144 | oi → ɔi; | |
145 | ou → ɔɨ; | |
146 | uw → ɨu; | |
147 | wy → ʊɨ; | |
148 | # Long environments | |
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 | |
158 | # or a vowel | |
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ː; | |
173 | # Short environments | |
174 | a → a; | |
175 | e → ɛ; | |
176 | i → ɪ; | |
177 | o → ɔ; | |
178 | u → ɨ\u031E; | |
179 | w → ʊ; | |
180 | ::Null; | |
181 | W → w; | |
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. | |
185 | â → ɑː; | |
186 | ê → eː; | |
187 | î → iː; | |
188 | ô → oː; | |
189 | û → ɨː; | |
190 | ŵ → uː; | |
191 | ŷ → ɨː; | |
192 | ::Null; | |
193 | # Move IPA stress marker to start of syllable. | |
194 | ([$cons w] [l ɬ r {r\u0325}]? j? w?) ˈ → ˈ $1; | |
195 |