• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
3<!--
4Copyright © 1991-2013 Unicode, Inc.
5CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
6For terms of use, see http://www.unicode.org/copyright.html
7-->
8<supplementalData>
9	<version number="$Revision: 12263 $"/>
10	<transforms>
11		<transform source="Grek" target="Latn" variant="UNGEGN" direction="both" alias="Greek-Latin/UNGEGN und-Latn-t-und-grek-m0-ungegn" backwardAlias="Latin-Greek/UNGEGN und-Grek-t-und-latn-m0-ungegn">
12			<tRule><![CDATA[
13# For modern Greek, based on UNGEGN rules.
14# Rules are predicated on running NFD first, and NFC afterwards
15# MINIMAL FILTER GENERATED FOR: Greek-Latin/UNGEGN
16# WARNING: need to add accents to both filters ###
17# :: [́̄̆̈;µ·ÀÂÈÊÌÎÒÔÙÛàâèêìîòôùûĈ-ĉĜ-ĝĤ-ĥĴ-ĵŜ-ŝŴ-ŷǛ-ǜǸ-ǹ̀̂̓-̔̀͂-̓ͅͺ;Ά-ΊΌΎ-ΡΣ-ώϐ-ϖϰ-ϵЀЍѐѝḔ-ḕṐ-ṑẀ-ẁẐ-ẑẤ-ậẰ-ằẾ-ệỐ-ộỜ-ờỪ-ừỲ-ỳἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼι῁-ῄῆ-῍῏-ΐῖ-Ί῝῟-῭ῲ-ῴῶ-ῼΩϷ-\u07FBϹ] ;
18:: [[[:Greek:][:Mn:][:Me:]] [\:-;?·;·]] ;
19::NFD (NFC) ;
20# Useful variables
21$lower = [[:latin:][:greek:] & [:Ll:]] ;
22$upper = [[:latin:][:greek:] & [:Lu:]] ;
23$accent = [[:Mn:][:Me:]] ;
24$macron = ̄ ;
25$ddot = ̈ ;
26$lcgvowel = [αεηιουω] ;
27$ucgvowel = [ΑΕΗΙΟΥΩ] ;
28$gvowel = [$lcgvowel $ucgvowel] ;
29$lcgvowelC = [$lcgvowel $accent] ;
30$evowel = [aeiouyAEIOUY];
31$vowel = [ $evowel $gvowel] ;
32$beforeLower = $accent * $lower ;
33$gammaLike = [ΓΚΞΧγκξχϰ] ;
34$egammaLike = [GKXCgkxc] ;
35$smooth = ̓ ;
36$rough = ̔ ;
37$iotasub = ͅ ;
38$softener = [βΒγΓδΔζΖλΛμΜνΝρΡ$gvowel] ;
39$under = ̱;
40$caron = ̌;
41$afterLetter = [:L:] [\'$accent]* ;
42$beforeLetter = [\'$accent]* [:L:] ;
43# Fix punctuation
44# preserve orginal
45\: ↔ \: $under ;
46\? ↔ \? $under ;
47\; ↔ \? ;
48· ↔ \: ;
49# Fix any ancient characters that creep in
50͂ → ́ ;
51̂ → ́ ;
52̀ → ́ ;
53$smooth → ;
54$rough → ;
55$iotasub → ;
56ͺ → ;
57# need to have these up here so the rules don't mask
58η ↔ i $under ;
59Η ↔ I $under ;
60Ψ } $beforeLower ↔ Ps ;
61Ψ ↔ PS ;
62ψ ↔ ps ;
63ω ↔ o $under ;
64Ω ↔  O $under;
65# at begining or end of word, convert mp to b
66[^[:L:]$accent] { μπ → b ;
67μπ } [^[:L:]$accent] → b ;
68[^[:L:]$accent] { [Μμ][Ππ] → B ;
69[Μμ][Ππ] } [^[:L:]$accent] → B ;
70μπ ← b ;
71Μπ ← B } $beforeLower ;
72ΜΠ ← B ;
73# handle diphthongs ending with upsilon
74ου ↔ ou ;
75ΟΥ ↔ OU ;
76Ου ↔ Ou ;
77οΥ ↔ oU ;
78$fmaker = [aeiAEI] $under ? ;
79$shiftForwardVowels = [[:Mn:]-[̈]]; # note: a diaeresis keeps the items separate
80$fmaker { υ ( $shiftForwardVowels )* } $softener → $1 v $under ;
81υ $1 ← ( $shiftForwardVowels )* v $under ;
82$fmaker { υ ( $shiftForwardVowels )* } → $1 f $under;
83υ $1 ← ( $shiftForwardVowels )* f $under ;
84$fmaker { Υ } $softener ↔ V $under ;
85$fmaker { Υ ↔ U $under ;
86υ ↔ y ;
87Υ ↔ Y ;
88# NORMAL
89α ↔ a ;
90Α ↔ A ;
91β ↔ v ;
92Β ↔ V ;
93γ } $gammaLike ↔ n } $egammaLike ;
94γ ↔ g ;
95Γ } $gammaLike ↔ N } $egammaLike ;
96Γ ↔ G ;
97δ ↔ d ;
98Δ ↔ D ;
99ε ↔ e ;
100Ε ↔ E ;
101ζ ↔ z ;
102Ζ ↔ Z ;
103θ ↔ th ;
104Θ } $beforeLower ↔ Th ;
105Θ ↔ TH ;
106ι ↔ i ;
107Ι ↔ I ;
108κ ↔ k ;
109Κ ↔ K ;
110λ ↔ l ;
111Λ ↔ L ;
112μ ↔ m ;
113Μ ↔ M ;
114ν } $gammaLike → n\' ;
115ν ↔ n ;
116Ν } $gammaLike ↔ N\' ;
117Ν ↔ N ;
118ξ ↔ x ;
119Ξ ↔ X ;
120ο ↔ o ;
121Ο ↔ O ;
122π ↔ p ;
123Π ↔ P ;
124ρ ↔ r ;
125Ρ ↔ R ;
126# insert separator before things that turn into s
127[Pp] { } [ςσΣϷϸϺϻ] → \' ;
128# special S variants
129Ϸ ↔ Š ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
130ϸ ↔ š ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
131Ϻ ↔ Ŝ ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
132ϻ ↔ ŝ ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
133# Caron means exception
134# before a letter, initial
135ς } $beforeLetter ↔ s $under } $beforeLetter;
136σ } $beforeLetter ↔ s } $beforeLetter;
137# otherwise, after a letter = final
138$afterLetter { σ ↔ $afterLetter { s $under;
139$afterLetter { ς ↔ $afterLetter { s ;
140# otherwise (isolated) = initial
141ς ↔ s $under;
142σ ↔ s ;
143# [Pp] { Σ ↔ \'S ;
144Σ ↔ S ;
145τ ↔ t ;
146Τ ↔ T ;
147φ ↔ f ;
148Φ ↔ F ;
149χ ↔ ch ;
150Χ } $beforeLower ↔ Ch ;
151Χ ↔ CH ;
152# Completeness for ASCII
153# $ignore = [[:Mark:]''] * ;
154| ch ← h ;
155| k  ← c ;
156| i  ← j ;
157| k ← q ;
158| b ← u } $vowel ;
159| b ← w } $vowel ;
160| y ← u ;
161| y ← w ;
162| Ch ← H ;
163| K ← C ;
164| I ← J ;
165| K ← Q ;
166| B ← W } $vowel ;
167| B ← U } $vowel ;
168| Y ← W ;
169| Y ← U ;
170# Completeness for Greek
171ϐ → | β ;
172ϑ → | θ ;
173ϒ → | Υ ;
174ϕ → | φ ;
175ϖ → | π ;
176ϰ → | κ ;
177ϱ → | ρ ;
178ϲ → | σ ;
179Ϲ → | Σ; #U+03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL
180ϳ → j ;
181ϴ → | Θ ;
182ϵ → | ε ;
183µ → | μ ;
184# delete any trailing ' marks used for roundtripping
185← [Ππ] { \' } [Ss] ;
186← [Νν] { \' } $egammaLike ;
187::NFC (NFD) ;
188# MINIMAL FILTER GENERATED FOR: Latin-Greek/UNGEGN BACKWARD
189:: ([[[:Latin:][:Mn:][:Me:]] ['\:?]]) ;
190
191			]]></tRule>
192		</transform>
193	</transforms>
194</supplementalData>
195