﻿// ***************************************************************************
// *
// * 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.58.79"}
    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"}
                        "-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"}
                    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."}
        }
    }
}
