What is the right algorithm for building a multilingual form?