259 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			XML
		
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			XML
		
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | ||
| <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
 | ||
| <!-- Copyright © 1991-2017 Unicode, Inc.
 | ||
| CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
 | ||
| For terms of use, see http://www.unicode.org/copyright.html -->
 | ||
| <supplementalData>
 | ||
| 	<version number="$Revision$" />
 | ||
| 	<transforms>
 | ||
| 		<transform source="cy" target="cy_FONIPA" direction="forward" draft="contributed" alias="cy-fonipa-t-cy">
 | ||
| 			<tRule>
 | ||
| # Transformation from Welsh (cy) to its IPA transcription (cy_FONIPA).
 | ||
| # Based on description of Northern Welsh in:
 | ||
| #
 | ||
| # http://en.wikipedia.org/wiki/Welsh_orthography
 | ||
| # http://en.wikipedia.org/wiki/Welsh_phonology
 | ||
| #
 | ||
| # Note that these rules are NOT complete: to be complete we would have to know
 | ||
| # the morphological analysis of the word. For example, final ‹au› is pronounced
 | ||
| # /a/ if it is the noun plural marker, otherwise it is /aɨ/. Similarly in
 | ||
| # “llongyfarch” (‘congratulating’), the morphological decomposition — “llon +
 | ||
| # cyfarch” — is needed to know that the ‹ng› is pronounced as /ŋg/, not as
 | ||
| # /ŋ/.
 | ||
| #
 | ||
| # Author: Richard Sproat
 | ||
| 
 | ||
| ::Lower;
 | ||
| ::NFC;
 | ||
| [’ [:P:]] → ;
 | ||
| 
 | ||
| # Class definitions
 | ||
| 
 | ||
| $end = [$ ];
 | ||
| # Both orthographic and phonetic vowels
 | ||
| $vowel = [aeiouwyâêîôûŵŷɑɨəɛɪɔʊ];
 | ||
| # W is a placeholder for the glide -- see below
 | ||
| $cons = [
 | ||
|     m {m̥} n {n̥} ŋ {ŋ̊}
 | ||
|     p b t d k ɡ
 | ||
|     f v θ ð s ʃ h χ
 | ||
|     l ɬ r {r̥}
 | ||
|     {d͡ʒ} g W w j
 | ||
| ];
 | ||
| 
 | ||
| # Preprocessing of letters that sometimes occur
 | ||
| 
 | ||
| k → c;
 | ||
| v → f;
 | ||
| x → s;
 | ||
| z → s;
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| # Consonant transductions:
 | ||
| 
 | ||
| # Trigraphs
 | ||
| 
 | ||
| ngh → ŋ̊;
 | ||
| 
 | ||
| # Digraphs
 | ||
| 
 | ||
| ch → χ;
 | ||
| dd → ð;
 | ||
| ff → f;
 | ||
| ll → ɬ;
 | ||
| mh → m̥;
 | ||
| nh → n̥;
 | ||
| ng → ŋ;
 | ||
| ph → f;
 | ||
| rh → r̥;
 | ||
| th → θ;
 | ||
| 
 | ||
| # Monographs
 | ||
| 
 | ||
| b → b;
 | ||
| c → k;
 | ||
| d → d;
 | ||
| f → v;
 | ||
| g → ɡ;
 | ||
| h → h;
 | ||
| j → d͡ʒ;   # Loan words
 | ||
| l → l;
 | ||
| m → m;
 | ||
| n → n;
 | ||
| p → p;
 | ||
| r → r;
 | ||
| s → s;
 | ||
| t → t;
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| # Transduce ‹si› to /ʃ/ before vowels
 | ||
| 
 | ||
| si} $vowel → ʃ;
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| # Treatment of glides.
 | ||
| 
 | ||
| # First transduce ‹i›, ‹w› to glides prior to vowels. With ‹w› we want to
 | ||
| # do this also before /r,l/ after /ɡ/ (from Proto-Celtic *w) e.g. “gwlad”,
 | ||
| # “gwraig”. However the “after g” environment must allow for the following
 | ||
| # possibilities:
 | ||
| #
 | ||
| # ɡ → ŋ via nasal mutation
 | ||
| # ɡ → 0 via soft mutation
 | ||
| 
 | ||
| {i} $vowel → j;
 | ||
| {w} $vowel → W; # Temporary register
 | ||
| [ɡŋ] {w} [rl] $vowel → W;   # Plain or nasal mutation environment
 | ||
| ^ {w} [rl] $vowel → W;      # Soft mutation at the beginning of a word
 | ||
| 
 | ||
| # Transduce accented ‹ẃ› to ‹w›: this is used to indicate when a ‹w› that would
 | ||
| # normally be expected to be a glide, is instead a vowel:
 | ||
| 
 | ||
| ẃ → w;
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| # Stress placement, needed for vowel quality/quantity prediction
 | ||
| # Basic rule of stress in Welsh is to place it on the penult,
 | ||
| # except of course in monosyllables.
 | ||
| 
 | ||
| {($vowel+ $cons+ $vowel+ $cons*)} $end → ˈ $1;  ## Polysyllabic words
 | ||
| $end $cons* {($vowel+ $cons*)} $end → ˈ $1;     ## Monosyllabic words
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| # Transduction of vowels
 | ||
| 
 | ||
| # The first rule above overgenerates streams of stress marks. The rule below
 | ||
| # cleans that up.
 | ||
| 
 | ||
| ˈ+ → ˈ;
 | ||
| 
 | ||
| # Diphthongs
 | ||
| 
 | ||
| # Deal with ‹y› first since we also need to lengthen the /ɨ/ if that is in the
 | ||
| # correct environment for lengthening.
 | ||
| 
 | ||
| # ‹y› is /ɨ/ in final syllable, otherwise /ə/
 | ||
