Translating a Questionnaire
One questionnaire can be fielded in several languages at once. Each respondent answers in the language they pick, and every response lands in the same dataset with a column recording the language it was answered in. You do not copy the questionnaire per language: a translation sits beside the questionnaire and replaces only the text a respondent reads.
How translations work
Section titled “How translations work”A questionnaire is written in one language, its source language (the language you chose when you created it). A translation is the translated text of one questionnaire version in one other language.
- Text only. A translation replaces titles, hints, option labels, matrix rows and columns, the statements of a question group, slider and switch end labels, placeholders, and the messages shown when an answer is refused. Item ids, option codes, branching, preconditions, postconditions and code blocks always stay those of the source.
- The formal verification is the source’s. Z3 validation runs on the source questionnaire only, so a translation never changes a verdict, the flow, or the stored answer codes. A “2” means the same option in every language.
- One translation per language and version. Translations are into the supported languages: English, Spanish, French, German and Hungarian. The source language takes no translation: its text is the questionnaire itself.
- Any source language. The source language may be any language, not only a supported one (see Questionnaires in other languages).
Questionnaires in other languages
Section titled “Questionnaires in other languages”A questionnaire may be written in a language Askalot’s own pages are not offered in, such as Italian, Japanese or Brazilian Portuguese. Choose Other language… in the questionnaire’s language select in Targetor and enter the language’s code, a BCP-47 tag such as it, pt-BR or zh-Hant. Through MCP or the API, pass the same code as language. An imported PDF keeps the language read from its pages.
- The code is stored in one spelling.
pt_bris stored aspt-BR. A regional variant of a supported language is stored as that language:de-ATis German, and its respondents get German pages. - A code that cannot be stored is refused, with a sentence naming the rule: a 2–3 letter language, an optional 4-letter script and an optional region, at most 10 characters.
- Respondents read the questions in the questionnaire’s language and the page around them in their own. The buttons, messages and invitation are shown in the respondent’s preferred language, else the language their browser asks for, among the supported ones, else English. Interviewer mode and the AI assistant skip the browser step.
- Translations work as for any questionnaire. A complete translation into a supported language is offered beside the source, and the picker names the source in its own words (italiano).
- Two wording checks are not run. Validation reads Comment titles and “none of these” options for their wording in the supported languages only. For another language, when the questionnaire has a Comment or a Checkbox question, it reports Wording checks not run for this language (
language_not_judged) instead of a clean result, so read those titles and options yourself. A?in a Comment title is still flagged. - Templates come in the library’s languages. The template catalog and the copy it makes follow your language when the library offers it; otherwise both are in English, and the catalog says so. A copy is written in that language and carries every other language the library offers as a translation, so it can be offered to respondents in those languages straight away. To use a template in a language the library does not offer, create it in English, rewrite its text, and change the questionnaire’s language in Targetor before the first survey is answered.
What a translation may not change
Section titled “What a translation may not change”A save is refused, with the reason named for each text, when it:
- names an item, block or option code the source does not have (a translation cannot add an option or change a code);
- translates only part of a positional list: matrix rows and columns, question-group statements and validation messages are matched by position, so such a list is translated whole or not at all (option labels are matched by code and may be translated one by one);
- contains markup that is not allowed, such as
<script>. Ordinary formatting (<b>,<i>,<br>, links) is fine.
Complete translations are the only ones offered
Section titled “Complete translations are the only ones offered”A translation is complete when every respondent-visible text of its version has translated text. Only a complete translation is offered to respondents. Nothing falls back to the source text item by item, so a respondent never sees two languages mixed on one page, and the language column of the dataset stays true.
A campaign offers its questionnaire’s source language plus every complete translation of the version it fields. There is no per-campaign language setting: completing a translation is what makes the language available. The campaign page lists the offered languages, marks the source, and shows edited beside a translation a person changed in the editor (as opposed to one only the Designer wrote).
Translating with the Designer
Section titled “Translating with the Designer”Ask the Designer in Armiger’s chat, for example:
The Designer reads the current version, drafts the translation in a formal register (usted, vous, Sie, Ön), keeps every formatting tag and placeholder, and saves it. Two kinds of request behave differently:
| Request | What the Designer does |
|---|---|
| Translate everything | Drafts every text of the version. If a person already edited that language, it asks you before overwriting their text. |
| Fill the gaps | Sends only the texts listed as untranslated, so text that is already there (including your own edits) is kept. |
When approval of edits is on, each translation save is shown to you first as a before/after list of the texts it changes, and you can approve, edit or deny it. A Designer draft is fieldable with no further review step: if you approve it (or approval is off) and it is complete, respondents are offered it. Read the draft before fielding if your study requires it.
Translating in the editor
Section titled “Translating in the editor”In Armiger’s browser editor, open a questionnaire and choose Translations of This Questionnaire (the globe icon in the tab’s title bar). The translations tab shows:
- a language select listing every supported language except the source, each marked complete, N untranslated, frozen or not started;
- each text’s source beside its translation, untranslated texts first, each flagged;
- a Save that sends only the texts you changed. Emptying a text removes its translation.
The tab always works on the questionnaire’s current version. If someone saved a new version, or changed the same translation, while you were editing, the save is refused and your typing is kept so you can reload and re-apply it. After a new version, Reload opens the translation of that version, where every text whose source wording did not change is already carried over, so usually only your latest changes need re-entering. A saved edit in the editor is what marks a translation as edited by a person.
Editing the questionnaire after translating
Section titled “Editing the questionnaire after translating”Saving a new version of the questionnaire carries every translation forward:
- a text whose source wording did not change keeps its translation;
- a changed or new text becomes untranslated in every language;
- a positional list (matrix rows, for example) is carried only when the whole list is unchanged, since inserting one row shifts every later one.
So a small wording change does not force a full re-translation, but the language stops being offered on the new version until its gaps are filled. Ask the Designer to fill the gaps, or translate them in the editor. The previous version’s translations stay exactly as they were, so a campaign still fielding that version is unaffected.
Frozen translations
Section titled “Frozen translations”A language’s translation of a version freezes when the first real survey on that version is answered in that language, by a respondent or by an interviewer. From then on it cannot be edited or deleted, so every response in that language read the same words. Deleting a translation that has not frozen removes it from that version for good: later versions saved on top of it do not bring it back, and saving that language again starts it anew. Simulations, synthetic responses and previews never freeze a translation.
Only the language that was answered freezes: on the same version, a German translation nobody has answered stays editable while the Hungarian one is frozen.
What respondents see
Section titled “What respondents see”Picking a language
Section titled “Picking a language”When a campaign offers more than one language, the survey’s first page asks the respondent to choose, with each language named in its own words (Magyar, Deutsch, …). The page then reloads entirely in the chosen language, including buttons and messages. Until the first answer is saved the respondent can reopen the choice with Change language; the first answer locks it, and every later page, resume and reload stays in that language. When only the source language is offered, no picker is shown.
The picker preselects the first of these that the campaign offers:
- the respondent’s preferred language (below);
- the language their browser asks for;
- the source language.
In interviewer mode the interviewer picks the language for the respondent under the same lock rule, and the preselection skips the browser, which belongs to the interviewer: preferred language, then source.
Preferred language
Section titled “Preferred language”A respondent may have an optional preferred language, set when you create, edit or import respondents (in Targetor, through the API, or in an import file). It is only a preference: it never stops the respondent picking another offered language. It decides:
- the invitation’s language: the invitation is written in the preferred language when the campaign offers a complete translation in it, and in the source language otherwise;
- the preselected language on the survey’s first page.
AI assistant and simulations
Section titled “AI assistant and simulations”A respondent taking the survey in their own AI assistant starts in their preferred language when the campaign offers it, else in the source language, and the consent screen is already in that language. Until their first answer they can ask the assistant for another offered language, and the survey panel reopens in it; the first answer locks it, as on the web. Simulated and synthetic respondents follow the same rule, so a simulated respondent reads the questions in the language the real one would. Neither freezes a translation, and an operator or agent merely reading a survey’s current question never chooses its language: the respondent still gets the picker with their own preselection.
If the same survey is open in two places (two browser tabs, or the web and an AI assistant) and the language is changed in one, an answer from the other is not saved. That page asks for the language again instead, so no answer is recorded against wording the respondent did not see.
Analysing responses in several languages
Section titled “Analysing responses in several languages”Every response records the language it was answered in; a response answered with no picker records the source language. Responses in all languages of a campaign merge into one Bronze dataset, and because a translation changes text only, identical choices carry identical codes.
Bronze and Silver carry the language as the _language row-metadata column, Gold keeps it unless you remove it from the column layout, and every export includes it, so you can split any result by language or test for a language effect. Variable and value labels in exports (SPSS included) stay in the source language. Bundles extracted before the column existed gain it when you re-extract.
Translations over MCP and the API
Section titled “Translations over MCP and the API”The same operations are available to AI assistants and scripts: get_qml_translation, list_qml_translations, save_qml_translation and delete_qml_translation, and the matching REST endpoints under /api/v1/questionnaires/{id}/versions/{version_id}/translations. A translation saved this way counts as written by an agent or a program, never as edited by a person, even when it uses your own sign-in.
The language of Askalot’s own pages
Section titled “The language of Askalot’s own pages”Askalot’s own pages follow a separate setting from a questionnaire’s languages. The home page, Profile Settings, user management, the organization pages, the audit trail, AI simulations and the sign-in pages are shown in English, Spanish, French, German or Hungarian:
- Your own choice first. Set it under Profile Settings → Language.
- Then your organization’s default. An organization admin sets it on the Organization page; it applies to every member who has chosen none. When you work in a second organization, that organization’s default applies.
- Then your browser’s language, when it is one of the five, and otherwise English. The sign-in pages always follow the browser, because nobody is signed in yet.
The audit trail’s, the simulations’ and Profile Settings’ dates and times follow the page’s language, and so do the amounts on the Platform pages. Pages not translated yet (the campaign, analysis and editor pages) stay in English for now. Respondents never see this setting: a survey is always shown in the language its respondent picks from the questionnaire’s translations.