Novelang comes with a
Numbering class which formats an integer value in words. This adds a bit of magic when the stylesheet writes "Chapter fourty-two" from a stupid counter.
Numbering class only supports French and English, and values from 0 to 50 (all values are hardcoded). The ICU project offers the
RuleBasedNumberFormat which supports rule-based formatting. This makes easy to support much greater ranges.