﻿// ***************************************************************************
// *
// * Copyright (C) 2012 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{"[q w x y]"}
    ExemplarCharacters{"[a ā b c č d e ē f g ģ h i ī j k ķ l ļ m n ņ o p r s š t u ū v 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 Ž]"}
    ExemplarCharactersPunctuation{"[\- ‐ – — , ; \: ! ? . … ' ‘ ’ ‚ \" “ ” „ ( ) \[ \] § @ * / \& # † ‡ ′ ″]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{" "}
                infinity{"∞"}
                list{";"}
                minusSign{"−"}
                nan{"nav skaitlis"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.65.46"}
    calendar{
        gregorian{
            AmPmMarkers{
                "priekšpusdienā",
                "pēcpusdienā",
            }
            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{
                Ed{"E, d."}
                H{"HH"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                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"}
                h{"h a"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y. 'g'."}
                yM{"MM.yyyy."}
                yMEd{"E, dd.MM.yyyy."}
                yMMM{"yyyy. 'g'. MMM"}
                yMMMEd{"E, 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.ē.",
                }
                wide{
                    "pirms mūsu ēras",
                    "mūsu ērā",
                }
            }
            fields{
                day{
                    dn{"diena"}
                    relative{
                        "-1"{"vakar"}
                        "-2"{"aizvakar"}
                        "0"{"šodien"}
                        "1"{"rīt"}
                        "2"{"parīt"}
                    }
                }
                dayperiod{
                    dn{"Dayperiod"}
                }
                era{
                    dn{"ēra"}
                }
                hour{
                    dn{"Stundas"}
                }
                minute{
                    dn{"Minūtes"}
                }
                month{
                    dn{"Mēnesis"}
                    relative{
                        "-1"{"Pagājušajā mēnesī"}
                        "0"{"Šomēnes"}
                        "1"{"Nākammēnes"}
                    }
                }
                second{
                    dn{"Sekundes"}
                }
                week{
                    dn{"Nedēļa"}
                    relative{
                        "-1"{"Pagājušajā nedēļā"}
                        "0"{"Šonedēļ"}
                        "1"{"Nākamnedēļ"}
                    }
                }
                weekday{
                    dn{"Nedēļas diena"}
                }
                year{
                    dn{"Gads"}
                    relative{
                        "-1"{"Pagājušajā gadā"}
                        "0"{"Šogad"}
                        "1"{"Nākamgad"}
                    }
                }
                zone{
                    dn{"Josla"}
                }
            }
            intervalFormats{
                H{
                    H{"HH-HH"}
                }
                Hm{
                    H{"HH:mm-HH:mm"}
                    m{"HH:mm-HH:mm"}
                }
                Hmv{
                    H{"HH:mm-HH:mm v"}
                    m{"HH:mm-HH:mm v"}
                }
                Hv{
                    H{"HH-HH v"}
                }
                M{
                    M{"MM.–MM."}
                }
                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, d. MMM – E, d. MMM"}
                }
                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.yyyy.–MM.yyyy."}
                    y{"MM.yyyy.–MM.yyyy."}
                }
                yMEd{
                    M{"E, dd.MM.yy. – E, dd.MM.yy."}
                    d{"E, dd.MM.yy. – E, dd.MM.yy."}
                    y{"E, dd.MM.yy. – E, 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{
                    abbreviated{
                        "janv.",
                        "febr.",
                        "marts",
                        "apr.",
                        "maijs",
                        "jūn.",
                        "jūl.",
                        "aug.",
                        "sept.",
                        "okt.",
                        "nov.",
                        "dec.",
                    }
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "C1",
                        "C2",
                        "C3",
                        "C4",
                    }
                    narrow{
                        "1.",
                        "2.",
                        "3.",
                        "4.",
                    }
                    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{"«"}
    }
    listPattern{
        standard{
            2{"{0} un {1}"}
            end{"{0} un {1}"}
        }
    }
    measurementSystemNames{
        UK{"Angļu"}
        US{"amerikāņu"}
        metric{"metriskā"}
    }
    units{
        day{
            one{"{0} diennakts"}
            other{"{0} diennaktis"}
            zero{"{0} diennaktis"}
        }
        day-future{
            0{"Pēc 0 dienām"}
            1{"Pēc 1 dienas"}
            one{"Pēc {0} dienas"}
            other{"Pēc {0} dienām"}
            zero{"Pēc {0} dienām"}
        }
        day-past{
            0{"Pirms 0 dienām"}
            1{"Pirms 1 dienas"}
            one{"Pirms {0} dienas"}
            other{"Pirms {0} dienām"}
            zero{"Pirms {0} dienām"}
        }
        hour{
            one{"{0} stunda"}
            other{"{0} stundas"}
            zero{"{0} stundas"}
        }
        hour-future{
            0{"Pēc 0 stundām"}
            1{"Pēc 1 stundas"}
            one{"Pēc {0} stundas"}
            other{"Pēc {0} stundām"}
            zero{"Pēc {0} stundām"}
        }
        hour-past{
            0{"Pirms 0 stundām"}
            1{"Pirms 1 stundas"}
            one{"Pirms {0} stundas"}
            other{"Pirms {0} stundām"}
            zero{"Pirms {0} stundām"}
        }
        minute{
            one{"{0} minūte"}
            other{"{0} minūtes"}
            zero{"{0} minūtes"}
        }
        minute-future{
            0{"Pēc 0 minūtēm"}
            1{"Pēc 1 minūtes"}
            one{"Pēc {0} minūtes"}
            other{"Pēc {0} minūtēm"}
            zero{"Pēc {0} minūtēm"}
        }
        minute-past{
            0{"Pirms 0 minūtēm"}
            1{"Pirms 1 minūtes"}
            one{"Pirms {0} minūtes"}
            other{"Pirms {0} minūtēm"}
            zero{"Pirms {0} minūtēm"}
        }
        month{
            one{"{0} mēnesis"}
            other{"{0} mēneši"}
            zero{"{0} mēneši"}
        }
        month-future{
            0{"Pēc 0 mēnešiem"}
            1{"Pēc 1 mēneša"}
            one{"Pēc {0} mēneša"}
            other{"Pēc {0} mēnešiem"}
            zero{"Pēc {0} mēnešiem"}
        }
        month-past{
            0{"Pirms 0 mēnešiem"}
            1{"Pirms 1 mēneša"}
            one{"Pirms {0} mēneša"}
            other{"Pirms {0} mēnešiem"}
            zero{"Pirms {0} mēnešiem"}
        }
        second{
            one{"{0} sekunde"}
            other{"{0} sekundes"}
            zero{"{0} sekundes"}
        }
        second-future{
            0{"Pēc 0 sekundēm"}
            1{"Pēc 1 sekundes"}
            one{"Pēc {0} sekundes"}
            other{"Pēc {0} sekundēm"}
            zero{"Pēc {0} sekundēm"}
        }
        second-past{
            0{"Pirms 0 sekundēm"}
            1{"Pirms 1 sekundes"}
            one{"Pirms {0} sekundes"}
            other{"Pirms {0} sekundēm"}
            zero{"Pirms {0} sekundēm"}
        }
        week{
            one{"{0} nedēļa"}
            other{"{0} nedēļas"}
            zero{"{0} nedēļas"}
        }
        week-future{
            0{"Pēc 0 nedēļām"}
            1{"Pēc 1 nedēļas"}
            one{"Pēc {0} nedēļas"}
            other{"Pēc {0} nedēļām"}
            zero{"Pēc {0} nedēļām"}
        }
        week-past{
            0{"Pirms 0 nedēļām"}
            1{"Pirms 1 nedēļas"}
            one{"Pirms {0} nedēļas"}
            other{"Pirms {0} nedēļām"}
            zero{"Pirms {0} nedēļām"}
        }
        year{
            one{"{0} gads"}
            other{"{0} gadi"}
            zero{"{0} gadi"}
        }
        year-future{
            0{"Pēc 0 gadiem"}
            1{"Pēc 1 gada"}
            one{"Pēc {0} gada"}
            other{"Pēc {0} gadiem"}
            zero{"Pēc {0} gadiem"}
        }
        year-past{
            0{"Pirms 0 gadiem"}
            1{"Pirms 1 gada"}
            one{"Pirms {0} gada"}
            other{"Pirms {0} gadiem"}
            zero{"Pirms {0} gadiem"}
        }
    }
    unitsShort{
        day{
            one{"{0} diena"}
            other{"{0} dienas"}
            zero{"{0} dienas"}
        }
        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."}
        }
    }
}
