Schedule (Tentative)

Date Phase
02.10 v21.0 Released
02.29 v22 Data Submission Starts
06.22 v22 Release
For details, see Release Schedule.
See also Notification Services.

Update Language/Script/Region Subtags

This updates language codes, script codes, and territory codes.

  • First get the latest ISO 639-3 from http://www.sil.org/iso639-3/download.asp
    • Click on each UTF-8 link, and Save As... without the version number, eg deleting "_20100202":
      • {cldrdata}tools\java\org\unicode\cldr\util\data\iso-639-3.tab
      • {cldrdata}\tools\java\org\unicode\cldr\util\data\iso-639-3_Name_Index.tab
      • {cldrdata}\tools\java\org\unicode\cldr\util\data\iso-639-3-macrolanguages.tab
      • {cldrdata}\tools\java\org\unicode\cldr\util\data\iso-639-3_Retirements.tab
    • Take the latest version number of any of the files (like iso-639-3_20070615.tab), and paste into
      • {cldrdata}\tools\java\org\unicode\cldr\util\data\iso-639-3-version.tab
  • Go to http://www.iana.org/assignments/language-subtag-registry
    • (you can set up a watch for changes in this page with http://www.watchthatpage.com )
    • Save as {cldrdata}\tools\java\org\unicode\cldr\util\data\language-subtag-registry
  • Go to http://data.iana.org/TLD/
  • If using Eclipse, refresh the files
  • Diff each with the old copy (via CVS) to check for consistency 
    • Certain of the steps below require that you note certain differences.
  • Any new codes need a corresponding update in supplementalMetadata.xml
    • Run CountItems -Dfile.encoding=UTF-8 -DSHOW_FILES -Xmx512M -Dmethod=getSubtagVariables
    • You'll get warnings on missing codes (see below).
    • Replace sections of supplementalMetadata.xml
    • If you need to add special codes, do so in StandardCodes.java in the String[][] extras list
    • WARNING: the tool isn't updated yet to handle language codes, so those need to be done by hand.
    • Diff for sanity check
  • Edit common/main/en.xml to add any new names, based on the Descriptions in the registry file.
    • You only need new languages and scripts that we add to supplementalMetaData.
    • But you need all territories.
    • Macrolanguages need a language alias.
    • Diff for sanity check
  • If the code becomes deprecated, then add to supplementalMetadata under <alias>
    • If there is a single replacement add it.
    • Territories can have multiple replacements. Put them in population order.
  • For new territories (regions) // TODO: automate this more
  • Then run GenerateEnums.java, and make sure it completes with no exceptions. (Don't worry about the results.)
  • Run ConsoleCheckCLDR -f en -z FINAL_TESTING -e -c comprehensive
    • If you missed any codes, you will get error message: "Unexpected Attribute Value"
  • Do LikelySubtags and Default Content