The following article provides tips on how to prepare your survey for translation.
For information on using the Translations applet, see Translations.
Translation preparation checklist
Translations can add significant complexity to a survey. Before translating a survey, it is best to ensure that:
- The survey revisions are final (or as close to final as is practical).
- The survey programming has been thoroughly tested.
- Ideally, the survey has already launched in its primary language and live data has been reviewed.
The goal is to minimize the need for revisions to the survey after it has been translated. Managing survey revisions and translation revisions at the same time can be challenging. Translating a survey after the revisions phase reduces the possibility of human error.
The following SPL features and techniques are intended to provide a smooth translation experience.
Tip! Translation overlays will skip standalone phrases containing certain characters, as the system interprets them as code. Examples include words connected by underscores or phrases that appear to be only HTML formatting. If a line is missing from your translation overlay, review your survey code for these instances.
Offering a language selection
If your survey offers multiple languages and you allow respondents to select their language, there are two ways to do this.
- You can enable the In-Survey Picker in the Translations applet to let them select their language throughout the survey.
- You can use the
language picker
tag on a radio or pulldown question so respondents can select their preferred language before they begin.
Regardless of the language chosen, the recorded data is stored in the same survey location.
Excluding content from translations
Use the translate: n
tag to exclude a widget's text content from translation. This tag can be used on many types of widgets, including lists and groups.
USE. Programming Variable - Products Used type: coded multiple select optsfrom: PRODUCTS translate: n
You can also add {translate: n}
as an element decorator on a specific option to exclude it.
Tip! Questions that have an implicit invisible: y
tag are automatically excluded from translations. These include all quotas (regular, derived, click balance), variables created with selectby
, coded variables, reporting-only variables, and summary variables.
Including content by specifying languages
If a survey has multiple translations, the translate
tag can be used to specify which languages should include certain content in translations, rather than exclude it. Simply enter the translation key, separated by commas.
1. What's your favorite color?
type: radio
optsfrom: COLORS
translate: spa-1,eng-2
Translating sheets
Any survey sheet with "text" in the column header is automatically included in translations. This includes the default "text" column, as well as any user-defined columns. For example, a column labeled "brands_text" would be translated; a column labeled "brands" would not.
Additionally, content from columns with the following exact names (case-insensitive) will also be translated:
ALT, EG, EXAMPLES, LC, PIPE, SHORT, UC, and UCFIRST.
To exclude a sheet from translations, add translate: n
to the define sheet
widget.
definesheet: surveyid.mysheetname translate: n
Tip! Using the translate
decorator in a sheet can also provide programming flexibility by allowing 'y' and 'n' inputs as well as translation keys to control whether content is translated.
Translating open-ended responses
For translated surveys, back-translation of open-ended responses is often needed. To enable AI translations of responses back to the primary language, add the autotranslate
tag to the app config
widget. This tag must be added before the data is collected.
Note: When autotranslate
is applied, new fields are added to the survey dataset for the translated text, shifting the data map.
Translation-friendly text piping
In some cases, survey content that uses text piping or set text
widgets may not translate smoothly to other languages due to differences in grammar and sentence structure.
To avoid complications in the translation process, program the piped text so that the entire phrase or sentence is included in the overlay. This gives the translator the flexibility to provide a more accurate and grammatically correct translation.
X Possible issues with some languages | ✔ Increased flexibility |
set conditioned text: YOU_CHILD 1. do you { if anyChecked($QGROUP,1) } 2. does your child { if anyChecked($QGROUP,2) } 2. How often __YOU_CHILD__ go to the dentist? |
set conditioned text: YOU_CHILD 1. How often do you go to the dentist? { if anyChecked($QGROUP,1) } 2. How often does your child go to the dentist? { if anyChecked($QGROUP,2) } 2. __YOU_CHILD__ |
Translating text from option data decorators
By default, option data is not included in translations unless one of the following labels is used: ALT, EG, EXAMPLES, LC, PIPE, SHORT, UC, or UCFIRST. For example, {{ALT: Red}}
used below is available for translations.
set list: RAINBOW
1. Roaring Red {{ALT: Red}}
2. Outrageous Orange {{ALT: Orange}}
3. Yucky Yellow {{ALT: Yellow}}
4. Gorgeous Green {{ALT: Green}}
5. Blushing Blue {{ALT: Blue}}
6. Iconic Indigo {{ALT: Indigo}}
7. Viscous Violet {{ALT: Violet}}
7. Which of the following colors are your favorites?
instructions: Select up to 3
type: checkbox
maxchecked: 3
optsfrom: RAINBOW
Creating a quota based on 'language' or 'locale'
Because language
and locale
are open-ended system variables, programmers often create a separate closed-ended variable for easier analysis and quota setups.
For example, could reference the locale
variable to set up a quota to track respondents who take the survey in different languages. You can find your locale listed in the Survey Links applet.
LANGUAGE. QUOTA | Language type: quotas 1. English {if $locale eq 'us-eng'}
2. Arabic UAE {if $locale eq 'ae-ara'}
Note: If a respondent switches languages mid-survey, system variables will update accordingly, but any survey variables or quotas already recorded will remain unchanged.
Separating matching content in the overlay
The platform automatically combines, or chains, matching content in the overlay. To prevent this behavior, add the unchain: y
tag. This allows for unique translations for content that matches in the primary language but needs different translations.
Without unchain: y
:
With unchain: y
:
Comments
0 comments
Please sign in to leave a comment.