G'day. Factorio now has an API for translating localized strings and getting the results in your lua code. It is asynchronous, so involves requesting the translation and then waiting for an event giving you the data, but you should be able to cache the results in global for resources. Optionally refresh them at start, I guess?
https://lua-api.factorio.com/latest/LuaPlayer.html#LuaPlayer.request_translation -- I think it is likely 0.18 only, but you should be able to test for it having a non-nil value and use it if so. Uh, clearly this is gonna be a challenge if one a multi-player game, since map markers can only have one label, but I'd personally just go with "game.players[1] is gonna be the closest to the 'standard' language for the game" myself.
There are also some helpers for doing this stuff. flib has some tooling which might help, depending on what you need: https://factoriolib.github.io/flib/modules/translation.html
Rusty Locale also provides an implementation of "get the right localized string for a prototype", which may also be useful:
https://github.com/theRustyKnife/rusty-locale
I'm asking, of course, that you translate strings from internal names to the localized versions in the markers, when possible. :)
I strongly suspect but have not confirmed that the request_translation
API is 0.18 only, but you should be able to conditionally invoke it by checking for the field being present (or a function) in LuaPlayer.
Thank you so much!