﻿// ***************************************************************************
// *
// * Copyright (C) 2007 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/te.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/te.xml
 */
te{
    AuxExemplarCharacters{"[\u200C \u200D ౦-౯]"}
    Countries{
        BR{"బ్రజిల్"}
        CN{"చైనా"}
        DE{"ఙర్మని"}
        FR{"ఫ్రాన్స్‌"}
        GB{"బ్రిటన్"}
        IN{"భారత దేళం"}
        IT{"ఇటలి"}
        JP{"జపాసు"}
        RU{"రష్య"}
        US{"ఐక్య రాష్ట్ర అమెరిక"}
    }
    Currencies{
        BRL{
            "రి$",
            "బ్రజిల్ దేశ రియాల్",
        }
        CNY{
            "యు",
            "చైనా  దేశ యువాన్ రెన్‌మిన్‌బి",
        }
        EUR{
            "€",
            "యురొ",
        }
        GBP{
            "UK£",
            "బ్ిటిష్ పౌన్డ స్టెర్లిగ్",
        }
        INR{
            "రూ.",
            "రూపాయి",
        }
        JPY{
            "JP¥",
            "జపాను దేశ యెస్",
        }
        RUB{
            "రూబల్",
            "రష్య దేశ రూబల్",
        }
        USD{
            "US$",
            "ఐక్య రాష్ట్ర అమెరిక డాలర్",
        }
    }
    ExemplarCharacters{"[అ-ఋ ౠ ఌ ౡ ఎ-ఐ ఒ-న ప-ళ వ-హ ఁ-ః ్ ా-ౄ ె-ై ొ-ౌ ౕ ౖ]"}
    Languages{
        ar{"అరబిక్"}
        de{"ఙర్మన్"}
        en{"ఆంగ్లం"}
        es{"స్పానిష్"}
        fr{"ఫ్రెంచ్"}
        hi{"హిందీ"}
        it{"ఇటాలియన్ భాష"}
        ja{"జపాను భాష"}
        pt{"పొర్చుగల్ భాష"}
        ru{"రష్యన్ భాష"}
        te{"తెలుగు"}
        zh{"చైనా భాష"}
    }
    LocaleScript{
        "Telu",
    }
    NumberElements{
        ".",
        ",",
        ";",
        "%",
        "౦",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    NumberPatterns{
        "#,##,##0.###",
        "¤ #,##,##0.00",
        "#,##,##0%",
        "#E0",
    }
    Scripts{
        Arab{"అరబ్బి లిపి"}
        Cyrl{"సిరిలిక్ లిపి"}
        Hans{"సరళమైన చైనా లిపి"}
        Hant{"ప్రాచీన చైనా లిపి"}
        Latn{"లాటిన్"}
        Telu{"తెలుగు"}
    }
    Variants{
        1901{"ప్రాచీన ఙర్మన వర్ణక్రమం"}
        1996{"1996 ఙర్మన వర్ణక్రమం"}
        REVISED{"సవరించబడిన వర్ణక్రమం"}
    }
    Version{"1.58"}
    calendar{
        gregorian{
            AmPmMarkers{
                "పూర్వాహ్నం",
                "అపరాహ్నం",
            }
            availableFormats{
                MMMMd{"d MMMM"}
                MMdd{"dd-MM"}
                yyQ{"Q yy"}
                yyyyMM{"MM-yyyy"}
                yyyyMMMM{"MMMM yyyy"}
            }
            dayNames{
                format{
                    abbreviated{
                        "ఆది",
                        "సోమ",
                        "మంగళ",
                        "బుధ",
                        "గురు",
                        "శుక్ర",
                        "శని",
                    }
                    wide{
                        "ఆదివారం",
                        "సోమవారం",
                        "మంగళవారం",
                        "బుధవారం",
                        "గురువారం",
                        "శుక్రవారం",
                        "శనివారం",
                    }
                }
                stand-alone{
                    narrow{
                        "ఆ",
                        "2",
                        "సొ",
                        "భు",
                        "గు",
                        "శు",
                        "శ",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "జనవరి",
                        "ఫిబ్రవరి",
                        "మార్చి",
                        "ఏప్రిల్",
                        "మే",
                        "జూన్",
                        "జూలై",
                        "ఆగస్టు",
                        "సెప్టెంబర్",
                        "అక్టోబర్",
                        "నవంబర్",
                        "డిసెంబర్",
                    }
                    wide{
                        "జనవరి",
                        "ఫిబ్రవరి",
                        "మార్చి",
                        "ఏప్రిల్",
                        "మే",
                        "జూన్",
                        "జూలై",
                        "ఆగస్టు",
                        "సెప్టెంబర్",
                        "అక్టోబర్",
                        "నవంబర్",
                        "డిసెంబర్",
                    }
                }
                stand-alone{
                    narrow{
                        "జ",
                        "ఫి",
                        "మ",
                        "ఎ",
                        "మె",
                        "జు",
                        "జు",
                        "ఆ",
                        "సె",
                        "అ",
                        "న",
                        "డి",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Q1",
                        "రెండు  2",
                        "Q3",
                        "Q4",
                    }
                    wide{
                        "ఒకటి  1",
                        "రెండు  2",
                        "మూడు 3",
                        "నాలుగు 4",
                    }
                }
            }
        }
    }
}
