<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
	<meta http-equiv="Content-Type" content= "text/html; charset=utf-8">
	<meta http-equiv="Content-Language" content="en-us">
    <meta name="COPYRIGHT" content= "Copyright (c) 1991-2021 Unicode, Inc. All rights reserved.">
    <meta name="DESCRIPTION" content= "Readme for Unicode CLDR with version number and other information.">
    <title>ReadMe for Unicode CLDR</title>
  </head>

  <body>
    <h2>Unicode Common Locale Data Repository (CLDR)</h2>
    <h3>ReadMe for Unicode <abbr title="Common Locale Data Repository">CLDR</abbr> version 40</h3>
    <p>Last updated: 2021-Oct-19</p>

    <!--<p><b>Note:</b> CLDR 40 is in development and not recommended for use at this stage.</p>-->
    <!--<p><b>Note:</b> This is the milestone 1 version of CLDR 40, intended for those wishing to do pre-release testing.
    It is not recommended for production use.</p>-->
    <!--<p><b>Note:</b> This is a preliminary version of CLDR 40, intended for those wishing to do pre-release testing.
    It is not recommended for production use.</p>-->
    <!--<p><b>Note:</b> This is a pre-release candidate version of CLDR 40, intended for testing.
    It is not recommended for production use.</p>-->
    <p>This is the final release version of CLDR 40.</p>
    
    <p><strong>Important notes for CLDR 36 and later:</strong></p>
    <ul>
      <li>The CLDR repository has switched from subversion to git.</li>
      <li>Data in the main CLDR repository now includes some elements with the value “↑↑↑” indicating
    	that translators have explicitly determined that the inherited value should always be used.</li>
      <li>To generate data in the form that was used for CLDR 35.1 and earlier, in which “↑↑↑” is
    	resolved appropriately (either removed or replaced with an apropriate value) and other minimization
    	is performed, a new tool GenerateProductionData is provided (command-line options provide the
    	ability to specify source and destination directory, among other things).</li>
      <li>CLDR data that has been processed by GenerateProductionData is available in the parallel
    	“cldr-staging” repository.</li>
    </ul>

    <p>For further information:</p>
    <ul>
      <li>Information about <a href="https://cldr.unicode.org/index/downloads">CLDR releases and downloads</a>,
        including the data files and LDML specification associated with each release.</li>
      <li>Information about <a href="https://cldr.unicode.org/development/cldr-tools">Building and running CLDR Tools</a></li>
    </ul>
    <p>Tools Quickstart:</p>
    <ul>
      <li>See the <a href="https://cldr.unicode.org/development/cldr-tools">CLDR Tools Website</a></li>
    </ul>

    <p>Licenses:</p>
    <ul>
 	  <li>Usage of CLDR data and software is governed by the <a href="http://www.unicode.org/copyright.html">Unicode Terms of Use</a>,
 	    a copy of which is included as unicode-license.txt.</li>
 	  <li>Some CLDR tools depend on libraries in tools/cldr-code/libs/; use of these libraries is governed by separate license agreements.
 	  <ul>
 	    <li>Use of the ICU libraries is subject to the
 	    <a href="https://github.com/unicode-org/icu/blob/master/icu4j/main/shared/licenses/LICENSE">ICU License</a>,
 	    included as ICU-LICENSE.</li>
 	    <li>Use of the Guava, Xerces, and Myanmar Tools libraries is subject to the
 	    <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License</a>,
 	    included as apache-license.txt.</li>
 	  </ul>
 	  </li>
 	</ul>

    <hr>
    <p>Copyright &copy; 1991-2021 Unicode, Inc.<br>
    All rights reserved.<br>
    <a href="http://www.unicode.org/copyright.html">Terms of use</a></p>
  </body>
</html>
