// ***************************************************************************
// *
// *   Copyright (C) 1997-2002, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

pl {
    Version{ "1.0" }
    CollationElements { 
	    Version { "2" }
		Sequence { "&A < a\u0328 <<< A\u0328" 
                   "&C < c\u0301 <<< C\u0301" 
                   "&E < e\u0328 <<< E\u0328" 
                   "&L < \u0142 <<< \u0141"
                   "&N < n\u0301 <<< N\u0301"
                   "&O < o\u0301 <<< O\u0301"
                   "&S < s\u0301 <<< S\u0301" 
                   "&Z < z\u0301 <<< Z\u0301 < z\u0307 <<< Z\u0307" }
	}
    Countries { 
        PL { "Polska" }
    }
    DateTimeElements:intvector { 
        2,
        1,
    }
    DateTimePatterns { 
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE, d MMMM yyyy",
        "d MMMM yyyy",
        "yyyy-MM-dd",
        "yy-MM-dd",
        "{1} {0}",
    }
    DayAbbreviations { 
        "N",
        "Pn",
        "Wt",
        "\u015Ar",
        "Cz",
        "Pt",
        "So",
    }
    DayNames { 
        "niedziela",
        "poniedzia\u0142ek",
        "wtorek",
        "\u015Broda",
        "czwartek",
        "pi\u0105tek",
        "sobota",
    }
    Eras { 
        "p.n.e.",
        "n.e.",
    }
    Languages { 
        pl { "polski" }
    }
    LocaleID:int { 0x15 }
//    LocaleString { "pl" }
    MonthAbbreviations { 
        "sty",
        "lut",
        "mar",
        "kwi",
        "maj",
        "cze",
        "lip",
        "sie",
        "wrz",
        "pa\u017A",
        "lis",
        "gru",
    }
    MonthNames { 
        "stycze\u0144",
        "luty",
        "marzec",
        "kwiecie\u0144",
        "maj",
        "czerwiec",
        "lipiec",
        "sierpie\u0144",
        "wrzesie\u0144",
        "pa\u017Adziernik",
        "listopad",
        "grudzie\u0144",
    }
    NumberElements { 
        ",",
        "\u00A0",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
    }
//    ShortLanguage { "pol" }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }
//    LocaleScript{ 
//        "Latn",  // ISO 15924 Name 
//    }
    ExemplarCharacters { "[a-z \u00f3 \u0105 \u0119 \u0107 \u0144 \u015b \u017a \u0142 \u017c]" }
}
