﻿// ***************************************************************************
// *
// * 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/af.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/af.xml
 */
af{
    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]"}
    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]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{" "}
                infinity{"∞"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.65.46"}
    calendar{
        gregorian{
            AmPmMarkers{
                "vm.",
                "nm.",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE dd MMMM y",
                "dd MMMM y",
                "dd MMM y",
                "yyyy-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, y-M-d"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yMMMd{"d MMM y"}
                yMd{"M/d/y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "So",
                        "Ma",
                        "Di",
                        "Wo",
                        "Do",
                        "Vr",
                        "Sa",
                    }
                    wide{
                        "Sondag",
                        "Maandag",
                        "Dinsdag",
                        "Woensdag",
                        "Donderdag",
                        "Vrydag",
                        "Saterdag",
                    }
                }
                stand-alone{
                    narrow{
                        "S",
                        "M",
                        "D",
                        "W",
                        "D",
                        "V",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "v.C.",
                    "n.C.",
                }
                wide{
                    "voor Christus",
                    "na Christus",
                }
            }
            fields{
                day{
                    dn{"Dag"}
                    relative{
                        "-1"{"Gister"}
                        "-2"{"Die dag voor gister"}
                        "0"{"Vandag"}
                        "1"{"Môre"}
                        "2"{"Die dag na môre"}
                    }
                }
                dayperiod{
                    dn{"AM/PM"}
                }
                era{
                    dn{"Era"}
                }
                hour{
                    dn{"Uur"}
                }
                minute{
                    dn{"Minuut"}
                }
                month{
                    dn{"Maand"}
                    relative{
                        "-1"{"Verlede maand"}
                        "0"{"Vandeesmaand"}
                        "1"{"Volgende maand"}
                    }
                }
                second{
                    dn{"Sekonde"}
                }
                week{
                    dn{"Week"}
                    relative{
                        "-1"{"Verlede week"}
                        "0"{"Vandeesweek"}
                        "1"{"Volgende week"}
                    }
                }
                weekday{
                    dn{"Weeksdag"}
                }
                year{
                    dn{"Jaar"}
                    relative{
                        "-1"{"Verlede jaar"}
                        "0"{"Hierdie jaar"}
                        "1"{"Volgende jaar"}
                    }
                }
                zone{
                    dn{"Tydsone"}
                }
            }
            intervalFormats{
                M{
                    M{"M–M"}
                }
                MEd{
                    M{"E, M/d – E, M/d"}
                    d{"E, M/d – E, M/d"}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E, MMM d – E, MMM d"}
                    d{"E, MMM d – E, MMM d"}
                }
                MMMd{
                    M{"MMM d – MMM d"}
                    d{"MMM d–d"}
                }
                Md{
                    M{"M/d – M/d"}
                    d{"M/d – M/d"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0} – {1}"}
                h{
                    h{"h–h a"}
                }
                hm{
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    h{"h–h a v"}
                }
                y{
                    y{"y–y"}
                }
                yM{
                    M{"M/yy – M/yy"}
                    y{"M/yy – M/yy"}
                }
                yMEd{
                    M{"E, M/d/yy – E, M/d/yy"}
                    d{"E, M/d/yy – E, M/d/yy"}
                    y{"E, M/d/yy – E, M/d/yy"}
                }
                yMMM{
                    M{"MMM–MMM y"}
                    y{"MMM y – MMM y"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM, y"}
                    d{"E, d MMM – E, d MMM, y"}
                    y{"E, MMM d, y – E, MMM d, y"}
                }
                yMMMM{
                    M{"MMMM–MMMM y"}
                    y{"MMMM y – MMMM y"}
                }
                yMMMd{
                    M{"MMM d – MMM d, y"}
                    d{"d–d MMM, y"}
                    y{"d MMM, y – d MMM, y"}
                }
                yMd{
                    M{"M/d/yy – M/d/yy"}
                    d{"M/d/yy – M/d/yy"}
                    y{"M/d/yy – M/d/yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Des",
                    }
                    wide{
                        "Januarie",
                        "Februarie",
                        "Maart",
                        "April",
                        "Mei",
                        "Junie",
                        "Julie",
                        "Augustus",
                        "September",
                        "Oktober",
                        "November",
                        "Desember",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                    wide{
                        "Januarie",
                        "Februarie",
                        "Maart",
                        "April",
                        "Mei",
                        "Junie",
                        "Julie",
                        "Augustus",
                        "September",
                        "Oktober",
                        "November",
                        "Desember",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1ste kwartaal",
                        "2de kwartaal",
                        "3de kwartaal",
                        "4de kwartaal",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    listPattern{
        standard{
            2{"{0} en {1}"}
            end{"{0} en {1}"}
        }
    }
    measurementSystemNames{
        UK{"VK"}
        US{"VSA"}
        metric{"Metriek"}
    }
    units{
        day{
            one{"{0} dag"}
            other{"{0} dae"}
        }
        day-future{
            0{"In 0 dae"}
            1{"In 1 dag"}
            other{"In {0} dae"}
        }
        day-past{
            0{"0 dae gelede"}
            1{"1 dag gelede"}
            other{"{0} dae gelede"}
        }
        hour{
            0{"0 uur"}
            1{"1 uur"}
            other{"{0} uur"}
        }
        hour-future{
            0{"In 0 uur"}
            1{"In 1 uur"}
            other{"In {0} uur"}
        }
        hour-past{
            0{"0 uur gelede"}
            1{"1 uur gelede"}
            other{"{0} uur gelede"}
        }
        minute{
            0{"0 minute"}
            1{"1 minuut"}
            other{"{0} minute"}
        }
        minute-future{
            0{"In 0 minute"}
            1{"In 1 minuut"}
            other{"In {0} minute"}
        }
        minute-past{
            0{"0 minute gelede"}
            1{"1 minuut gelede"}
            other{"{0} minute gelede"}
        }
        month{
            0{"0 maande"}
            1{"1 maand"}
            other{"{0} maande"}
        }
        month-future{
            0{"In 0 maande"}
            1{"In 1 maand"}
            other{"In {0} maande"}
        }
        month-past{
            0{"0 maande gelede"}
            1{"1 maand gelede"}
            other{"{0} maande gelede"}
        }
        second{
            0{"0 sekondes"}
            1{"1 sekonde"}
            other{"{0} sekondes"}
        }
        second-future{
            0{"In 0 sekondes"}
            1{"In 1 sekond"}
            other{"In {0} sekondes"}
        }
        second-past{
            0{"0 sekondes gelede"}
            1{"1 sekonde gelede"}
            other{"{0} sekondes gelede"}
        }
        week{
            0{"0 weke"}
            1{"1 week"}
            one{"{0} week"}
            other{"{0} weke"}
        }
        week-future{
            0{"In 0 weke"}
            1{"In 1 week"}
            other{"In {0} weke"}
        }
        week-past{
            0{"0 weke gelede"}
            1{"1 week gelede"}
            other{"{0} weke gelede"}
        }
        year{
            0{"0 jaar"}
            1{"1 jaar"}
            other{"{0} jaar"}
        }
        year-future{
            0{"In 0 jaar"}
            1{"In 1 jaar"}
            other{"In {0} jaar"}
        }
        year-past{
            0{"0 jaar gelede"}
            1{"1 jaar gelede"}
            other{"{0} jaar gelede"}
        }
    }
    unitsShort{
        day{
            0{"0 dae"}
            1{"1 dag"}
            other{"{0} dae"}
        }
        hour{
            0{"0 uur"}
            1{"1 uur"}
            other{"{0} uur"}
        }
        minute{
            0{"0 min"}
            1{"1 min"}
            other{"{0} min"}
        }
        month{
            0{"0 mnde"}
            1{"1 mnd"}
            other{"{0} mnde"}
        }
        second{
            0{"0 sek"}
            1{"1 sek"}
            other{"{0} sek"}
        }
        week{
            0{"0 weke"}
            1{"1 week"}
            other{"{0} weke"}
        }
        year{
            0{"0 jr"}
            1{"1 jr"}
            other{"{0} jr"}
        }
    }
}
