﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/rm.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/rm.xml
 */
rm{
    AuxExemplarCharacters{"[á à ă â å ä ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú ù ŭ û ü ū ÿ]"}
    ExemplarCharacters{"[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.82.45"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, 'ils' d 'da' MMMM y G",
                "d 'da' MMMM y G",
                "dd-MM-y G",
                "dd-MM-yy GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                H{"H"}
                HHmm{"HH:mm"}
                HHmmss{"HH:mm:ss"}
                Hm{"H:mm"}
                M{"L"}
                MEd{"E, d.M."}
                MMM{"LLL"}
                MMMEd{"E d. MMM"}
                MMMMEd{"E d. MMMM"}
                MMMMd{"d. MMMM"}
                MMMMdd{"dd. MMMM"}
                MMMd{"d. MMM"}
                MMd{"d.MM."}
                MMdd{"dd.MM."}
                Md{"d.M."}
                d{"d"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y"}
                yM{"y-M"}
                yMEd{"E, y-M-d"}
                yMM{"MM.y"}
                yMMM{"MMM y"}
                yMMMEd{"E, d. MMM y"}
                yMMMM{"MMMM y"}
                yMMdd{"dd.MM.y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            intervalFormats{
                M{
                    M{"M.-M."}
                }
                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. - 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{"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.y - MM.y"}
                    y{"MM.y - MM.y"}
                }
                yMEd{
                    M{"E, dd.MM.y - E, dd.MM.y"}
                    d{"E, dd.MM.y - E, dd.MM.y"}
                    y{"E, dd.MM.y - E, dd.MM.y"}
                }
                yMMM{
                    M{"MMM-MMM y"}
                    y{"MMM y - MMM 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 – MM.y"}
                    y{"MM.y – MM.y"}
                }
                yMMMd{
                    M{"d. MMM - d. MMM y"}
                    d{"d.-d. MMM y"}
                    y{"d. MMM y - d. MMM y"}
                }
                yMd{
                    M{"dd.MM.y - dd.MM.y"}
                    d{"dd.MM.y - dd.MM.y"}
                    y{"dd.MM.y - dd.MM.y"}
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "am",
                "sm",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, 'ils' d 'da' MMMM y",
                "d 'da' MMMM y",
                "dd-MM-y",
                "dd-MM-yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                H{"H"}
                HHmm{"HH:mm"}
                HHmmss{"HH:mm:ss"}
                Hm{"H:mm"}
                M{"L"}
                MEd{"E, d.M."}
                MMM{"LLL"}
                MMMEd{"E d. MMM"}
                MMMMEd{"E d. MMMM"}
                MMMMd{"d. MMMM"}
                MMMMdd{"dd. MMMM"}
                MMMd{"d. MMM"}
                MMd{"d.MM."}
                MMdd{"dd.MM."}
                Md{"d.M."}
                d{"d"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y"}
                yM{"y-M"}
                yMEd{"E, y-M-d"}
                yMM{"MM.y"}
                yMMM{"MMM y"}
                yMMMEd{"E, d. MMM y"}
                yMMMM{"MMMM y"}
                yMMdd{"dd.MM.y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "du",
                        "gli",
                        "ma",
                        "me",
                        "gie",
                        "ve",
                        "so",
                    }
                    wide{
                        "dumengia",
                        "glindesdi",
                        "mardi",
                        "mesemna",
                        "gievgia",
                        "venderdi",
                        "sonda",
                    }
                }
                stand-alone{
                    narrow{
                        "D",
                        "G",
                        "M",
                        "M",
                        "G",
                        "V",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "av. Cr.",
                    "s. Cr.",
                }
                wide{
                    "avant Cristus",
                    "suenter Cristus",
                }
            }
            intervalFormats{
                M{
                    M{"M.-M."}
                }
                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. - 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{"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.y - MM.y"}
                    y{"MM.y - MM.y"}
                }
                yMEd{
                    M{"E, dd.MM.y - E, dd.MM.y"}
                    d{"E, dd.MM.y - E, dd.MM.y"}
                    y{"E, dd.MM.y - E, dd.MM.y"}
                }
                yMMM{
                    M{"MMM-MMM y"}
                    y{"MMM y - MMM 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 – MM.y"}
                    y{"MM.y – MM.y"}
                }
                yMMMd{
                    M{"d. MMM - d. MMM y"}
                    d{"d.-d. MMM y"}
                    y{"d. MMM y - d. MMM y"}
                }
                yMd{
                    M{"dd.MM.y - dd.MM.y"}
                    d{"dd.MM.y - dd.MM.y"}
                    y{"dd.MM.y - dd.MM.y"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "schan.",
                        "favr.",
                        "mars",
                        "avr.",
                        "matg",
                        "zercl.",
                        "fan.",
                        "avust",
                        "sett.",
                        "oct.",
                        "nov.",
                        "dec.",
                    }
                    wide{
                        "schaner",
                        "favrer",
                        "mars",
                        "avrigl",
                        "matg",
                        "zercladur",
                        "fanadur",
                        "avust",
                        "settember",
                        "october",
                        "november",
                        "december",
                    }
                }
                stand-alone{
                    narrow{
                        "S",
                        "F",
                        "M",
                        "A",
                        "M",
                        "Z",
                        "F",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    wide{
                        "1. quartal",
                        "2. quartal",
                        "3. quartal",
                        "4. quartal",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"›"}
        alternateQuotationStart{"‹"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"Tag"}
            relative{
                "-1"{"ier"}
                "-2"{"stersas"}
                "0"{"oz"}
                "1"{"damaun"}
                "2"{"puschmaun"}
            }
        }
        dayperiod{
            dn{"mesadad dal di"}
        }
        era{
            dn{"epoca"}
        }
        hour{
            dn{"ura"}
        }
        minute{
            dn{"minuta"}
        }
        month{
            dn{"mais"}
        }
        second{
            dn{"secunda"}
        }
        week{
            dn{"emna"}
        }
        weekday{
            dn{"di da l'emna"}
        }
        year{
            dn{"onn"}
        }
        zone{
            dn{"zona d'urari"}
        }
    }
    measurementSystemNames{
        US{"unitads americans"}
        metric{"unitads metrics"}
    }
    units{
        day{
            one{"{0} di"}
            other{"{0} dis"}
        }
        hour{
            one{"{0} ura"}
            other{"{0} uras"}
        }
        minute{
            one{"{0} minuta"}
            other{"{0} minutas"}
        }
        month{
            one{"{0} mais"}
            other{"{0} mais"}
        }
        second{
            one{"{0} secunda"}
            other{"{0} secundas"}
        }
        week{
            one{"{0} emna"}
            other{"{0} emnas"}
        }
        year{
            one{"{0} onn"}
            other{"{0} onns"}
        }
    }
    unitsShort{
        day{
            one{"{0} di"}
            other{"{0} dis"}
        }
        hour{
            one{"{0} ura"}
            other{"{0} uras"}
        }
        minute{
            one{"{0} min."}
            other{"{0} mins."}
        }
        month{
            one{"{0} mais"}
            other{"{0} mais"}
        }
        second{
            one{"{0} sec."}
            other{"{0} secs."}
        }
        week{
            one{"{0} emna"}
            other{"{0} emnas"}
        }
        year{
            one{"{0} onn"}
            other{"{0} onns"}
        }
    }
}