| 
 | ||
| yw } $cons* $end → ɨu;
 | ||
| yw → əu;
 | ||
| 
 | ||
| y} $cons* $end → ɨ;
 | ||
| y → ə;
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| # Diphthongs in long environment
 | ||
| 
 | ||
| # Final, or before word-final s
 | ||
| 
 | ||
| ˈ { ɨu } s? $end → ɨːu;
 | ||
| ˈ { aw } s? $end → ɑːu;
 | ||
| ˈ { ew } s? $end → eːu;
 | ||
| ˈ { oe } s? $end → ɔːɨ;
 | ||
| ˈ { ou } s? $end → ɔːɨ;
 | ||
| ˈ { wy } s? $end → uːɨ;
 | ||
| 
 | ||
| # before b, ch, d, dd, g, f, ff, th followed by the end of a word
 | ||
| # or a vowel
 | ||
| 
 | ||
| ˈ { ɨu } [bχdðɡvfθ] $end → ɨːu;
 | ||
| ˈ { aw } [bχdðɡvfθ] $end → ɑːu;
 | ||
| ˈ { ew } [bχdðɡvfθ] $end → eːu;
 | ||
| ˈ { oe } [bχdðɡvfθ] $end → ɔːɨ;
 | ||
| ˈ { ou } [bχdðɡvfθ] $end → ɔːɨ;
 | ||
| ˈ { wy } [bχdðɡvfθ] $end → uːɨ;
 | ||
| 
 | ||
| ˈ { ɨu } [bχdðɡvfθ] $vowel → ɨːu;
 | ||
| ˈ { aw } [bχdðɡvfθ] $vowel → ɑːu;
 | ||
| ˈ { ew } [bχdðɡvfθ] $vowel → eːu;
 | ||
| ˈ { oe } [bχdðɡvfθ] $vowel → ɔːɨ;
 | ||
| ˈ { ou } [bχdðɡvfθ] $vowel → ɔːɨ;
 | ||
| ˈ { wy } [bχdðɡvfθ] $vowel → uːɨ;
 | ||
| 
 | ||
| # Diphthongs in other environments
 | ||
| 
 | ||
| ae → ɑːɨ;
 | ||
| ai → ai;
 | ||
| au → aɨ; ## As plural ending /a/, but we can't predict this
 | ||
| aw → au;
 | ||
| ei → əi;
 | ||
| eu → əɨ;
 | ||
| ew → ɛu;
 | ||
| ey → əɨ;
 | ||
| iw → ɪu;
 | ||
| oe → ɔɨ;
 | ||
| oi → ɔi;
 | ||
| ou → ɔɨ;
 | ||
| uw → ɨu;
 | ||
| wy → ʊɨ;
 | ||
| 
 | ||
| # Long environments
 | ||
| 
 | ||
| # Final, or before word-final s
 | ||
| 
 | ||
| ˈ { ɨ } s? $end → ɨː;
 | ||
| ˈ { a } s? $end → ɑː;
 | ||
| ˈ { e } s? $end → eː;
 | ||
| ˈ { i } s? $end → iː;
 | ||
| ˈ { o } s? $end → oː;
 | ||
| ˈ { u } s? $end → ɨː;
 | ||
| ˈ { w } s? $end → uː;
 | ||
| 
 | ||
| # before b, ch, d, dd, g, f, ff, th followed by the end of a word
 | ||
| # or a vowel
 | ||
| 
 | ||
| ˈ { ɨ } [bχdðɡvfθ] $end → ɨː;
 | ||
| ˈ { a } [bχdðɡvfθ] $end → ɑː;
 | ||
| ˈ { e } [bχdðɡvfθ] $end → eː;
 | ||
| ˈ { i } [bχdðɡvfθ] $end → iː;
 | ||
| ˈ { o } [bχdðɡvfθ] $end → oː;
 | ||
| ˈ { u } [bχdðɡvfθ] $end → ɨː;
 | ||
| ˈ { w } [bχdðɡvfθ] $end → uː;
 | ||
| 
 | ||
| ˈ { ɨ } [bχdðɡvfθ] $vowel → ɨː;
 | ||
| ˈ { a } [bχdðɡvfθ] $vowel → ɑː;
 | ||
| ˈ { e } [bχdðɡvfθ] $vowel → eː;
 | ||
| ˈ { i } [bχdðɡvfθ] $vowel → iː;
 | ||
| ˈ { o } [bχdðɡvfθ] $vowel → oː;
 | ||
| ˈ { u } [bχdðɡvfθ] $vowel → ɨː;
 | ||
| ˈ { w } [bχdðɡvfθ] $vowel → uː;
 | ||
| 
 | ||
| # Short environments
 | ||
| 
 | ||
| a → a;
 | ||
| e → ɛ;
 | ||
| i → ɪ;
 | ||
| o → ɔ;
 | ||
| u → ɨ̞;
 | ||
| w → ʊ;
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| W → w;
 | ||
| 
 | ||
| # Finally, deal with vowels that are marked as long with a circumflex
 | ||
| # (“to bach”). Do this last because we don't want the other vowel
 | ||
| # changes messing this up.
 | ||
| 
 | ||
| â → ɑː;
 | ||
| ê → eː;
 | ||
| î → iː;
 | ||
| ô → oː;
 | ||
| û → ɨː;
 | ||
| ŵ → uː;
 | ||
| ŷ → ɨː;
 | ||
| 
 | ||
| ::Null;
 | ||
| 
 | ||
| # Move IPA stress marker to start of syllable.
 | ||
| ([$cons w] [l ɬ r {r̥}]? j? w?) ˈ → ˈ $1;
 | ||
| 			</tRule>
 | ||
| 		</transform>
 | ||
| 	</transforms>
 | ||
| </supplementalData>
 |