• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
3<!-- Copyright © 1991-2017 Unicode, Inc.
4CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
5For terms of use, see http://www.unicode.org/copyright.html -->
6<supplementalData>
7	<version number="$Revision: 13680 $" />
8	<transforms>
9		<transform source="cy" target="cy_FONIPA" direction="forward" draft="contributed" alias="cy-fonipa-t-cy">
10			<tRule>
11# Transformation from Welsh (cy) to its IPA transcription (cy_FONIPA).
12# Based on description of Northern Welsh in:
13#
14# http://en.wikipedia.org/wiki/Welsh_orthography
15# http://en.wikipedia.org/wiki/Welsh_phonology
16#
17# Note that these rules are NOT complete: to be complete we would have to know
18# the morphological analysis of the word. For example, final ‹au› is pronounced
19# /a/ if it is the noun plural marker, otherwise it is /aɨ/. Similarly in
20# “llongyfarch” (‘congratulating’), the morphological decomposition — “llon +
21# cyfarch” — is needed to know that the ‹ng› is pronounced as /ŋg/, not as
22# /ŋ/.
23#
24# Author: Richard Sproat
25
26::Lower;
27::NFC;
28[’ [:P:]] → ;
29
30# Class definitions
31
32$end = [$ ];
33# Both orthographic and phonetic vowels
34$vowel = [aeiouwyâêîôûŵŷɑɨəɛɪɔʊ];
35# W is a placeholder for the glide -- see below
36$cons = [
37    m {m̥} n {n̥} ŋ {ŋ̊}
38    p b t d k ɡ
39    f v θ ð s ʃ h χ
40    l ɬ r {r̥}
41    {d͡ʒ} g W w j
42];
43
44# Preprocessing of letters that sometimes occur
45
46k → c;
47v → f;
48x → s;
49z → s;
50
51::Null;
52
53# Consonant transductions:
54
55# Trigraphs
56
57ngh → ŋ̊;
58
59# Digraphs
60
61ch → χ;
62dd → ð;
63ff → f;
64ll → ɬ;
65mh → m̥;
66nh → n̥;
67ng → ŋ;
68ph → f;
69rh → r̥;
70th → θ;
71
72# Monographs
73
74b → b;
75c → k;
76d → d;
77f → v;
78g → ɡ;
79h → h;
80j → d͡ʒ;   # Loan words
81l → l;
82m → m;
83n → n;
84p → p;
85r → r;
86s → s;
87t → t;
88
89::Null;
90
91# Transduce ‹si› to /ʃ/ before vowels
92
93si} $vowel → ʃ;
94
95::Null;
96
97# Treatment of glides.
98
99# First transduce ‹i›, ‹w› to glides prior to vowels. With ‹w› we want to
100# do this also before /r,l/ after /ɡ/ (from Proto-Celtic *w) e.g. “gwlad”,
101# “gwraig”. However the “after g” environment must allow for the following
102# possibilities:
103#
104# ɡ → ŋ via nasal mutation
105# ɡ → 0 via soft mutation
106
107{i} $vowel → j;
108{w} $vowel → W; # Temporary register
109[ɡŋ] {w} [rl] $vowel → W;   # Plain or nasal mutation environment
110^ {w} [rl] $vowel → W;      # Soft mutation at the beginning of a word
111
112# Transduce accented ‹ẃ› to ‹w›: this is used to indicate when a ‹w› that would
113# normally be expected to be a glide, is instead a vowel:
114
115ẃ → w;
116
117::Null;
118
119# Stress placement, needed for vowel quality/quantity prediction
120# Basic rule of stress in Welsh is to place it on the penult,
121# except of course in monosyllables.
122
123{($vowel+ $cons+ $vowel+ $cons*)} $end → ˈ $1;  ## Polysyllabic words
124$end $cons* {($vowel+ $cons*)} $end → ˈ $1;     ## Monosyllabic words
125
126::Null;
127
128# Transduction of vowels
129
130# The first rule above overgenerates streams of stress marks. The rule below
131# cleans that up.
132
133ˈ+ → ˈ;
134
135# Diphthongs
136
137# Deal with ‹y› first since we also need to lengthen the /ɨ/ if that is in the
138# correct environment for lengthening.
139
140# ‹y› is /ɨ/ in final syllable, otherwise /ə/
141
142yw } $cons* $end → ɨu;
143yw → əu;
144
145y} $cons* $end → ɨ;
146y → ə;
147
148::Null;
149
150# Diphthongs in long environment
151
152# Final, or before word-final s
153
154ˈ { ɨu } s? $end → ɨːu;
155ˈ { aw } s? $end → ɑːu;
156ˈ { ew } s? $end → eːu;
157ˈ { oe } s? $end → ɔːɨ;
158ˈ { ou } s? $end → ɔːɨ;
159ˈ { wy } s? $end → uːɨ;
160
161# before b, ch, d, dd, g, f, ff, th followed by the end of a word
162# or a vowel
163
164ˈ { ɨu } [bχdðɡvfθ] $end → ɨːu;
165ˈ { aw } [bχdðɡvfθ] $end → ɑːu;
166ˈ { ew } [bχdðɡvfθ] $end → eːu;
167ˈ { oe } [bχdðɡvfθ] $end → ɔːɨ;
168ˈ { ou } [bχdðɡvfθ] $end → ɔːɨ;
169ˈ { wy } [bχdðɡvfθ] $end → uːɨ;
170
171ˈ { ɨu } [bχdðɡvfθ] $vowel → ɨːu;
172ˈ { aw } [bχdðɡvfθ] $vowel → ɑːu;
173ˈ { ew } [bχdðɡvfθ] $vowel → eːu;
174ˈ { oe } [bχdðɡvfθ] $vowel → ɔːɨ;
175ˈ { ou } [bχdðɡvfθ] $vowel → ɔːɨ;
176ˈ { wy } [bχdðɡvfθ] $vowel → uːɨ;
177
178# Diphthongs in other environments
179
180ae → ɑːɨ;
181ai → ai;
182au → aɨ; ## As plural ending /a/, but we can't predict this
183aw → au;
184ei → əi;
185eu → əɨ;
186ew → ɛu;
187ey → əɨ;
188iw → ɪu;
189oe → ɔɨ;
190oi → ɔi;
191ou → ɔɨ;
192uw → ɨu;
193wy → ʊɨ;
194
195# Long environments
196
197# Final, or before word-final s
198
199ˈ { ɨ } s? $end → ɨː;
200ˈ { a } s? $end → ɑː;
201ˈ { e } s? $end → eː;
202ˈ { i } s? $end → iː;
203ˈ { o } s? $end → oː;
204ˈ { u } s? $end → ɨː;
205ˈ { w } s? $end → uː;
206
207# before b, ch, d, dd, g, f, ff, th followed by the end of a word
208# or a vowel
209
210ˈ { ɨ } [bχdðɡvfθ] $end → ɨː;
211ˈ { a } [bχdðɡvfθ] $end → ɑː;
212ˈ { e } [bχdðɡvfθ] $end → eː;
213ˈ { i } [bχdðɡvfθ] $end → iː;
214ˈ { o } [bχdðɡvfθ] $end → oː;
215ˈ { u } [bχdðɡvfθ] $end → ɨː;
216ˈ { w } [bχdðɡvfθ] $end → uː;
217
218ˈ { ɨ } [bχdðɡvfθ] $vowel → ɨː;
219ˈ { a } [bχdðɡvfθ] $vowel → ɑː;
220ˈ { e } [bχdðɡvfθ] $vowel → eː;
221ˈ { i } [bχdðɡvfθ] $vowel → iː;
222ˈ { o } [bχdðɡvfθ] $vowel → oː;
223ˈ { u } [bχdðɡvfθ] $vowel → ɨː;
224ˈ { w } [bχdðɡvfθ] $vowel → uː;
225
226# Short environments
227
228a → a;
229e → ɛ;
230i → ɪ;
231o → ɔ;
232u → ɨ̞;
233w → ʊ;
234
235::Null;
236
237W → w;
238
239# Finally, deal with vowels that are marked as long with a circumflex
240# (“to bach”). Do this last because we don't want the other vowel
241# changes messing this up.
242
243â → ɑː;
244ê → eː;
245î → iː;
246ô → oː;
247û → ɨː;
248ŵ → uː;
249ŷ → ɨː;
250
251::Null;
252
253# Move IPA stress marker to start of syllable.
254([$cons w] [l ɬ r {r̥}]? j? w?) ˈ → ˈ $1;
255			</tRule>
256		</transform>
257	</transforms>
258</supplementalData>
259