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.
Form language
Section titled “Form 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:
| Code | Language | Code | Language |
|---|---|---|---|
en | English | ru | Russian |
pl | Polish | cs | Czech |
de | German | sk | Slovak |
fr | French | sv | Swedish |
es | Spanish | no | Norwegian |
it | Italian | hu | Hungarian |
uk | Ukrainian |
A form in any other language starts with the English messages. You translate them once in the Translations section of the editor.
Translations
Section titled “Translations”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.
| Key | Type | Description |
|---|---|---|
lang_code | string | Language code of the translation. |
form | array | Translated texts of the welcome page, the questions and the end pages. |
messages | object | Translated messages, by key. |
Translated texts
Section titled “Translated texts”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.
| Key | Present for | Description |
|---|---|---|
ref | all | ref of the question or page. |
type | all | Question type, or welcome_page / end_page. |
title | all | Translated title. |
properties.description | all | Translated description. |
properties.button_text | welcome_page | Translated start button. |
properties.button_label | end_page | Translated button. |
properties.labels | rating, customer_sat, opinion_scale | Translated scale labels: left, middle, right. |
properties.other_choice_label | multiple_choice | Translated 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" }}Answers in a translated form
Section titled “Answers in a translated form”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.
Which language a respondent sees
Section titled “Which language a respondent sees”- A link with
?lang=<code>opens that translation. A code the form has no translation for opens the form language. - Without
lang, the form compares the browser’s language with its translations and switches to a matching one. - 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
Section titled “Messages”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.
Buttons and navigation
Section titled “Buttons and navigation”| Key | Default (English) | Used for |
|---|---|---|
start | Start | Welcome page button when it has no text of its own. |
next | Next | Next page. |
send | Send | Submit. |
correct | Review | Shown on the button when a required question is unanswered. |
unlock | Unlock | Button of a password-protected form. |
enter_password | Enter password to unlock | Password field hint. |
clear | Clear | Clears a value. |
confirm | Confirm | Confirms a value. |
assign | Assign | Constant sum. |
press_enter | press Enter | Keyboard hint next to the button. |
Questions
Section titled “Questions”| Key | Default (English) | Used for |
|---|---|---|
yes | Yes | Yes/No question. |
no | No | Yes/No question. |
choose_answer | Choose an answer | Dropdown hint. |
no_option | No matching options | Dropdown search without a result. |
select_more_than_one | You can select more than one answer. | Hint under a choice question with multiple selection. |
currently_selected | Currently selected | Count of picked options. |
answers | answers | Used with counts of answers. |
day, month, year | Day, Month, Year | Date field labels. |
day_placeholder, month_placeholder, year_placeholder | DD, MM, YYYY | Date field hints. |
upload_file | Upload a file | Upload button. |
uploading | Uploading | Upload in progress. |
file_uploaded | File uploaded | Upload finished. |
file_number | File {number} | Name of an uploaded file. |
zoom_image | Enlarge picture | Picture choice. |
close_image | Close | Closes the enlarged picture. |
Errors
Section titled “Errors”| Key | Default (English) | Used for |
|---|---|---|
answer_is_required | Answer is required | Required question left empty. |
valid_email | Please enter a valid email address. | Email question. |
valid_number | Please use digits only. | Number question. |
valid_date | Please enter a valid date. | Date question. |
valid_website | Please enter a valid website address. | Website question. |
valid_phone_number | Please enter a valid phone number. | Phone number question. |
text_max_length | Maximum {max} characters | Text over max_length. |
valid_text_format | Please enter the answer in the required format | Text that does not match pattern. |
upload_error | This 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_allowed | This file type is not allowed. | File of a type that is not accepted. |
max_files_exceeded | Max. 5 files. | Too many files. Keep exactly one number: it is replaced with the real limit. |
upload_failed | File upload failed. Please try again. | Upload failed. |
signature_required | Please provide a signature. | Empty signature. |
submit_error | Could not save your response. Please try again. | Saving failed. |
question_unsupported | This question can’t be displayed. | Question of an unknown type. |
Form states
Section titled “Form states”| Key | Default (English) | Used for |
|---|---|---|
form_disabled | This form is currently unavailable. | Closed form, or a form the visitor cannot open. |
answer_given | You have already submitted a response to this form. | One response per user. |
invitation_unavailable | This invitation link has already been used or has expired. | Used invitation link. |
password_required | Enter the form password again to send your response. | Password missing on submit. |
loading_form | Loading form… | Form is loading. |
loading | Loading… | Data is loading. |
form_load_error | Could not load the form. | Loading failed. |
form_not_found | Form not found. | No such form. |
submitting | Sending… | Response is being sent. |
end_page_default_title | Thank you! | End page on the free plan. |
end_page_free_pill | This form was created for free using | End page on the free plan. |
end_page_promo_button | Create your own form | End page on the free plan. |
Cookie banner
Section titled “Cookie banner”| Key | Default (English) |
|---|---|
cookie_consent_text | {brand} uses its own and third-party cookies for analytical and profiling / advertising purposes. |
cookie_policy | Cookie policy |
cookie_accept_all | Accept all |
cookie_reject_all | Reject all |
cookie_preferences | Cookie 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_necessary | Strictly necessary cookies |
cookie_analytical | Analytical cookies |
cookie_functional | Functional cookies |
cookie_advertising | Advertising/profiling cookies |
cookie_save_selection | Save selection |
Screen readers
Section titled “Screen readers”These texts are read aloud by assistive technology and are not visible on screen.
| Key | Default (English) |
|---|---|
required_hint | (required) |
question_of | Question :current of :total |
rating_value | :value of :max |
back | Back to previous question |
start_form | Start form |
confirm_answer | Confirm |
choose_date | Choose date |
navigation_label | Form navigation |
language_label | Language |
progress_label | Progress |
remove_file | Remove uploaded file |
signature_canvas | Signature canvas |
clear_signature | Clear signature |
ranking_position | Position |
ranking_unranked | not ranked |
ranking_choose_position | Choose position |
ranking_instructions | Alt 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).