Form languages
SurveyCTO forms can be created in any language, or even contain multiple languages in the same form.
Default form language
The default language of the form specifies the language of its basic form elements (field labels, field hints, choice labels, etc.). If you're designing a form in English, you don't need to change anything, since new forms all start with "english" as their default language. If you're designing a form with a different default language, you should change the default language in the form settings.
In the form designer, click to edit Form settings, and then rename the default language (english) to the correct language.
In the spreadsheet definition, on the settings worksheet, specify the name of your default language in the default_language column (in row 2).
Multi-language forms
If you would like the users filling out your forms to be able to switch between languages, you can add multiple languages to the same form. This entails creating a duplicate of each piece of text within your form (i.e., all the question labels, choice labels, etc.) in the new language.
In the form designer, click to edit Form settings to rename, add, or delete any form's languages.
In the spreadsheet form definition, follow these steps to add additional languages to any of your forms:
- On the survey worksheet, use the label, hint, constraint message, required message, media:image, media:audio, and media:video columns for whatever you want to be the form's default language (i.e., for the language that appears whenever somebody starts filling out a new form).
- Likewise, use the label and image columns on the choices worksheet for your default-language text and imagery.
- On the settings worksheet, specify the name of your default language in the default_language column (in row 2). This tells SurveyCTO the name of this default language, so that it can show it in the user interface.
- On the survey worksheet, add additional columns for each non-default language translation, and name those columns (in row 1) the same as the existing columns – but with :languagename tacked onto the end of each name (e.g., label:languagename, hint:languagename, or constraint message:languagename, where "languagename" is "Tamil", "Shona", "Spanish", or some other language name of your choosing). Be sure to leave one copy of each column with no language name in its name, however, so that there is a "default" translation for each column.
- Likewise, add label:languagename and image:languagename columns to the choices worksheet, for whichever additional, non-default languages you would like to support. (And leave the plain label and image columns for your chosen default language.)
And that's it! Once your form includes support for multiple languages, users can switch between those languages when filling out the form. From any page of the survey – including the opening screen – they can choose Change language to choose among any of the supported languages. (On mobile, they open the three-dot menu in the upper-right to find the Change language option; on the web, they can use the language selector dropdown in the main toolbar.)
For a working example, see Languages: Including translations.
User interface languages
In addition to all the text contained in your form definition, the text in the interface itself (buttons, menu options like Change language, etc.) is of course important to ensure users are able to understand and complete your form properly. The SurveyCTO platform is designed to try to ensure the interface language is always understandable by the person filling out the form, but there are some limitations to be aware of.
For SurveyCTO Collect on mobile devices, the app attempts to respect the locale set in the device's overall settings. Thus, for example, if your device locale is set to EspaƱol, then the Collect user interface will be in Spanish. Currently, the user interface languages that are supported by SurveyCTO Collect on mobile devices are English, French, Spanish, and Hindi.
When filling out multi-language forms in a web browser, the interface language will always attempt to match the form language. To make sure this system works well, follow these tips:
- Always make sure your form languages are named properly, including the default language in the settings.
- Make sure each language name in your form definition is mapped to the appropriate interface language. You can find a list of available interface languages and their mappings on the Collect tab of your server console.
- If your form language is not mapped to an existing interface language, edit the form language mappings on the Configure tab.
For single-language forms and web pages outside of forms, the interface language will attempt to match the language of the user's web browser.
Every server automatically supports the following interface languages for web forms: English, French, Spanish, and Hindi. If you are deploying a form in a language other than those four, you can add your own interface language to your server. See the topic on translating web forms.
Non-Latin fonts
Importantly, mobile devices have limited (and idiosyncratic) support for non-Latin fonts. For any non-Latin font, be sure to only use UNICODE fonts, and to carefully paste those UNICODE fonts into the form designer or form definition. Finding a font supported by your devices may require some experimentation, and you may need to source devices locally if international devices do not support the script you require.