//*******************************************************************************
//*
//*   Copyright (C) 1998-2013, International Business Machines
//*   Corporation and others.  All Rights Reserved.
//*
//*******************************************************************************


// This is a test locale file for the fake locale 'te'

te
{
    string_only_in_te { TE }

    string_in_te_no_te_IN_fallback { TE_no_fallback }

    array_only_in_te { TE0, TE1, TE2, TE3 }

    array_2d_only_in_te
    {
        { TE00, TE01 }
        { TE10, TE11 }
    }

    tagged_array_only_in_te
    {
        tag9 { TE9 } 
        tag11 { TE11 } 
        tag3 { TE3 } 
        tag4 { TE4 }
    }

    string_in_Root_te_te_IN { TE }

    array_in_Root_te_te_IN { TE0, TE1, TE2, TE3, TE4 }

    array_2d_in_Root_te_te_IN
    {
        { TE00, TE01, TE02 }
        { TE10, TE11, TE12 }
        { TE20, TE21, TE22 }
        { TE30, TE31, TE32 }
    }

    tagged_array_in_Root_te_te_IN
    {
        tag7 { TE7 } 
        tag8 { TE8 } 
        tag14 { TE14 } 
        tag0 { TE0 } 
        tag4 { TE4 } 
        tag10 { TE10 } 
    }

    string_in_Root_te { TE }

    array_in_Root_te { TE0, TE1, TE2, TE3, TE4 }

    array_2d_in_Root_te
    {
        { TE00, TE01, TE02 }
        { TE10, TE11, TE12 }
        { TE20, TE21, TE22 }
        { TE30, TE31, TE32 }
    }

    tagged_array_in_Root_te
    {
        tag2 { TE2 } 
        tag1 { TE1 } 
        tag0 { TE0 } 
        tag3 { TE3 }
        tag4 { TE4 } 
        tag5 { TE5 } 
        tag6 { TE6 }
    }

    string_in_te_te_IN { TE }

    array_in_te_te_IN { TE0, TE1, TE2 }

    array_2d_in_te_te_IN
    {
        { TE00, TE01, TE02 }
        { TE10, TE11, TE12 }
        { TE20, TE21, TE22 }
    }

    tagged_array_in_te_te_IN
    {
        tag0 { TE0 } 
    }

    collations {
      standard { 
        Version { "1.0" }
        Override { "FALSE" }
        Sequence {"[reorder Grek] & A < a\u0308 , A\u0308 & C < c\u0327 , C\u0327 & G < g"
            "\u0306 , G\u0306 & H < \u0131 , I , i , \u0130 < \u0132 , \u0133 & O < o\u0308 "
            ", O\u0308 & S < s\u0327 , S\u0327 & U < u\u0308 , U\u0308" }
      }
    }
    aliasClient:alias {"/LOCALE/aliasDestination"}
    aliasDestination {"tedest"}
    rootAliasDestination {"correct"}
    a {
    a1{"a21"}
    a2{"a22"}
        a3{"a23"}
    a4{"a24"}
    }    
  zoneStrings{
        {
            "Pacific/Honolulu",
            "Hawaii Standard Time",
            "HST",
            "Hawaii Daylight Time",
            "HDT",
            "Honolulu",
            "Hawaii Time",
            "HT",
        }
        {
            "America/Anchorage",
            "Alaska Standard Time",
            "AKST",
            "Alaska Daylight Time",
            "AKDT",
            "Anchorage",
            "Alaska Time",
            "AKT",
        }
        {
            "America/Los_Angeles",
            "Pacific Standard Time",
            "PST",
            "Pacific Daylight Time",
            "PDT",
            "Los Angeles",
            "Pacific Time",
            "PT",
        }
        {
            "America/Phoenix",
            "Mountain Standard Time",
            "MST",
            "Mountain Daylight Time",
            "MDT",
            "Phoenix",
            "Mountain Time",
            "MT",
        }
        {
            "America/Denver",
            "Mountain Standard Time",
            "MST",
            "Mountain Daylight Time",
            "MDT",
            "Denver",
            "Mountain Time",
            "MT",
        }
    }

    tableT7996 {
        a7996:alias {"sh"}
        c7996 {"string c7996 in tableT7996 for te"}
    }
}

//eof
