On this page
The usual way to run a form in three languages is to build it three times. Then you change one question in the English version, forget the other two, and a month later discover that your Spanish respondents have been answering a question that no longer exists. Your responses end up in three separate piles, and merging them becomes someone's least favourite afternoon.
HornetForms does it differently: one form, many languages, one pile of responses. This guide explains how it works and shares a few tips we picked up along the way.
Good to know: form translations will be part of the Pro plan, which is coming soon. On the Free plan, the parts of a form your respondents see (buttons, validation messages and so on) are available in 12 interface languages, so you can already run a form in, say, French or Japanese, and a form written in a right-to-left language gets a proper right-to-left layout. The rest of this guide explains how translations work on Pro and how right-to-left works everywhere.
One form, many languages#
Every HornetForms form has a form language: the language you write it in. You set it in Settings → Language. English is the default, but you can pick from 42 languages.
On Pro (coming soon), you'll be able to add up to 10 translation languages in the form's Translate tab. Each one is a translation of the same form, not a copy. That matters for two reasons:
- Answers stay together. Responses are stored against the same questions and options whatever the language. Your responses table, summaries, filters, exports and Insights combine every language automatically.
- You can still tell them apart. Each response remembers which language it was filled in, so you can filter by language or see it as a column in your CSV exports (and Excel exports on Pro).
Things like logic, formulas, hidden field names and the design are shared across all languages. You translate words, not the plumbing.
Translating: AI, CSV or your own keyboard (Pro)#
On Pro, the Translate tab shows the source text next to an editable translation, grouped the same way as the form: each page, the thank-you page, endings and settings texts. You can filter for strings that are Missing or Outdated, search, and everything autosaves.
There are three ways to fill it in, and you can mix them:
- Type it yourself. Fine for short forms, or if you speak the language.
- Translate with AI. One click fills in missing and outdated strings for a language. It never overwrites translations you or your translators wrote, and AI translations get a small badge so you know which ones a human hasn't touched yet.
- Export a CSV for your translators. Each language exports to a spreadsheet-friendly file. Your translator fills in the translation column, you import it back, and HornetForms checks every value and tells you about any lines it couldn't use. Importing never deletes anything.
Here's the part that saves the most headaches. When you change a question in the source language, its translations are marked Outdated. They keep working until you update them, but you'll see exactly what needs another look. No more Spanish questions that no longer exist.
Translations are part of the published version, too. Editing a translation shows "Unpublished changes" and goes live when you publish, just like any other edit. Your live form never changes halfway through a sentence.
Interface texts, sorted#
A form isn't just your questions. There are buttons ("Next", "Submit"), validation messages ("This question is required"), the password screen and the confirmation emails.
HornetForms ships these interface texts for 12 languages: English, Spanish, French, German, Italian, Brazilian Portuguese, Dutch, Polish, Japanese, Simplified Chinese, Arabic and Hebrew. Pick one of those as your form language (Free) or as a translation language (Pro) and the buttons come along automatically.
For other languages, the interface falls back to English unless you translate those texts yourself in the Translate tab's Interface group (Pro). A handful of things, such as the password screen, the closed-form page and the emails, always use the built-in packs, so check those if your language isn't in the list of 12.
Confirmation emails to respondents (and, on Pro, email verification messages) are sent in the language they used.
How respondents get the right language#
Once a form has translations (Pro), how does someone in Lyon end up with the French version? HornetForms checks, in order:
- The link. A link with
hf_langin it always wins. - A saved draft. If someone saved their progress and comes back, they get the language they started in.
- Their browser. If "Detect the respondent's browser language" is on (it is by default), the browser's preferred language is used when the form offers it.
- The form language, as a fallback.
A language link looks like this:
https://forms.hornetforms.com/f/your-form?hf_lang=fr
You don't need to build those by hand. The Share tab gives you a link and a QR code per language.
The language switcher. On a translated form (Pro), respondents can also switch language themselves with a small switcher on the form. It's on by default and appears once the form has at least one published translation. Switching keeps their answers and their place in the form, so nobody has to start over because the browser guessed wrong.
Embeds. If you embed a form on a website, add data-hf-lang to pick the language. Handy for multilingual websites: the German page embeds the German form.
<div data-hornetforms-embed="your-form" data-hf-lang="de"></div>
Right-to-left, done properly#
Arabic, Hebrew, Persian and Urdu are written right to left, and a form that just right-aligns the text doesn't quite cut it. Choosing one of these languages (as the form's own language on any plan, or as a translation on Pro) switches the whole form to a right-to-left layout, so text, options and buttons all run in the right direction.
Some details that are easy to miss:
- Keyboard navigation follows the direction. Arrow keys on rating scales, radio groups, the signature pad and the date picker move the way a right-to-left reader expects.
- Numbers use Latin digits when entered, so your number questions and calculations keep working the same in every language.
- Custom CSS gets hooks. If you style your forms with custom CSS (also Pro), you can target right-to-left forms with
.hf-form[dir="rtl"]and specific languages with:lang(ar),:lang(he)and friends.
A form with both English and Arabic simply switches direction when the respondent switches language.
Tips for multilingual forms that actually work#
A few things we learned the fun way:
- Keep labels short. German and Finnish are famous for long words, and a label that fits nicely in English can wrap onto three lines elsewhere. Short labels translate better everywhere.
- Avoid idioms and jokes in the source text. "Hit us up" and "piece of cake" confuse both people and machines. Puns are great in blog posts; they're less great in a question about allergies. (We're aware of the irony.)
- Check dates, numbers and currencies. Formats differ by country. If you ask for a price, say which currency. If a date matters, give an example.
- Have a native speaker review the AI draft. AI translation is a fast first pass, not a final check. Ask someone who speaks the language to read the form once, ideally in the Preview tab, so they see it in context.
- Test the right-to-left version yourself. Open the language link, click through every page and look at the thank-you page. It takes two minutes and catches the odd surprise.
- Re-check after edits. Use the Outdated filter in the Translate tab after changing the source text, then publish.
Give it a try#
Interface texts in 12 languages are part of the Free plan today. The features page lists everything else, and if your form needs logic too, our guide to conditional logic, answer piping and calculations pairs nicely with this one. Form translations are part of the Pro plan, which is coming soon; the pricing page has the details, and the Free plan stays free forever. Want to try it? Sign up for free. Merci, gracias, danke.