Yep, that’s what we do. A special syntax counter keeps track of where each piece of non translated text goes and inserts it back in after we get the translation. This does assume the translation service will leave the symbol of the counter untouched. Currently we use AWS machine translation as the translator and it’s nearly perfect at leaving the symbols in place. Haven’t tested LibreTranslate tho.
While our code isn’t open source, I’d be happy to share my logic there as I wrote it in python.
Are you open to offering paid translation services through the client? You could offer libre translate as a free option as well. That’s what damus has.