3eef43edd1
defaults to en, remove greek rules (incomplete data). X-SVN-Rev: 6653
388 lines
12 KiB
Plaintext
388 lines
12 KiB
Plaintext
// *******************************************************************************
|
|
// *
|
|
// * 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\n"
|
|
"::NFD (NFC) ; "
|
|
|
|
"# For modern Greek.\n"
|
|
|
|
"# Useful variables\n"
|
|
|
|
"$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\n"
|
|
|
|
"\; <> \? ;"
|
|
"\u00b7 <> \: ;"
|
|
|
|
"# Fix any ancient characters that creep in\n"
|
|
|
|
"\u0342 > \u0301 ;"
|
|
"\u0302 > \u0301 ;"
|
|
"\u0300 > \u0301 ;"
|
|
"$smooth > ;"
|
|
"$rough > ;"
|
|
"$iotasub > ;"
|
|
"\u037A > ;"
|
|
|
|
"# need to have these up here so the rules don't mask\n"
|
|
|
|
"\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\n"
|
|
|
|
"[^[: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\n"
|
|
|
|
"$vowel { \u03c5 } $softener <> v $under ; "
|
|
"$vowel { \u03c5 } <> f $under; "
|
|
"\u03c5 <> y ; "
|
|
"$vowel { \u03a5 } $softener <> V $under ; "
|
|
"$vowel { \u03a5 <> U $under ; "
|
|
"\u03a5 <> Y ; "
|
|
|
|
"# NORMAL\n"
|
|
|
|
"\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\n"
|
|
|
|
"# before a letter, initial\n"
|
|
"\u03c2 } $beforeLetter <> s $caron } $beforeLetter;"
|
|
"\u03c3 } $beforeLetter <> s } $beforeLetter;"
|
|
|
|
"# otherwise, after a letter = final\n"
|
|
"$afterLetter { \u03c3 <> $afterLetter { s $caron;"
|
|
"$afterLetter { \u03c2 <> $afterLetter { s ;"
|
|
|
|
"# otherwise (isolated) = initial\n"
|
|
"\u03c2 <> s $caron;"
|
|
"\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\n"
|
|
|
|
"$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\n"
|
|
|
|
"\u03d0 > | \u03b2 ;"
|
|
"\u03d1 > | \u03b8 ;"
|
|
"\u03d2 > | \u03a5 ;"
|
|
"\u03d5 > | \u03c6 ;"
|
|
"\u03d6 > | \u03c0 ;"
|
|
|
|
"\u03f0 > | \u03ba ;"
|
|
"\u03f1 > | \u03c1 ;"
|
|
"\u03f2 > | \u03c3 ;"
|
|
"\u03f3 > j ;"
|
|
"\u03f4 > | \u0398 ;"
|
|
"\u03f5 > | \u03b5 ;"
|
|
|
|
"# delete any trailing ' marks used for roundtripping\n"
|
|
|
|
" < [\u03a0\u03c0] { \' } [Ss] ;"
|
|
" < [\u039d\u03bd] { \' } $egammaLike ;"
|
|
|
|
"::NFC (NFD) ; "
|
|
}
|
|
}
|