﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/lv.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/lv.xml
 */
lv{
    AuxExemplarCharacters{"[y q w x]"}
    ExemplarCharacters{"[a ā b c č d e ē f g ģ h i ī j k ķ l ļ m n ņ o p r s š t u ū v z ž]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        ",",
        " ",
        ";",
        "%",
        "0",
        "#",
        "−",
        "E",
        "‰",
        "∞",
        "nav skaitlis",
        "+",
    }
    NumberPatterns{
        "#,##0.###",
        "#,##0.00 ¤",
        "#,##0%",
        "#E0",
    }
    Version{"2.0.42.82"}
    calendar{
        gregorian{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, y. 'gada' d. MMMM",
                "y. 'gada' d. MMMM",
                "y. 'gada' d. MMM",
                "dd.MM.yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE, d."}
                Ed{"EEE, d."}
                H{"H"}
                HHmm{"HH:mm"}
                HHmmss{"HH:mm:ss"}
                Hm{"HH:mm"}
                M{"L"}
                MEd{"E, dd.MM."}
                MMM{"LLL"}
                MMMEd{"E, d. MMM"}
                MMMMEd{"E, d. MMMM"}
                MMMMd{"d. MMMM"}
                MMMd{"d. MMM"}
                Md{"dd.mm."}
                d{"d"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y. 'g'."}
                yM{"mm.yyyy."}
                yMEd{"EEE, dd.mm.yyyy."}
                yMMM{"yyyy. 'g'. MMM"}
                yMMMEd{"EEE, yyyy. 'g'. dd. MMM"}
                yMMMM{"y. 'g'. MMMM"}
                yQ{"Q yyyy"}
                yQQQ{"y QQQ"}
                yyQ{"Q yy"}
                yyyy{"y. 'g'."}
            }
            dayNames{
                format{
                    abbreviated{
                        "Sv",
                        "Pr",
                        "Ot",
                        "Tr",
                        "Ce",
                        "Pk",
                        "Se",
                    }
                    wide{
                        "svētdiena",
                        "pirmdiena",
                        "otrdiena",
                        "trešdiena",
                        "ceturtdiena",
                        "piektdiena",
                        "sestdiena",
                    }
                }
                stand-alone{
                    narrow{
                        "S",
                        "P",
                        "O",
                        "T",
                        "C",
                        "P",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "p.m.ē.",
                    "m.ē.",
                }
                narrow{
                    "p.m.ē.",
                    "m.ē.",
                }
                wide{
                    "pirms mūsu ēras",
                    "mūsu ērā",
                }
            }
            fields{
                day{
                    dn{"diena"}
                    relative{
                        "-1"{"vakar"}
                        "-2"{"aizvakar"}
                        "-3"{"aizaizvakar"}
                        "0"{"šodien"}
                        "1"{"rīt"}
                        "2"{"parīt"}
                        "3"{"aizparīt"}
                    }
                }
                dayperiod{
                    dn{"Dayperiod"}
                }
                era{
                    dn{"ēra"}
                }
                hour{
                    dn{"Stundas"}
                }
                minute{
                    dn{"Minūtes"}
                }
                month{
                    dn{"Mēnesis"}
                }
                second{
                    dn{"Sekundes"}
                }
                week{
                    dn{"Nedēļa"}
                }
                weekday{
                    dn{"Nedēļas diena"}
                }
                year{
                    dn{"Gads"}
                }
                zone{
                    dn{"Josla"}
                }
            }
            intervalFormats{
                M{
                    M{"mm.–mm."}
                }
                MEd{
                    M{"E, dd.MM - E, dd.MM"}
                    d{"E, dd.MM – E, dd.MM"}
                }
                MMM{
                    M{"MMM-MMM"}
                }
                MMMEd{
                    M{"E, d. MMM - E, d. MMM"}
                    d{"E, d. MMM – E, d. MMM"}
                }
                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{"HH–HH"}
                    h{"HH-HH"}
                }
                hm{
                    a{"HH:mm–HH:mm"}
                    h{"HH:mm-HH:mm"}
                    m{"HH:mm-HH:mm"}
                }
                hmv{
                    a{"HH:mm–HH:mm v"}
                    h{"HH:mm-HH:mm v"}
                    m{"HH:mm-HH:mm v"}
                }
                hv{
                    a{"HH–HH v"}
                    h{"HH-HH v"}
                }
                y{
                    y{"y.–y."}
                }
                yM{
                    M{"mm.yyyy.–mm.yyyy."}
                    y{"mm.yyyy.–mm.yyyy."}
                }
                yMEd{
                    M{"EEE, dd.mm.yy. – EEE, dd.mm.yy."}
                    d{"EEE, dd.mm.yy. – EEE, dd.mm.yy."}
                    y{"EEE, dd.mm.yy. – EEE, dd.mm.yy."}
                }
                yMMM{
                    M{"y. 'gada' MMM-MMM"}
                    y{"y. 'gada' MMM - y. 'gada' MMM"}
                }
                yMMMEd{
                    M{"E, y. 'gada' d. MMM - E, y. 'gada' d. MMM"}
                    d{"E, y. 'gada' d. MMM - E, y. 'gada' d. MMM"}
                    y{"E, y. 'gada' d. MMM - E, y. 'gada' d. MMM"}
                }
                yMMMM{
                    M{"mm.yyyy.–mm.yyyy."}
                    y{"mm.yyyy.–mm.yyyy."}
                }
                yMMMd{
                    M{"y. 'gada' d. MMM - d. MMM"}
                    d{"y. 'gada' d.-d. MMM"}
                    y{"y. 'gada' d. MMM - y. 'gada' d. MMM"}
                }
                yMd{
                    M{"dd.mm.yy.–dd.mm.yy."}
                    d{"dd.mm.yyyy.–dd.mm.yyyy."}
                    y{"dd.mm.yy.–dd.mm.yy."}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "janv.",
                        "febr.",
                        "marts",
                        "apr.",
                        "maijs",
                        "jūn.",
                        "jūl.",
                        "aug.",
                        "sept.",
                        "okt.",
                        "nov.",
                        "dec.",
                    }
                    wide{
                        "janvāris",
                        "februāris",
                        "marts",
                        "aprīlis",
                        "maijs",
                        "jūnijs",
                        "jūlijs",
                        "augusts",
                        "septembris",
                        "oktobris",
                        "novembris",
                        "decembris",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "C1",
                        "C2",
                        "C3",
                        "C4",
                    }
                    wide{
                        "1. ceturksnis",
                        "2. ceturksnis",
                        "3. ceturksnis",
                        "4. ceturksnis",
                    }
                }
                stand-alone{
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
            }
        }
        hebrew{
            monthNames{
                format{
                    wide{
                        "tišri",
                        "hešvans",
                        "kisļevs",
                        "tevets",
                        "ševats",
                        "1. adars",
                        "adars",
                        "nisans",
                        "ijars",
                        "sivans",
                        "tamuzs",
                        "avs",
                        "eluls",
                        "2. adars",
                    }
                }
            }
        }
        islamic{
            monthNames{
                format{
                    wide{
                        "muharams",
                        "safars",
                        "1. rabī",
                        "2. rabī",
                        "1. džumādā",
                        "2. džumādā",
                        "radžabs",
                        "šabans",
                        "ramadāns",
                        "šauvals",
                        "du al-kidā",
                        "du al-hidžā",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    measurementSystemNames{
        US{"britu"}
        metric{"metriskā"}
    }
    units{
        day{
            one{"{0} diena"}
            other{"{0} dienas"}
            zero{"{0} dienas"}
        }
        hour{
            one{"{0} stunda"}
            other{"{0} stundas"}
            zero{"{0} stundas"}
        }
        minute{
            one{"{0} minūte"}
            other{"{0} minūtes"}
            zero{"{0} minūtes"}
        }
        month{
            one{"{0} mēnesis"}
            other{"{0} mēneši"}
            zero{"{0} mēneši"}
        }
        second{
            one{"{0} sekunde"}
            other{"{0} sekundes"}
            zero{"{0} sekundes"}
        }
        week{
            one{"{0} nedēļa"}
            other{"{0} nedēļas"}
            zero{"{0} nedēļas"}
        }
        year{
            one{"{0} gads"}
            other{"{0} gadi"}
            zero{"{0} gadi"}
        }
    }
    unitsShort{
        day{
            one{"{0} d"}
            other{"{0} d"}
            zero{"{0} d"}
        }
        hour{
            one{"{0} h"}
            other{"{0} h"}
            zero{"{0} h"}
        }
        minute{
            one{"{0} min"}
            other{"{0} min"}
            zero{"{0} min"}
        }
        month{
            one{"{0} mēn"}
            other{"{0} mēn"}
            zero{"{0} mēn"}
        }
        second{
            one{"{0} s"}
            other{"{0} s"}
            zero{"{0} s"}
        }
        week{
            one{"{0} ned"}
            other{"{0} ned"}
            zero{"{0} ned"}
        }
        year{
            one{"{0} g"}
            other{"{0} g"}
            zero{"{0} g"}
        }
    }
}
