message-format
:EXPERIMENT: tool.message-format
A minimal ICU MessageFormat playground. Enter a template on top, params (as EDN) below, see the parse tree and rendered output.
Adapted from Chris Fung's RubyConf 2026 talk Stop Fighting Ruby I18n:
Message Format Is All You Need (Tue 10:30 B2). The point is that plural
and gender are grammar, not code — one MessageFormat pattern replaces a
case-statement dispatched on locale.
The evaluator is intentionally partial (one / other / #, select,
plain \{var\}) — enough to demonstrate the shape without pulling in a full
ICU implementation.
See experiments — this tool ships behind tool.message-format.