// ******************************************************************************* // * // * Copyright (C) 1997-2001, International Business Machines // * Corporation and others. All Rights Reserved. // * // ******************************************************************************* el { Version { "1.0.1" } AmPmMarkers { "\u03C0\u03BC", "\u03BC\u03BC", } CollationElements { Version { "2.0" } Override { "FALSE" } Normalize { "TRUE" } Sequence { "[normalization on]" } } Countries { GR { "\u0395\u03BB\u03BB\u03AC\u03B4\u03B1" } } DateTimeElements { "2", "1", } DateTimePatterns { "h:mm:ss a z", "h:mm:ss a z", "h:mm:ss a", "h:mm a", "EEEE, d MMMM yyyy", "d MMMM yyyy", "d MMM yyyy", "d/M/yyyy", "{1} {0}", } DayAbbreviations { "\u039A\u03C5\u03C1", "\u0394\u03B5\u03C5", "\u03A4\u03C1\u03B9", "\u03A4\u03B5\u03C4", "\u03A0\u03B5\u03BC", "\u03A0\u03B1\u03C1", "\u03A3\u03B1\u03B2", } DayNames { "\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE", "\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1", "\u03A4\u03C1\u03AF\u03C4\u03B7", "\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7", "\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7", "\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE", "\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF", } Languages { el { "\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC" } } LocaleID { "08" } LocaleString { "el" } MonthAbbreviations { "\u0399\u03B1\u03BD", "\u03A6\u03B5\u03B2", "\u039C\u03B1\u03C1", "\u0391\u03C0\u03C1", "\u039C\u03B1\u03CA", "\u0399\u03BF\u03C5\u03BD", "\u0399\u03BF\u03C5\u03BB", "\u0391\u03C5\u03B3", "\u03A3\u03B5\u03C0", "\u039F\u03BA\u03C4", "\u039D\u03BF\u03B5", "\u0394\u03B5\u03BA", "", } MonthNames { "\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2", "\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2", "\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2", "\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2", "\u039C\u03AC\u03CA\u03BF\u03C2", "\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2", "\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2", "\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2", "\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2", "\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2", "\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2", "\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2", "", } NumberElements { ",", ".", ";", "%", "0", "#", "-", "E", "\u2030", "\u221E", "\uFFFD", } ShortLanguage { "ell" } localPatternChars { "GanjkHmsSEDFwWxhKzAe" } zoneStrings { { "Africa/Casablanca", "GMT", "GMT", "GMT", "GMT", } } LocaleScript{ "Grek" // ISO 15924 Name } //------------------------------------------------------------ // Rule Based Number Format Support //------------------------------------------------------------ /* * omit rules for Greek until we have complete and valid data. // * Spellout rules for Greek. Again in Greek we have to supply the words // * for the multiples of 100 because they can't be derived algorithmically. // * Also, the tens digit changes form when followed by a ones digit: an // * accent mark disappears from the tens digit and moves to the ones digit. // * Therefore, instead of using the [] notation, we actually have to use // * two separate rules for each multiple of 10 to show the two forms of // * the word. // Can someone supply me with information on negatives and decimals? // I'm also missing the word for zero. Can someone clue me in? SpelloutRules { "zero (incomplete data); \u03ad\u03bd\u03b1; \u03b4\u03cd\u03bf; \u03b4\u03c1\u03af\u03b1; " "\u03c4\u03ad\u03c3\u03c3\u03b5\u03c1\u03b1; \u03c0\u03ad\u03bd\u03c4\u03b5; " "\u03ad\u03be\u03b9; \u03b5\u03c0\u03c4\u03ac; \u03bf\u03ba\u03c4\u03ce; " "\u03b5\u03bd\u03bd\u03ad\u03b1;\n" "10: \u03b4\u03ad\u03ba\u03b1; " "\u03ad\u03bd\u03b4\u03b5\u03ba\u03b1; \u03b4\u03ce\u03b4\u03b5\u03ba\u03b1; " "\u03b4\u03b5\u03ba\u03b1>>;\n" "20: \u03b5\u03af\u03ba\u03bf\u03c3\u03b9; \u03b5\u03b9\u03ba\u03bf\u03c3\u03b9>>;\n" "30: \u03c4\u03c1\u03b9\u03ac\u03bd\u03c4\u03b1; \u03c4\u03c1\u03b9\u03b1\u03bd\u03c4\u03b1>>;\n" "40: \u03c3\u03b1\u03c1\u03ac\u03bd\u03c4\u03b1; \u03c3\u03b1\u03c1\u03b1\u03bd\u03c4\u03b1>>;\n" "50: \u03c0\u03b5\u03bd\u03ae\u03bd\u03c4\u03b1; \u03c0\u03b5\u03bd\u03b7\u03bd\u03c4\u03b1>>;\n" "60: \u03b5\u03be\u03ae\u03bd\u03c4\u03b1; \u03b5\u03be\u03b7\u03bd\u03c4\u03b1>>;\n" "70: \u03b5\u03b2\u03b4\u03bf\u03bc\u03ae\u03bd\u03c4\u03b1; " "\u03b5\u03b2\u03b4\u03bf\u03bc\u03b7\u03bd\u03c4\u03b1>>;\n" "80: \u03bf\u03b3\u03b4\u03cc\u03bd\u03c4\u03b1; \u03bf\u03b3\u03b4\u03bf\u03bd\u03c4\u03b1>>;\n" "90: \u03b5\u03bd\u03bd\u03b5\u03bd\u03ae\u03bd\u03c4\u03b1; " "\u03b5\u03bd\u03bd\u03b5\u03bd\u03b7\u03bd\u03c4\u03b1>>;\n" "100: \u03b5\u03ba\u03b1\u03c4\u03cc[\u03bd >>];\n" "200: \u03b4\u03b9\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "300: \u03c4\u03c1\u03b9\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "400: \u03c4\u03b5\u03c4\u03c1\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "500: \u03c0\u03b5\u03bd\u03c4\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "600: \u03b5\u03be\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "700: \u03b5\u03c0\u03c4\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "800: \u03bf\u03ba\u03c4\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "900: \u03b5\u03bd\u03bd\u03b9\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n" "1000: \u03c7\u03af\u03bb\u03b9\u03b1[ >>];\n" "2000: << \u03c7\u03af\u03bb\u03b9\u03b1[ >>];\n" "1,000,000: << \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03b9\u03cc\u03c1\u03b9\u03bf[ >>];\n" "1,000,000,000: << \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03b9\u03cc\u03c1\u03b9\u03bf[ >>];\n" "1,000,000,000,000: =#,##0=" } */ TransliterateLATIN { "UNGEGN", // Rules are predicated on running NFD first, and NFC afterwards ":: [\\u0000-\\u007F \\u00B7 [:Greek:] [:nonspacing mark:]] ;" "::NFKD (NFC) ; " // For modern Greek. // Useful variables "$lower = [:Ll:] ; " "$upper = [:Lu:] ; " "$accent = [:M:] ; " "$macron = \u0304 ;" "$ddot = \u0308 ;" "$lcgvowel = [\u03b1\u03b5\u03b7\u03b9\u03bf\u03c5\u03c9] ; " "$ucgvowel = [\u0391\u0395\u0397\u0399\u039f\u03a5\u03a9] ; " "$gvowel = [$lcgvowel $ucgvowel] ; " "$lcgvowelC = [$lcgvowel $accent] ; " "$evowel = [aeiouyAEIOUY];" "$vowel = [ $evowel $gvowel] ; " "$beforeLower = $accent * $lower ; " "$gammaLike = [\u0393\u039a\u039e\u03a7\u03b3\u03ba\u03be\u03c7\u03f0] ; " "$egammaLike = [GKXCgkxc] ; " "$smooth = \u0313 ; " "$rough = \u0314 ; " "$iotasub = \u0345 ; " "$softener = [\u03b2\u0392\u03b3\u0393\u03b4\u0394\u03b6\u0396\u03bb\u039b\u03bc\u039c\u03bd\u039d\u03c1\u03a1$gvowel] ;" "$under = \u0331;" "$caron = \u030C;" "$afterLetter = [:L:] [\\'[:M:]]* ;" "$beforeLetter = [\\'[:M:]]* [:L:] ;" // Fix punctuation "\\; <> \\? ;" "\u00b7 <> \\: ;" // Fix any ancient characters that creep in "\u0342 > \u0301 ;" "\u0302 > \u0301 ;" "\u0300 > \u0301 ;" "$smooth > ;" "$rough > ;" "$iotasub > ;" "\u037A > ;" // need to have these up here so the rules don't mask "\u03b7 <> i $under ;" "\u0397 <> I $under ;" "\u03a8 } $beforeLower <> Ps ; " "\u03a8 <> PS ; " "\u03c8 <> ps ; " "\u03c9 <> o $under ;" "\u03a9 <> O $under;" // at begining or end of word, convert mp to b "[^[:L:][:M:]] { \u03bc\u03c0 > b ; " "\u03bc\u03c0 } [^[:L:][:M:]] > b ; " "[^[:L:][:M:]] { [\u039c\u03bc][\u03a0\u03c0] > B ; " "[\u039c\u03bc][\u03a0\u03c0] } [^[:L:][:M:]] > B ;" "\u03bc\u03c0 < b ; " "\u039c\u03c0 < B { $beforeLower ; " "\u039c\u03a0 < B ; " // handle diphthongs ending with upsilon "$vowel { \u03c5 } $softener <> v $under ; " "$vowel { \u03c5 } <> f $under; " "\u03c5 <> y ; " "$vowel { \u03a5 } $softener <> V $under ; " "$vowel { \u03a5 <> U $under ; " "\u03a5 <> Y ; " // NORMAL "\u03b1 <> a ; " "\u0391 <> A ; " "\u03b2 <> v ; " "\u0392 <> V ; " "\u03b3 } $gammaLike <> n } $egammaLike ; " "\u03b3 <> g ; " "\u0393 } $gammaLike <> N } $egammaLike ; " "\u0393 <> G ; " "\u03b4 <> d ; " "\u0394 <> D ; " "\u03b5 <> e ; " "\u0395 <> E ; " "\u03b6 <> z ; " "\u0396 <> Z ; " "\u03b8 <> th ; " "\u0398 } $beforeLower <> Th ; " "\u0398 <> TH ; " "\u03b9 <> i ; " "\u0399 <> I ; " "\u03ba <> k ;" "\u039a <> K ; " "\u03bb <> l ; " "\u039b <> L ; " "\u03bc <> m ; " "\u039c <> M ; " "\u03bd } $gammaLike > n\\' ; " "\u03bd <> n ; " "\u039d } $gammaLike <> N\\' ; " "\u039d <> N ; " "\u03be <> x ; " "\u039e <> X ; " "\u03bf <> o ; " "\u039f <> O ; " "\u03c0 <> p ; " "\u03a0 <> P ; " "\u03c1 <> r ; " "\u03a1 <> R ; " "[Pp] { } \u03c2 > \\' ; " "[Pp] { } \u03c3 > \\' ;" // Caron means exception // before a letter, initial "\u03c2 } $beforeLetter <> s $under } $beforeLetter;" "\u03c3 } $beforeLetter <> s } $beforeLetter;" // otherwise, after a letter = final "$afterLetter { \u03c3 <> $afterLetter { s $under;" "$afterLetter { \u03c2 <> $afterLetter { s ;" // otherwise (isolated) = initial "\u03c2 <> s $under;" "\u03c3 <> s ;" "[Pp] { \u03a3 <> \\'S ; " "\u03a3 <> S ; " "\u03c4 <> t ; " "\u03a4 <> T ; " "\u03c6 <> f ; " "\u03a6 <> F ;" "\u03c7 <> ch ; " "\u03a7 } $beforeLower <> Ch ; " "\u03a7 <> CH ; " // Completeness for ASCII "$ignore = [[:Mark:]''] * ;" "| ch < h ;" "| k < c ;" "| i < j ;" "| k < q ;" "| y < u ;" "| y < w ;" "| Ch < H ;" "| K < C ;" "| I < J ;" "| K < Q ;" "| Y < W ;" "| Y < U ;" // Completeness for Greek "\u03d0 > | \u03b2 ;" "\u03d1 > | \u03b8 ;" "\u03d2 > | \u03a5 ;" "\u03d5 > | \u03c6 ;" "\u03d6 > | \u03c0 ;" "\u03f0 > | \u03ba ;" "\u03f1 > | \u03c1 ;" "\u03f2 > | \u03c3 ;" "\u03f3 > j ;" "\u03f4 > | \u0398 ;" "\u03f5 > | \u03b5 ;" "\u00B5 > | \u03BC ; " // delete any trailing ' marks used for roundtripping " < [\u03a0\u03c0] { \\' } [Ss] ;" " < [\u039d\u03bd] { \\' } $egammaLike ;" "::NFC (NFKD) ; " ":: ([\\u0000-\\u007F [:Latin:] [:nonspacing mark:]]) ;" } }