Skip to content

Languages

A form has one language of its own and any number of translations. The questions are written in the form language. Buttons, error messages and other fixed texts come from a set of messages that follows the language.

settings.language is a two-letter ISO 639-1 code, for example en, de, pl or pt. Traditional Chinese is zh-TW. A new form takes the language of the editor.

The built-in messages exist in 13 languages:

CodeLanguageCodeLanguage
enEnglishruRussian
plPolishcsCzech
deGermanskSlovak
frFrenchsvSwedish
esSpanishnoNorwegian
itItalianhuHungarian
ukUkrainian

A form in any other language starts with the English messages. You translate them once in the Translations section of the editor.

A translation is a second language version of the same form. It is stored next to the form, one per language, and holds only texts. Questions, logic, settings and the theme are shared by all languages.

KeyTypeDescription
lang_codestringLanguage code of the translation.
formarrayTranslated texts of the welcome page, the questions and the end pages.
messagesobjectTranslated messages, by key.

Each item of form carries the texts of one page or question. Items are matched to the form by ref, so a translation keeps working when questions are reordered.

KeyPresent forDescription
refallref of the question or page.
typeallQuestion type, or welcome_page / end_page.
titleallTranslated title.
properties.descriptionallTranslated description.
properties.button_textwelcome_pageTranslated start button.
properties.button_labelend_pageTranslated button.
properties.labelsrating, customer_sat, opinion_scaleTranslated scale labels: left, middle, right.
properties.other_choice_labelmultiple_choiceTranslated label of the “Other” option.
choices[]multiple_choice, picture_choice, dropdown, ranking, matrix{ "ref", "label" } for each option or column.
questions[]matrix{ "ref", "label" } for each row.
questions[]slider, numbers_scale, constant_sum, semantic_differential{ "ref", "question", "sub_labels" } for each row.

A text left empty in a translation falls back to the text of the form language.

{
"lang_code": "de",
"form": [
{
"ref": "c3a9e1b7-5f24-4d68-8e0b-1a7c6d9f2e53",
"type": "multiple_choice",
"title": "Welche Geräte nutzen Sie?",
"properties": { "description": "", "other_choice_label": "Sonstiges" },
"choices": [
{ "ref": "5d2f8c41-9b7e-4a13-a6c0-2e4f6b8d0a17", "label": "Telefon" },
{ "ref": "8e1a3c57-0d9f-4b26-b7d1-3f5a7c9e1b28", "label": "Tablet" }
]
}
],
"messages": { "next": "Weiter", "send": "Senden" }
}

Choice answers carry the id of the picked options, which is the same in every language, together with the label the respondent saw. Group them by id, not by label. A dropdown answer is the label of the picked option, in the language the respondent used.

  1. A link with ?lang=<code> opens that translation. A code the form has no translation for opens the form language.
  2. Without lang, the form compares the browser’s language with its translations and switches to a matching one.
  3. Otherwise the form opens in its own language.

A form with more than one language shows a language list, and each response stores the language used in the hidden field lang.

Messages are the fixed texts of a form. Every form starts with the defaults of its language. You can reword any of them in the editor, per language.

Some messages contain a placeholder that the form fills in. Keep it when you reword or translate the text.

KeyDefault (English)Used for
startStartWelcome page button when it has no text of its own.
nextNextNext page.
sendSendSubmit.
correctReviewShown on the button when a required question is unanswered.
unlockUnlockButton of a password-protected form.
enter_passwordEnter password to unlockPassword field hint.
clearClearClears a value.
confirmConfirmConfirms a value.
assignAssignConstant sum.
press_enterpress EnterKeyboard hint next to the button.
KeyDefault (English)Used for
yesYesYes/No question.
noNoYes/No question.
choose_answerChoose an answerDropdown hint.
no_optionNo matching optionsDropdown search without a result.
select_more_than_oneYou can select more than one answer.Hint under a choice question with multiple selection.
currently_selectedCurrently selectedCount of picked options.
answersanswersUsed with counts of answers.
day, month, yearDay, Month, YearDate field labels.
day_placeholder, month_placeholder, year_placeholderDD, MM, YYYYDate field hints.
upload_fileUpload a fileUpload button.
uploadingUploadingUpload in progress.
file_uploadedFile uploadedUpload finished.
file_numberFile {number}Name of an uploaded file.
zoom_imageEnlarge picturePicture choice.
close_imageCloseCloses the enlarged picture.
KeyDefault (English)Used for
answer_is_requiredAnswer is requiredRequired question left empty.
valid_emailPlease enter a valid email address.Email question.
valid_numberPlease use digits only.Number question.
valid_datePlease enter a valid date.Date question.
valid_websitePlease enter a valid website address.Website question.
valid_phone_numberPlease enter a valid phone number.Phone number question.
text_max_lengthMaximum {max} charactersText over max_length.
valid_text_formatPlease enter the answer in the required formatText that does not match pattern.
upload_errorThis file is too large. Maximum size: 5 MB.File over the size limit. Keep exactly one number: it is replaced with the real limit.
file_type_not_allowedThis file type is not allowed.File of a type that is not accepted.
max_files_exceededMax. 5 files.Too many files. Keep exactly one number: it is replaced with the real limit.
upload_failedFile upload failed. Please try again.Upload failed.
signature_requiredPlease provide a signature.Empty signature.
submit_errorCould not save your response. Please try again.Saving failed.
question_unsupportedThis question can’t be displayed.Question of an unknown type.
KeyDefault (English)Used for
form_disabledThis form is currently unavailable.Closed form, or a form the visitor cannot open.
answer_givenYou have already submitted a response to this form.One response per user.
invitation_unavailableThis invitation link has already been used or has expired.Used invitation link.
password_requiredEnter the form password again to send your response.Password missing on submit.
loading_formLoading form…Form is loading.
loadingLoading…Data is loading.
form_load_errorCould not load the form.Loading failed.
form_not_foundForm not found.No such form.
submittingSending…Response is being sent.
end_page_default_titleThank you!End page on the free plan.
end_page_free_pillThis form was created for free usingEnd page on the free plan.
end_page_promo_buttonCreate your own formEnd page on the free plan.
KeyDefault (English)
cookie_consent_text{brand} uses its own and third-party cookies for analytical and profiling / advertising purposes.
cookie_policyCookie policy
cookie_accept_allAccept all
cookie_reject_allReject all
cookie_preferencesCookie preferences
cookie_preferences_text{brand} uses its own and third-party cookies to analyze performance and learn where respondents are coming from. Cookie data is anonymous and contains no personal information.
cookie_necessaryStrictly necessary cookies
cookie_analyticalAnalytical cookies
cookie_functionalFunctional cookies
cookie_advertisingAdvertising/profiling cookies
cookie_save_selectionSave selection

These texts are read aloud by assistive technology and are not visible on screen.

KeyDefault (English)
required_hint(required)
question_ofQuestion :current of :total
rating_value:value of :max
backBack to previous question
start_formStart form
confirm_answerConfirm
choose_dateChoose date
navigation_labelForm navigation
language_labelLanguage
progress_labelProgress
remove_fileRemove uploaded file
signature_canvasSignature canvas
clear_signatureClear signature
ranking_positionPosition
ranking_unrankednot ranked
ranking_choose_positionChoose position
ranking_instructionsAlt and the up or down arrow move the answer; the position button sets it directly.

Placeholders are written in two ways: in braces ({max}, {number}, {brand}) and with a colon (:value, :max, :current, :total).