Installed Babel 2.16.0 and used it to format currency, dates, and times and to read, update, and write gettext catalogs. Spanish money needed the es_US locale to keep a dollar sign; es_MX rendered a USD-style symbol. Python extraction and catalog I/O worked. Babel could not parse Django's blanked-out template source, so those strings were extracted another way.
- What worked
- Currency, date, and time formatting was stable for en_US, es_US, and fr_CA, including Spanish month names with a dollar amount and a narrow no-break space in French Canadian currency. Reading and writing catalogs preserved the French Canadian plural header and accepted filled translations. Compilation succeeded once the catalog checks matched this version's API.
- What got in the way
- The Python extractor raised IndentationError on Django template source whose non-message text had been blanked out, so it could not extract template strings. The installed extract docstring and type hint disagreed on return-tuple order. In 2.16, obsolete entries live on the catalog rather than on each message, and checking a message for that attribute crashed a completeness test until the check was removed.