| <?xml version="1.0" encoding="UTF-8" ?> |
| <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd"> |
| <!-- |
| Copyright © 1991-2013 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="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"> |
| <tRule><![CDATA[ |
| # For modern Greek, based on UNGEGN rules. |
| # Rules are predicated on running NFD first, and NFC afterwards |
| # MINIMAL FILTER GENERATED FOR: Greek-Latin/UNGEGN |
| # WARNING: need to add accents to both filters ### |
| # :: [́̄̆̈;µ·ÀÂÈÊÌÎÒÔÙÛàâèêìîòôùûĈ-ĉĜ-ĝĤ-ĥĴ-ĵŜ-ŝŴ-ŷǛ-ǜǸ-ǹ̀̂̓-̔̀͂-̓ͅͺ;Ά-ΊΌΎ-ΡΣ-ώϐ-ϖϰ-ϵЀЍѐѝḔ-ḕṐ-ṑẀ-ẁẐ-ẑẤ-ậẰ-ằẾ-ệỐ-ộỜ-ờỪ-ừỲ-ỳἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼι῁-ῄῆ-῍῏-ΐῖ-Ί῝῟-῭ῲ-ῴῶ-ῼΩϷ-\u07FBϹ] ; |
| :: [[[:Greek:][:Mn:][:Me:]] [\:-;?·;·]] ; |
| ::NFD (NFC) ; |
| # Useful variables |
| $lower = [[:latin:][:greek:] & [:Ll:]] ; |
| $upper = [[:latin:][:greek:] & [:Lu:]] ; |
| $accent = [[:Mn:][:Me:]] ; |
| $macron = ̄ ; |
| $ddot = ̈ ; |
| $lcgvowel = [αεηιουω] ; |
| $ucgvowel = [ΑΕΗΙΟΥΩ] ; |
| $gvowel = [$lcgvowel $ucgvowel] ; |
| $lcgvowelC = [$lcgvowel $accent] ; |
| $evowel = [aeiouyAEIOUY]; |
| $vowel = [ $evowel $gvowel] ; |
| $beforeLower = $accent * $lower ; |
| $gammaLike = [ΓΚΞΧγκξχϰ] ; |
| $egammaLike = [GKXCgkxc] ; |
| $smooth = ̓ ; |
| $rough = ̔ ; |
| $iotasub = ͅ ; |
| $softener = [βΒγΓδΔζΖλΛμΜνΝρΡ$gvowel] ; |
| $under = ̱; |
| $caron = ̌; |
| $afterLetter = [:L:] [\'$accent]* ; |
| $beforeLetter = [\'$accent]* [:L:] ; |
| # Fix punctuation |
| # preserve orginal |
| \: ↔ \: $under ; |
| \? ↔ \? $under ; |
| \; ↔ \? ; |
| · ↔ \: ; |
| # Fix any ancient characters that creep in |
| ͂ → ́ ; |
| ̂ → ́ ; |
| ̀ → ́ ; |
| $smooth → ; |
| $rough → ; |
| $iotasub → ; |
| ͺ → ; |
| # need to have these up here so the rules don't mask |
| η ↔ i $under ; |
| Η ↔ I $under ; |
| Ψ } $beforeLower ↔ Ps ; |
| Ψ ↔ PS ; |
| ψ ↔ ps ; |
| ω ↔ o $under ; |
| Ω ↔ O $under; |
| # at begining or end of word, convert mp to b |
| [^[:L:]$accent] { μπ → b ; |
| μπ } [^[:L:]$accent] → b ; |
| [^[:L:]$accent] { [Μμ][Ππ] → B ; |
| [Μμ][Ππ] } [^[:L:]$accent] → B ; |
| μπ ← b ; |
| Μπ ← B } $beforeLower ; |
| ΜΠ ← B ; |
| # handle diphthongs ending with upsilon |
| ου ↔ ou ; |
| ΟΥ ↔ OU ; |
| Ου ↔ Ou ; |
| οΥ ↔ oU ; |
| $fmaker = [aeiAEI] $under ? ; |
| $shiftForwardVowels = [[:Mn:]-[̈]]; # note: a diaeresis keeps the items separate |
| $fmaker { υ ( $shiftForwardVowels )* } $softener → $1 v $under ; |
| υ $1 ← ( $shiftForwardVowels )* v $under ; |
| $fmaker { υ ( $shiftForwardVowels )* } → $1 f $under; |
| υ $1 ← ( $shiftForwardVowels )* f $under ; |
| $fmaker { Υ } $softener ↔ V $under ; |
| $fmaker { Υ ↔ U $under ; |
| υ ↔ y ; |
| Υ ↔ Y ; |
| # NORMAL |
| α ↔ a ; |
| Α ↔ A ; |
| β ↔ v ; |
| Β ↔ V ; |
| γ } $gammaLike ↔ n } $egammaLike ; |
| γ ↔ g ; |
| Γ } $gammaLike ↔ N } $egammaLike ; |
| Γ ↔ G ; |
| δ ↔ d ; |
| Δ ↔ D ; |
| ε ↔ e ; |
| Ε ↔ E ; |
| ζ ↔ z ; |
| Ζ ↔ Z ; |
| θ ↔ th ; |
| Θ } $beforeLower ↔ Th ; |
| Θ ↔ TH ; |
| ι ↔ i ; |
| Ι ↔ I ; |
| κ ↔ k ; |
| Κ ↔ K ; |
| λ ↔ l ; |
| Λ ↔ L ; |
| μ ↔ m ; |
| Μ ↔ M ; |
| ν } $gammaLike → n\' ; |
| ν ↔ n ; |
| Ν } $gammaLike ↔ N\' ; |
| Ν ↔ N ; |
| ξ ↔ x ; |
| Ξ ↔ X ; |
| ο ↔ o ; |
| Ο ↔ O ; |
| π ↔ p ; |
| Π ↔ P ; |
| ρ ↔ r ; |
| Ρ ↔ R ; |
| # insert separator before things that turn into s |
| [Pp] { } [ςσΣϷϸϺϻ] → \' ; |
| # special S variants |
| Ϸ ↔ Š ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L |
| ϸ ↔ š ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L |
| Ϻ ↔ Ŝ ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L |
| ϻ ↔ ŝ ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L |
| # Caron means exception |
| # before a letter, initial |
| ς } $beforeLetter ↔ s $under } $beforeLetter; |
| σ } $beforeLetter ↔ s } $beforeLetter; |
| # otherwise, after a letter = final |
| $afterLetter { σ ↔ $afterLetter { s $under; |
| $afterLetter { ς ↔ $afterLetter { s ; |
| # otherwise (isolated) = initial |
| ς ↔ s $under; |
| σ ↔ s ; |
| # [Pp] { Σ ↔ \'S ; |
| Σ ↔ S ; |
| τ ↔ t ; |
| Τ ↔ T ; |
| φ ↔ f ; |
| Φ ↔ F ; |
| χ ↔ ch ; |
| Χ } $beforeLower ↔ Ch ; |
| Χ ↔ CH ; |
| # Completeness for ASCII |
| # $ignore = [[:Mark:]''] * ; |
| | ch ← h ; |
| | k ← c ; |
| | i ← j ; |
| | k ← q ; |
| | b ← u } $vowel ; |
| | b ← w } $vowel ; |
| | y ← u ; |
| | y ← w ; |
| | Ch ← H ; |
| | K ← C ; |
| | I ← J ; |
| | K ← Q ; |
| | B ← W } $vowel ; |
| | B ← U } $vowel ; |
| | Y ← W ; |
| | Y ← U ; |
| # Completeness for Greek |
| ϐ → | β ; |
| ϑ → | θ ; |
| ϒ → | Υ ; |
| ϕ → | φ ; |
| ϖ → | π ; |
| ϰ → | κ ; |
| ϱ → | ρ ; |
| ϲ → | σ ; |
| Ϲ → | Σ; #U+03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL |
| ϳ → j ; |
| ϴ → | Θ ; |
| ϵ → | ε ; |
| µ → | μ ; |
| # delete any trailing ' marks used for roundtripping |
| ← [Ππ] { \' } [Ss] ; |
| ← [Νν] { \' } $egammaLike ; |
| ::NFC (NFD) ; |
| # MINIMAL FILTER GENERATED FOR: Latin-Greek/UNGEGN BACKWARD |
| :: ([[[:Latin:][:Mn:][:Me:]] ['\:?]]) ; |
| |
| ]]></tRule> |
| </transform> |
| </transforms> |
| </supplementalData> |