// *******************************************************************************
// *
// *   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:]]) ;"
     }
}
