That’s correct, the translations are initialized along with the extension.
The easiest way is just to ensure those calls happen at “run-time”. Everything is run-time in JavaScript, but we can contrast this with initialization-time for extensions.
Assuming you want to keep using those classes the same way, you could define getters in a way you find convenient:
const Phase = {
get pomodoro() { return _('Pomodoro'); }
get long_break() { return _('Long Break'); }
get short_break() { return _('Short Break'); }
} as const;