i18n.ts had grown past the repo's 1000-line limit with the two dictionaries inline (the prefix/suffix keys pushed it further). zh — with DictKey, the key-set source of truth — and en, pinned to it at compile time, move to their own files; i18n.ts keeps the shared Translate type and re-exports.