Server-side event translation with permanent cache

/api/events?locale=… returns event names + headings pre-translated. Postgres-cached forever since event text is immutable once published.