Adding a new locale to CLDR

NOTE: this is an internal page for TC developers. Others should see Core Data for New Locales.

Country Locales

If you are just adding a new country locale (eg we have a locale for the language), you just need to add the new empty locale file, and Update Survey Tool. Otherwise:

Minimal Structure

Before adding a new locale, you must have the core data: see Core Data for New Locales for the process.

Here is an example: https://github.com/unicode-org/cldr/pull/59/files

Add Data in git

  • Before starting to add a new locale, make sure you have the minimal core data that cannot be added through the Survey Tool. See above.

  • Create the new locale files. If you are adding a single new language locale, for example, language "xx" as spoken in country "YY", you will need two files:

    • common/main/xx.xml - The main locale file containing the core data. You can use the template in seed/main/und.xml as a starting point.

    • common/main/xx_YY.xml - An empty country locale containing the identification of xx_YY as a valid locale. You can use the template in seed/main/und_XX.xml as a starting point.

    • See files are here: https://github.com/unicode-org/cldr/tree/master/seed/main

  • Add the plural rules (if available) to common/supplemental/plurals.xml

  • Add the day period rules (if you have them ) to common/supplemental/dayPeriods.xml

  • If you are adding a new language

    • Add the language subtag to <variable id="$language" type="choice"> in

    • /common/supplemental/attributeValueValidity.xml

    • add the appropriate default content locale

    • to <defaultContent locales="..."> in common/supplemental/supplementalMetadata.xml

    • The default content locale is usually the locale where the most people speak the language in question.

    • If the language is not already in common/supplemental/likelySubtags.xml

      • Send the literate pop information to Rick, or file a bug, if the language is not already in the supplemental data.

      • Once he has added, run the tool in LikelySubtags and Default Content to add the new language and its associated subtags to common/supplemental/likelySubtags.xml

    • Also add the English translation for any new languages in common/main/en.xml

  • If requested, add to vendor targets (Locale.txt), and to Cldr where resources are committed.

  • Run the tests (will be done automatically when a PR is created)

  • Commit your work to a branch and create a Pull Request.

  • The new locale will be included in Smoketest when the PR is merged, and will be in production once a push to production occurs.