I ended up leveraging i18next for this in both Nightwatch and Playwright frameworks (tutorial)
Essentially it works the same as the solutions others mentioned about storing the lookups in translation files, but the i18next framework does it a little more polished and offers language detection.