﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/pl.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/pl.xml
 */
pl{
    AuxExemplarCharacters{"[q v x]"}
    ExemplarCharacters{"[a ą b c ć d e ę f g h i j k l ł m n ń o ó p r s ś t u w y z ź ż]"}
    ExemplarCharactersCurrency{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A Ą B C Ć D E Ę F G H I J K L Ł M N Ń O Ó P Q R S Ś T U V W X Y Z Ź Ż]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{" "}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.49.97"}
    calendar{
        buddhist{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM, y G",
                "d MMMM, y G",
                "d MMM y G",
                "dd.MM.yyyy G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.MM"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"d.MM"}
                Md{"d.MM"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                y{"y G"}
                yM{"MM.yyyy G"}
                yMEd{"EEE, d.MM.yyyy G"}
                yMMMEd{"EEE, d MMM y G"}
                yMMMM{"LLLL y G"}
                yMd{"d.MM.yyyy G"}
                yQ{"G y Q"}
                yQQQ{"G y QQQ"}
                yyMMM{"MMM y G"}
                yyQ{"Q y G"}
                yyyyMM{"MM.yyyy G"}
                yyyyMMMM{"LLLL y G"}
            }
        }
        gregorian{
            AmPmMarkers{
                "AM",
                "PM",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd.MM.yyyy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.MM"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"d.MM"}
                Md{"d.MM"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"MM.yyyy"}
                yMEd{"EEE, d.MM.yyyy"}
                yMMMEd{"EEE, d MMM y"}
                yMMMM{"LLLL y"}
                yQ{"yyyy Q"}
                yQQQ{"y QQQ"}
                yyMMM{"MMM yy"}
                yyQ{"Q yy"}
                yyyyMM{"MM.yyyy"}
                yyyyMMMM{"LLLL y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "niedz.",
                        "pon.",
                        "wt.",
                        "śr.",
                        "czw.",
                        "pt.",
                        "sob.",
                    }
                    wide{
                        "niedziela",
                        "poniedziałek",
                        "wtorek",
                        "środa",
                        "czwartek",
                        "piątek",
                        "sobota",
                    }
                }
                stand-alone{
                    narrow{
                        "N",
                        "P",
                        "W",
                        "Ś",
                        "C",
                        "P",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "p.n.e.",
                    "n.e.",
                }
                wide{
                    "p.n.e.",
                    "n.e.",
                }
            }
            fields{
                day{
                    dn{"Dzień"}
                    relative{
                        "-1"{"Wczoraj"}
                        "-2"{"Przedwczoraj"}
                        "-3"{"Trzy dni temu"}
                        "0"{"Dzisiaj"}
                        "1"{"Jutro"}
                        "2"{"Pojutrze"}
                        "3"{"Za trzy dni"}
                    }
                }
                dayperiod{
                    dn{"Dayperiod"}
                }
                era{
                    dn{"Era"}
                }
                hour{
                    dn{"Godzina"}
                }
                minute{
                    dn{"Minuta"}
                }
                month{
                    dn{"Miesiąc"}
                }
                second{
                    dn{"Sekunda"}
                }
                week{
                    dn{"Tydzień"}
                }
                weekday{
                    dn{"Dzień tygodnia"}
                }
                year{
                    dn{"Rok"}
                }
                zone{
                    dn{"Strefa"}
                }
            }
            intervalFormats{
                H{
                    H{"HH-HH"}
                    a{"HH-HH"}
                }
                Hm{
                    H{"HH:mm-HH:mm"}
                    a{"HH:mm-HH:mm"}
                    m{"HH:mm-HH:mm"}
                }
                Hmv{
                    H{"HH:mm-HH:mm v"}
                    a{"HH:mm-HH:mm v"}
                    m{"HH:mm-HH:mm v"}
                }
                Hv{
                    H{"HH-HH v"}
                    a{"HH-HH v"}
                }
                M{
                    M{"M-M"}
                }
                MEd{
                    M{"E, dd.MM - E, dd.MM"}
                    d{"E, dd.MM - E, dd.MM"}
                }
                MMM{
                    M{"LLL-LLL"}
                }
                MMMEd{
                    M{"E, d MMM - E, d MMM"}
                    d{"E, MM-d – E, MM-d"}
                }
                MMMM{
                    M{"LLLL-LLLL"}
                }
                MMMd{
                    M{"d MMM - d MMM"}
                    d{"d-d MMM"}
                }
                Md{
                    M{"dd.MM-dd.MM"}
                    d{"dd.MM-dd.MM"}
                }
                d{
                    d{"d-d"}
                }
                fallback{"{0} - {1}"}
                h{
                    a{"h a - h a"}
                    h{"h-h a"}
                }
                hm{
                    a{"h:mm a - h:mm a"}
                    h{"h:mm-h:mm a"}
                    m{"h:mm-h:mm a"}
                }
                hmv{
                    a{"h:mm a - h:mm a v"}
                    h{"h:mm-h:mm a v"}
                    m{"h:mm-h:mm a v"}
                }
                hv{
                    a{"h a - h a v"}
                    h{"h-h a v"}
                }
                y{
                    y{"y-y"}
                }
                yM{
                    M{"MM.yy-MM.yy"}
                    y{"MM.yy-MM.yy"}
                }
                yMEd{
                    M{"E, dd.MM.yyyy - E, dd.MM.yyyy"}
                    d{"E, dd.MM.yyyy - E, dd.MM.yyyy"}
                    y{"E, dd-MM-yyyy-E, dd-MM-yyyy"}
                }
                yMMM{
                    M{"LLL-LLL y"}
                    y{"LLL y - LLL y"}
                }
                yMMMEd{
                    M{"E, d MMM - E, d MMM y"}
                    d{"E, d - E, d MMM y"}
                    y{"E, d MMM y - E, d MMM y"}
                }
                yMMMM{
                    M{"MM.yyyy - MM.yyyy"}
                    y{"MM.yyyy - MM.yyyy"}
                }
                yMMMd{
                    M{"d MMM - d MMM y"}
                    d{"d-d MMM y"}
                    y{"d MMM y - d MMM y"}
                }
                yMd{
                    M{"dd.MM-dd.MM.yyyy"}
                    d{"dd-dd.MM.yy"}
                    y{"dd.MM.yyyy-dd.MM.yyyy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "sty",
                        "lut",
                        "mar",
                        "kwi",
                        "maj",
                        "cze",
                        "lip",
                        "sie",
                        "wrz",
                        "paź",
                        "lis",
                        "gru",
                    }
                    wide{
                        "stycznia",
                        "lutego",
                        "marca",
                        "kwietnia",
                        "maja",
                        "czerwca",
                        "lipca",
                        "sierpnia",
                        "września",
                        "października",
                        "listopada",
                        "grudnia",
                    }
                }
                stand-alone{
                    narrow{
                        "s",
                        "l",
                        "m",
                        "k",
                        "m",
                        "c",
                        "l",
                        "s",
                        "w",
                        "p",
                        "l",
                        "g",
                    }
                    wide{
                        "styczeń",
                        "luty",
                        "marzec",
                        "kwiecień",
                        "maj",
                        "czerwiec",
                        "lipiec",
                        "sierpień",
                        "wrzesień",
                        "październik",
                        "listopad",
                        "grudzień",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    wide{
                        "I kwartał",
                        "II kwartał",
                        "III kwartał",
                        "IV kwartał",
                    }
                }
                stand-alone{
                    abbreviated{
                        "1 kw.",
                        "2 kw.",
                        "3 kw.",
                        "4 kw.",
                    }
                }
            }
        }
        islamic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM, y G",
                "d MMMM, y G",
                "d MMM y G",
                "dd.MM.yyyy G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.MM"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"d.MM"}
                Md{"d.MM"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                yyMMM{"MMM yy G"}
                yyQ{"Q y G"}
                yyyy{"y G"}
                yyyyMM{"MM.yyyy G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMM{"LLLL y G"}
                yyyyQ{"G y Q"}
                yyyyQQQ{"G y QQQ"}
            }
        }
        japanese{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM, y G",
                "d MMMM, y G",
                "d MMM y G",
                "dd.MM.yyyy G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.MM"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"dd.MM"}
                Md{"d.MM"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                yyMMM{"MMM yy G"}
                yyQ{"Q y G"}
                yyyy{"y G"}
                yyyyM{"M.y G"}
                yyyyMEd{"EEE, dd.MM.y G"}
                yyyyMM{"MM.y G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMM{"LLLL y G"}
                yyyyQ{"G y Q"}
                yyyyQQQ{"G y QQQ"}
            }
        }
        roc{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM, y G",
                "d MMMM, y G",
                "d MMM y G",
                "dd.MM.yyyy G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.MM"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"dd.MM"}
                Md{"d.MM"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                yyMM{"MM/y G"}
                yyMMM{"MMM y G"}
                yyQ{"Q y G"}
                yyyy{"y G"}
                yyyyM{"M.y G"}
                yyyyMEd{"EEE, d.MM.y G"}
                yyyyMM{"MM.yyyy G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMM{"LLLL y G"}
                yyyyQ{"G y Q"}
                yyyyQQQ{"G y QQQ"}
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"„"}
        quotationEnd{"’"}
        quotationStart{"‘"}
    }
    listPattern{
        standard{
            2{"{0} i {1}"}
            end{"{0} i {1}"}
        }
    }
    measurementSystemNames{
        US{"anglosaski"}
        metric{"metryczny"}
    }
    units{
        day{
            few{"{0} dni"}
            one{"{0} dzień"}
            other{"{0} dni"}
        }
        hour{
            few{"{0} godziny"}
            one{"{0} godzina"}
            other{"{0} godzin"}
        }
        minute{
            few{"{0} minuty"}
            one{"{0} minuta"}
            other{"{0} minut"}
        }
        month{
            few{"{0} miesiące"}
            one{"{0} miesiąc"}
            other{"{0} miesięcy"}
        }
        second{
            few{"{0} sekundy"}
            one{"{0} sekunda"}
            other{"{0} sekund"}
        }
        week{
            few{"{0} tygodnie"}
            one{"{0} tydzień"}
            other{"{0} tygodni"}
        }
        year{
            few{"{0} lata"}
            one{"{0} rok"}
            other{"{0} lat"}
        }
    }
    unitsShort{
        day{
            few{"{0} dni"}
            one{"{0} dzień"}
            other{"{0} dni"}
        }
        hour{
            few{"{0} godz."}
            one{"{0} godz."}
            other{"{0} godz."}
        }
        minute{
            few{"{0} min."}
            one{"{0} min."}
            other{"{0} min."}
        }
        month{
            few{"{0} mies."}
            one{"{0} mies."}
            other{"{0} mies."}
        }
        second{
            few{"{0} sek."}
            one{"{0} sek."}
            other{"{0} sek."}
        }
        week{
            few{"{0} tyg."}
            one{"{0} tydz."}
            other{"{0} tyg."}
        }
        year{
            few{"{0} lata"}
            one{"{0} rok"}
            other{"{0} lat"}
        }
    }
}
