﻿// ***************************************************************************
// *
// * Copyright (C) 2011 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.59.68"}
    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{
                EEEd{"EEE, d."}
                Ed{"EEE, 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{"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.ē.",
                }
                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{"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{
                    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."}
        }
    }
}
