> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.apologist.ai/console/configuration/configuring-languages/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.apologist.ai/_mcp/server. # Configuring Languages > Configure language and locale behavior for an Apologist AI Console Agent Use language settings to make an Agent available to audiences in the languages they expect. ## Purpose Choose which languages an Agent supports, set the language it falls back to, decide whether a conversation keeps its first language, and optionally extend its reach with real time translation. ## Prerequisites * A configured Agent. See [Quickstart](/console/get-started/quickstart). * A list of the audience languages you intend to support. * Permission to edit Agent settings for your team. ## Steps #### Open the Agent's Language Settings Select **Agents** in the left-hand navigation, open your Agent, then choose the **General** page and the **Language** tab. ![The Language tab of the Seeker Agent's General page in Console, showing the Supported Languages and Default Language fields and a collapsed Advanced Language Settings section.](/_fern-files/_img/e8f41f9b668d4f76bf82a49125c9c7048d2d54e8ac2d3be4d4d08c36acd07e9f.webp)![The Language tab of the Seeker Agent's General page in Console, showing the Supported Languages and Default Language fields and a collapsed Advanced Language Settings section.](/_fern-files/_img/7c0eb2b298d2d26f9665b6e2fc9ecf44cac3e65e2cd6b0154bdfaa24cd58bc7b.webp) #### Choose the Supported Languages In **Supported Languages**, select each language the Agent should offer. Each language is listed once, by its English name. Leaving the field blank makes every [available language](/console/configuration/configuring-languages/available-languages) supported. Select languages only when you want to restrict the list. #### Set the Default Language First-time visitors on the Agent's site start in **Auto**. Each message is detected on its own, and the reply uses that language. **Default Language** is the fallback when a message has no detected language. A supported language can list detector codes. A message read as one of those codes uses that language when the detected language itself is not supported. The site also uses the default for the chrome when the browser language is not supported. If neither the Agent nor a channel has supported languages, the detected language is kept. This list uses the same English names as **Supported Languages**, and it only includes the languages you selected there. If you narrow the supported languages later, confirm the default is still among them. #### Persist Conversation Language **Persist Conversation Language** is off by default. A language chosen in the selector is sent with the message and is the reply language. That message is not detected. In **Auto**, the message is detected. While **Persist Conversation Language** is off, the selector stays on **Auto**, so the next message is detected again. The page language, its direction, and the Bible list still follow each reply, including a language the Agent does not offer. Turn it on and a detection the Agent offers selects that language in the switcher, so later messages there name it until someone chooses **Auto** again. A [messaging channel](/console/interfaces/messaging-social-channels), and any other request that does not name a language, detects each message on its own while this is off. Turn it on to keep the first language for later messages that do not name one. That includes a visitor who returns the selector to **Auto**, and each later message on a channel. A language chosen in the selector is still sent as-is. #### Extend Reach With Real Time Translation (Optional) Expand **Advanced Language Settings** to find two more controls: * **Use Real Time Translation for Specified Languages** translates incoming prompts into English and translates the Agent's responses back into the language the user wrote in. This widens language coverage well beyond the built-in list. * **Real Time Translation Languages** limits that behavior to specific languages. Search lists every language a translation provider offers, not only **Supported Languages**. Each language is listed once per translation provider, as `Spanish ยท Google Cloud Translate API (100 credits)`, and you can select more than one provider for the same language. The field stays disabled until the toggle above is on. Leaving it blank applies real time translation to every non-English language the base model does not support. The language selector in the Console header includes both **Supported Languages** and **Real Time Translation Languages**. Each language appears once, by its English name. English never uses real time translation, whether or not it is selected. > **Warning** > > Real time translation consumes the number of additional credits shown on the selected language for every response it handles. Leaving the language list blank applies it to every non-English language the base model does not support, using the default provider's credit amount. Select the specific languages you need. > **Note** > > If you do not see **Advanced Language Settings**, real time translation is not included in your team's current plan. #### Save And Confirm Select **Save Changes**, then open the Agent's live URL and use the language selector to check that the languages you expect are listed and that a first visit opens in Auto. ## Expected Result The Agent offers the languages you selected and opens in **Auto** for first-time visitors. The first **Auto** message is detected, and that detected language is the reply language even when it is not one the Agent lists. While **Persist Conversation Language** is off, the selector stays on **Auto**. Turn it on and a detection the Agent offers is selected in the switcher, so later replies stay in it until someone chooses **Auto** again. A detection the Agent does not offer leaves the selector on **Auto**. While a message still does not name a language, it is detected on its own when **Persist Conversation Language** is off, and it stays in the first language when that setting is on. A language chosen in the selector is the reply language either way. Real time translation can cover additional languages. ## How the Language and Bible Translation Are Chosen Every message is answered in one language, and scripture in that answer comes from one translation. While the selector stays on **Auto**, the page language, its direction, and the Bible list follow the latest reply. Those two results are the effective language and the [effective Bible translation](/console/configuration/configuring-bible-translations#how-the-bible-translation-is-chosen). ### The Page Language ```mermaid flowchart TD open["Someone opens the Agent"] --> address{"Does the address name a supported language?"} address -->|Yes| useAddress["Show the page in that language"] address -->|No| saved{"Is a supported language saved, and the address is not Auto?"} saved -->|Yes| useSaved["Show the page in the saved language"] saved -->|No| browser{"Does the Agent support the browser language?"} browser -->|Yes| useBrowser["Show the page in the browser language, with the selector on Auto"] browser -->|No| useDefault["Show the page in the default language, with the selector on Auto"] ``` A language prefix on the path is saved and opened as a language in the address. The introduction and the other translated page text follow this page language. The first message is still detected while the selector says **Auto**. ### The Reply Language ```mermaid flowchart TD msg["A message arrives"] --> named{"Does it name a language?"} named -->|Yes| chosen["Use that language and skip detection"] named -->|No| stored{"Is Persist on, and does this conversation already have a language?"} stored -->|Yes| reuse["Use the stored language"] stored -->|No| detect["Detect the language of the message"] detect --> related{"Does a supported language stand in for this detection?"} related -->|Yes| useRelated["Use that supported language"] related -->|No| listed{"On the channel list or the Agent list?"} useRelated --> listed listed -->|Yes| keep["Use the detected language"] listed -->|No list is set| keepAny["Use the detected language"] listed -->|A list is set, and it is on neither| keepUnlisted["Use the detected language"] ``` A named language is one the visitor picked in the selector, or one an API request sent. On the site, **Persist Conversation Language** decides whether a detection the Agent offers also moves the selector off **Auto**. While it is off, **Auto** stays selected and the next message is detected again. While it is on, later messages name that language until someone chooses **Auto** again. A channel has no selector. With **Persist Conversation Language** off, each of its messages is detected. With it on, the first language is kept for later messages that do not name one. The first language is stored on the conversation either way. A channel list is checked only while a message is being detected, ahead of the Agent list. A detection is kept whether or not it is on those lists. The Agent default is used when detection finds no language. ### How the Reply Language and Translation Are Used The reply language and the [Bible translation chosen for it](/console/configuration/configuring-bible-translations#how-the-bible-translation-is-chosen) are what the answer is built from. The model is instructed to answer in the reply language. When real time translation handles that language, the model answers in English and the finished answer is translated back. [Language Handling Instructions](/console/configuration/configuring-advanced-context) receive the language the model is answering in through the `{language}` tag, so the tag is English on a translated turn and the reply language on every other turn. Scripture is fetched from the chosen translation, and [Scripture Handling Instructions](/console/configuration/configuring-advanced-context) receive its name through the `{bible}` tag. The verses are in the reply language. When that language has an explicit scripture fallback, the verses stay in the fallback language. When no edition exists, the model writes the verses in the reply language. Sources are retrieved in the reply language. When that language is not the site default, sources in the default language are included as well. The reply language is stored on the conversation, and **Persist Conversation Language** decides whether a later message that does not name a language reuses it. ## About the Page Language Switcher The language dropdown in the top right of the Agent pages is a different control. It does not change what the Agent supports. It selects which language's content you are currently editing. Its options are the Agent's supported languages and real time translation languages, with each language shown once by its English name. Several settings store a separate value per language, including the Bible translation defaults covered in the next guide. When you edit those, check the page language switcher first so your change lands on the language you intended. ## Troubleshooting * **A language is missing from the Default Language list.** Add it to **Supported Languages** first, then reopen the Default Language field. * **Later messages stay in the first language.** On the site, that means **Persist Conversation Language** is on: a successful **Auto** detection selects that language in the switcher. Choose **Auto** again when the next message should be detected. While that setting is off, the selector stays on **Auto** and each message is detected. On a channel, or any request that does not name a language, the same reuse means **Persist Conversation Language** is on. A language chosen in the selector is used either way. * **Advanced Language Settings is not shown.** Real time translation is a plan feature. Confirm your subscription tier. * **The Real Time Translation Languages field is greyed out.** Turn on **Use Real Time Translation for Specified Languages** first. * **The live Agent still shows other languages.** Confirm you saved the change, then reload the Agent's site. ## Next Step Continue to [Configuring Bible Translations](/console/configuration/configuring-bible-translations). > Configure language and locale behavior for an Apologist AI Console Agent ## Docs - [Available Languages](https://docs.apologist.ai/console/configuration/configuring-languages/available-languages.md): Languages an Agent can support, with local names, codes, and translation providers