• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/build-icu-data.xml
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 = [
32m {m\u0325} n {n\u0325} ŋ {ŋ\u030A}
33p b t d k ɡ
34f v θ ð s ʃ h χ
35l ɬ r {r\u0325}
36{d\u0361ʒ} g W w j
37];
38# Preprocessing of letters that sometimes occur
39k → c;
40v → f;
41x → s;
42z → s;
43::Null;
44# Consonant transductions:
45# Trigraphs
46ngh → ŋ\u030A;
47# Digraphs
48ch → χ;
49dd → ð;
50ff → f;
51ll → ɬ;
52mh → m\u0325;
53nh → n\u0325;
54ng → ŋ;
55ph → f;
56rh → r\u0325;
57th → θ;
58# Monographs
59b → b;
60c → k;
61d → d;
62f → v;
63g → ɡ;
64h → h;
65j → d\u0361ʒ;   # Loan words
66l → l;
67m → m;
68n → n;
69p → p;
70r → r;
71s → s;
72t → t;
73::Null;
74# Transduce ‹si› to /ʃ/ before vowels
75si} $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 /ə/
107yw } $cons* $end → ɨu;
108yw → əu;
109y} $cons* $end → ɨ;
110y → ə;
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
135ae → ɑːɨ;
136ai → ai;
137au → aɨ; ## As plural ending /a/, but we can't predict this
138aw → au;
139ei → əi;
140eu → əɨ;
141ew → ɛu;
142ey → əɨ;
143iw → ɪu;
144oe → ɔɨ;
145oi → ɔi;
146ou → ɔɨ;
147uw → ɨu;
148wy → ʊɨ;
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
175a → a;
176e → ɛ;
177i → ɪ;
178o → ɔ;
179u → ɨ\u031E;
180w → ʊ;
181::Null;
182W → 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;
196
197