My team is currently working with a European company on a Form based task process. One of the requirements is support for dual-language, and perhaps in future multi-language. To be specific, the request is that a user can present a version of the Form in their preferred language, and the field labels as well as prescribed field elements like checkbox, radio button, and drop down options will all translate.
This requirement is not really possible to achieve with purely out of the box features, unless you exaggerate the number of fields and elements on each form substantially. At the moment we see 3 key choices:
1. Show both languages simultaneously, with no option to choose. This is the simplest and cheapest solution but provides no way to hide the language that is not preferred, and doesn't display well for checkboxes, radios, and drop downs.
2. Field rule based display. Create field labels in each language for each field, and display/hide based on a user selection for langauge. This works only for labels, and the user "preference" will be saved as a variable and carried through the process for other users rather than acting as a true preference. Requires a substantial increase in forms elements, specificaly HTML boxes for the labels.
3. Code based display. Create a "library" of translations, create a "languages" button, and on click run javascript to read the pages strings and do a string replacement based on the library. Works well for all field types and labels, doesnt require any extra fields, but requires the maintenance of a backend library and substiantially more testing and maintenance for long term operations. For example version updates may break this code. Is also far harder to edit and maintain for power users who do not have coding experience.