//*******************************************************************************
//*
//*   Copyright (C) 1998-2005, 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 {"& 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",
        }
    }

}

//eof
