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