//*******************************************************************************
//*
//*   Copyright (C) 1998-2010, 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 }

    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
