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.