Babel as a library has a long history that goes back to the Trac project.
Since then it has evolved into an independently developed project that
-implements data access for the CLDR project.
+implements data access for the `https://cldr.unicode.org Unicode CLDR project`_.
This document tries to explain as best as possible the general rules of
the project in case you want to help out developing.
-----------------
Generally the goal of the project is to work as closely as possible with
-the CLDR data. This has in the past caused some frustrating problems
+the `https://cldr.unicode.org/index/charts CLDR data`_. This has in the
+past caused some frustrating problems
because the data is entirely out of our hand. To minimize the frustration
we generally deal with CLDR updates the following way:
-* bump the CLDR data only with a major release of Babel.
-* never perform custom bugfixes on the CLDR data.
-* never work around CLDR bugs within Babel. If you find a problem in
+* Bump the CLDR data only with a major release of Babel.
+* Never perform custom bugfixes on the CLDR data.
+* Never work around CLDR bugs within Babel. If you find a problem in
the data, report it upstream.
-* adjust the parsing of the data as soon as possible, otherwise this
- will spiral out of control later. This is especially the case for
+* Adjust the parsing of the data as soon as possible, otherwise this
+ will spiral out of control later. This is especially the case for
bigger updates that change pluralization and more.
-* try not to test against specific CLDR data that is likely to change.
+* Try not to test against specific CLDR data that is likely to change.
Python Versions
---------------
Unicode
-------
-Unicode is a big deal in Babel. Here is how the rules are set up:
+Unicode is a big deal in Babel. Here is how the rules are set up:
* internally everything is unicode that makes sense to have as unicode.
* Encode / decode at boundaries explicitly. Never assume an encoding in