Authoring content in multiple languages
Your users do not all speak the same language. Appilot lets you author every piece of content (knowledge entries, controls, forms, tools, and views) in more than one language, so the assistant answers each user in their own language without you maintaining separate copies of your app.
This page explains the pieces that make that work:
- Your domain's content languages: the set of languages you declare your domain in, with one marked as the source.
- The language bar at the top of every editor, which lets you edit any language directly.
- The knowledge article language, so each article is served in the right language.
- The Translations page, where you bulk-translate with AI from a source language into the others.
You are not limited to a fixed set of languages, and you are not limited to one language per site. You declare which languages a domain is configured in, and most sites serve several languages from the same domain. (The Backoffice interface itself is available in English, German and Spanish, but that is separate from the languages you author your content in.)
How the assistant picks a language
For each conversation, the assistant answers in the first language that applies:
- The user's own language. The extension and the widget tell Appilot which language the user is reading the page in. That preference always wins.
- Your domain's default language. When the user's language is unknown, the assistant uses the default language you set for the domain (see below).
- English. The final fallback when neither is known.
When the assistant needs a specific field, it uses the translation you wrote for that language. If you have not written one, it falls back to the original text you authored the field in (the source value), never to some other language. So a field you only wrote in German is shown as you wrote it in German, rather than being swapped for an English version you never approved.
So your job as a configurator is simple: declare the languages your domain serves, write each field in those languages, and mark one as the source. The assistant handles the rest per conversation. The user never sees the other languages, only the one resolved for them.
Setting your content languages
Open Apps → [Your App] → [Domain] → Overview and find Content languages. This is where you declare every language this domain is configured in, and it is the single place that controls which languages every editor offers, for knowledge, controls, forms, tools and views alike.
- Add a language for each language your site serves. Most sites serve several languages from the same domain, so add them all here.
- Click a language to make it the source (it shows a star). The source is the language you author in first: it is the base text every field falls back to when a translation is missing, and the language the assistant uses when it cannot tell what the user prefers.
- Remove a language you no longer serve. Removing it from the list does not delete translations you already wrote.
You can pick any language, not just English, German or Spanish, and you can change the set later.
Editing in each language: the language bar
Every editor (knowledge, controls, forms, tools, views, zones and action plans) has the same language bar at the top. It shows one pill per language your domain serves (the source is marked as the default), a Manage languages link to your domain's Content languages, and a Translations button. For an action plan, the translatable fields are its name, description, and each step's sentence (the action inside a step is the same in every language).
There are two ways to keep your content multilingual, and you can mix them freely:
- Edit any language directly. Click a language pill in the bar and the editor switches to work in that language right there. Author in whichever language you are comfortable in, in the same editor you use for everything else, no separate translate step.
- For controls, forms, tools, views and zones, you edit that language's version of each field inline. The source language edits the original text; any other language edits that language's translation.
- For knowledge, picking a language opens that language's article (a knowledge article is a whole document, so each language is its own article). If a language has no article yet, you are taken to the Translations page focused on it, where AI can create it for you.
- Bulk-translate with AI. Use the Translations button to translate from a source language into the others at once. This is covered in Translating with AI below.
Only the human-readable, prose fields are translatable (names, labels, descriptions). Technical fields (identifiers, page paths, selectors) are the same in every language and are not part of the bar. For tools, the description of each parameter is translatable too. Each language pill shows a small dot when that language is still incomplete, so you can see at a glance what is missing. To add or remove a language, use the Manage languages link, which takes you to your domain's Content languages.
Choosing a language for a knowledge article
A knowledge article is a whole document, so instead of translating it field by field, you write one article per language. When you create an article, set its Content language to the language it is written in. The list offered is the same set of content languages you declared on the domain, plus a Neutral / all languages option. Once the article exists you switch between its languages with the language bar at the top (there is no separate language picker in the body), so it works the same as every other editor.
- Set a concrete language (for example German) and the assistant prefers that article on conversations in that language.
- Choose Neutral / all languages and the article is served in every language, useful for content that is language-independent (a phone number, a price, a link).
Knowledge follows the same "never leave the user empty" rule as the rest of your content. For a conversation in a language you have not written an article in, the assistant uses, in order: the article in that language; otherwise the source-language version (or, if even that is missing, whichever language you did write). So an answer is always grounded in your knowledge, never blanked out just because one translation is missing. When the assistant has to use an untranslated article this way, the user's answer carries a small "Untranslated sources" note in its details, so it is clear the content was shown in its original language. That note is your cue that writing the missing translation would improve the experience.
Knowledge follows the same two ways. To author a language by hand, pick it in the language bar and the editor opens that language's article. To create a missing language quickly, use the Translations button (or pick a language with no article yet): AI writes it for you from your chosen source, and each translated article is linked to the original so the assistant serves the right one per conversation. Languages already covered are not offered again.
Translating zones
Zones (the descriptive page regions the assistant points to, like "the sidebar") are created in the in-page editor, where you pick the region on your live site. Their names and descriptions are translated in the Backoffice, on Apps → [Your App] → [Domain] → Zones, using the same language bar and Translations page as controls, forms, tools and views. The zone's identifier and selector are shown read-only there (you picked them on the page); only the human-readable copy is translatable.
Tracking coverage
To see how complete your translations are, open Apps → [Your App] → [Domain] → Translations. It shows, for each content language, how many of your records are fully translated, with one row and the same translated / total reading for every kind: Controls, Forms, Tools, Views, Zones, Action Plans and Knowledge. The Domain Overview also shows a compact version. Use it to find what is still missing before you go live in a new language.
Coverage looks only at the text your users actually read (a control's label and description, a tool's title, an article's content). The behind-the-scenes routing text the assistant uses to decide which tool to call is written once and is not part of the count, so a tool you have translated reads as complete even though that internal text stays in one language.
Translating with AI
You do not have to type every translation by hand. The Translations button on the language bar opens a dedicated page that shows every translatable field with the source version beside each target version. On that page:
- Pick the source language to translate from. It does not have to be your domain default; choose whichever language you have already written.
- Translate into the other languages. Use Translate this field with AI for a single field, Translate all to do the whole entity at once, or Copy from source when a field should stay identical.
- Review and adjust the suggestions next to the source. The AI is a starting point and you stay in control of the final wording.
- Save the reviewed translations.
The page works the same way for an entity (controls, forms, tools, views, zones, action plans) and for a knowledge article, and it shows how much of your AI authoring allowance the action will use.
What it costs
Translate with AI uses your organization's AI authoring allowance, the same monthly allowance that powers the editor's "suggest a description" feature. It does not consume your end users' assistant credits: configuring your app never spends the credits your users rely on to chat with the assistant.
If you reach the monthly allowance, the action pauses until the next month, or an administrator can raise the cap for your organization. Until then, you can still type translations by hand: pick the language in the bar and edit it directly.
A good workflow
- On the domain Overview, declare your content languages and star your primary audience's language as the source.
- Author each entity fully in the source language first, and tag each knowledge article with its language.
- Open Translations, translate with AI from your source, review beside the source, and save for the other languages.
- Use the completeness dots on the language bar to spot anything still missing.