Here is a quick proof of concept of an approach for multi-language form.
It's not great! It involves using a select with labels that represent the different available languages to detect the current language. A better way to know the current language has been requested here. An additional thing to add that would make this easier is a way to pass in a language to the existing jr:itext
function which currently can only look up a label in the current language.
You'll notice that as the form is written, you need to swipe before you can see the language correctly detected. This is related to some issues with recomputation that @TobiasMcNulty described here. That thread provides some ideas on how to work around that for now.
The approach bypasses the built-in translation mechanism and instead involves introducing known column names to the choice list representing the different languages' labels.
Side note, @eyelidlessness here are some user-facing issues with the itext
spec.