Surprisingly to me, the docs for the i18n engine claim it can follow variable paths like this but I did a test with our system, and it really only works with _('Check') style. Either we have an old version, or maybe there's something about our harness that extracts the strings.

So anyway, that forces the logic to a form so the strings are extracted but _() is only called once per string.