Skip to content
XICBOT

Settings

Deutsch
Language detection in our own code

The Assistant Answers in the Language of the Sentence, Not of Your Setting

Before the first character of an answer exists, XICBOT determines the language of the message in its own code: from function words and characteristic characters, with no external service and no extra model call.

In plain language

The assistant detects the language of each message. It does this itself, with no outside service. Then it answers in that language. If the visitor switches language, the answer switches too. All languages use the same knowledge base. So you need no duplicate content. If the language is unclear, it does not guess.

Request a free demo View features

  • Answers with a source reference
  • Loads only after your consent
  • No minimum term, cancellable monthly

The result stands as the last line of the instruction to the model — further up it was lost between the excerpts in one of our measurements, and the model answered in the language of the source. If the visitor switches mid-conversation, the answer switches too. One and the same knowledge base carries every language; nothing is translated. Where detection stays uncertain it does not guess, it leaves the field empty. Hosted in Germany, GDPR-compliant.

42 of 48
answers carrying a source reference
XICBOT, own measurement series of 11 September 2026
8 of 8
questions without a basis declined instead of guessed
XICBOT, own measurement series of 11 September 2026
2,670
sections from 70 documents in our own knowledge base
XICBOT, count in our own database
24.1 KB
loader on your page, compressed
XICBOT, own measurement of the delivered files
A conversation that switches language — and a sentence that yields none, Example conversation, reconstructed
  1. Visitor:Bonjour, livrez-vous aussi en France ?

  2. Assistant:Bonjour ! Oui, nous livrons en France. Le délai indiqué est de trois à cinq jours ouvrés.

    • Source: shipping terms — the section is stored in German and was rendered for the answer
  3. Visitor:Thanks — can we continue in English? Is this item in stock?

  4. Assistant:Of course. Yes, the item is in stock and ships tomorrow.

    • Product recommendation · Cabin Trolley 55 cm · 129 € · in stock · Add to cart · Details
  5. Visitor:Merci !

  6. Assistant:Avec plaisir. Si une autre question se pose, je suis là.

    • Too short to detect — without a result the language the conversation began in applies

Ask it yourself, Assistant of this website

Automated assistant

Enter sends, Shift and Enter starts a new line.

The assistant only loads after your consent. Privacy

How a Message Becomes a Language

Language detection here does not mean that a service is asked. It means two lists, a score and a threshold, all inside the same process that builds the answer. That costs no further call and no transfer to third parties.

  • One point per recognised function word, half a point per characteristic character, capped at two
  • If no language wins clearly, the field stays empty rather than guessed
  • The answer language follows the current sentence, not the assistant setting
  • The knowledge base is not translated — language lifts a section’s rank, it excludes none
  • Detection before the first character

    The language of the message is determined in our own code before the model is asked at all. There is no external service for it, no second model call and no request that sends your text to a translator.

    • Function words are stored for German, English, French, Spanish, Italian, Dutch, Polish, Portuguese and Turkish
    • Characteristic characters exist only for some of them — English and Dutch have none
    • The measurement is taken on the message itself, not on the visitor’s browser setting
  • No result when in doubt

    If the score stays below one point, or the runner-up language is less than half a point behind, nothing is written. The reason stands as a sentence in the source: a guessed “de” would sit in the database like a measured one.

    • An empty field is a statement: it says that no measurement was possible
    • Very short messages — a thank you, a word of agreement — regularly yield no language
    • Without a result the language of the conversation applies, then that of the assistant, finally German
  • The language line stands at the very bottom

    The model receives an explicit instruction about which language to answer in. It stands as the last line behind the excerpts and the tools, because a measurement showed that further up it sinks between the excerpts and the model then answers in their language.

    • The sentence names the visitor’s language explicitly, not the one in the settings
    • If the visitor switches, the instruction switches with them — sentence by sentence
    • The position of the line is not a matter of style but the outcome of a counter-check
  • One knowledge base, no language versions

    Your sources stay as they are written. Every section is given a language when it is read in, and the search prefers matching sections — it does not exclude the others. A German price list is the right answer to an English question when there is nothing else.

    • A section’s language is determined once on reading in, from its opening
    • A language match lifts the rank; it opens no threshold and shuts nothing out
    • Sections without a detected language are neither preferred nor penalised
    • Rendering into another language happens in the answer, not in the stored content
  • The frame knows two languages

    The widget interface — greeting, input field, notices, refusals — exists in German and in English. A third version would be a claim about a translation nobody has checked; that is why there is none. This concerns the frame, not the answers.

    • The frame language is set at the embed snippet or on the assistant
    • An unknown value at the snippet falls back to the server setting
    • Three status sentences in the widget so far exist only in German
    • The answers themselves are untouched by this — they follow the message
  • The analytics show what people asked in

    The distribution of conversations knows two attributes: the language and the window class of the device. That shows you which language areas the questions come from before you decide which sources to add.

    • Conversations without a detected language stand apart and are added to no language
    • The conversation list can be filtered by language, alongside assistant, channel, status and period
    • What follows from it is a decision about content, not a switch

What does not stand here is a list of languages the assistant masters. No such list exists in the source: there are the word lists of the detection and the names written into the instruction to the model. Anyone naming a figure at this point names one that nobody has measured.

The distribution by language sits in conversation analytics, the way the search works under knowledge base.

1.3 s

to the first character of the answer, median

64 questions to our own assistant, not to customer projects

Language is a filter, not a second application

  • The language filter separates conversations without needing a second interface.

  • In the distribution, conversations without a detected language stand apart instead of being added to one.

  • A test conversation checks a wording in the chosen language before it goes live.

Demo account with sample data, German interface
The conversation view: the list of conversations with question and channel on the left; filters by assistant, channel, status, language and date range on the right, a switch for answers without cover and a test conversation.

A Question in French: Detection Catches — or It Does Not

Both cases are provided for, and both run through without a query. The difference is not whether an answer comes, but where its language comes from.

Detection does not catch

  • The message is too short or holds no known function word — common with thanks, agreement or a bare product name
  • The language field of the message stays empty; only what was measured is written
  • The answer takes the language of the conversation, then that of the assistant, finally German
  • The search carries on without the language bonus and finds the same sections in a different order
  • If the frame does not know the language code, or none is present, no language line is produced in the prompt — a wrongly named one would be worse than none
  • In the analytics the field stays empty: a guessed "de" would sit there looking like a measured one

Detection catches

  • Function words and characteristic characters produce a score with a clear gap to the runner-up language
  • The language is attached to the message and goes into the instruction to the model as its last line
  • The answer comes in French even when the section found is written in German
  • Sections in that language rise in rank; none is excluded by it
  • The language line names the language explicitly and expressly asks for a translation of whatever the excerpts contain
  • In the analytics the measured language is recorded and can be used as a filter across conversations

The language of the conversation is written at the first sentence that yields one and is not corrected afterwards. The answers still follow each individual sentence — start in German and continue in English and you get English. The value once set on the conversation, however, stays as it was and appears that way in the analytics.

What This Means for Your Content

The effort of a multilingual assistant lies not in the language but in the sources. What your content does not hold, it finds in no language; what stands there in German it renders in French, as long as the question leads it there. The first question before the start is therefore not “which languages” but “which answers”.

The second question is the one about the source passage. A language match shifts the order of the excerpts; it does not replace a missing section. If an answer differs for a market — different shipping times, different returns, different prices — it belongs in as a source of its own and not as a translation of the same page. How the knowledge base is built

  • One source per answer, not one source per language
  • Differences between markets belong in as their own section, not as a translated copy
  • Questions without a source passage stay unanswered — the same in every language
  • Prices, deadlines and opening hours stand in one place and therefore apply everywhere
  • A new market means adding sources, not setting up a second assistant
  • The list of questions without a source passage says which source is missing next

43 of 48

questions without a handover to a person

measured on a single assistant on our own knowledge base, not on customer projects; a figure from live operation is not yet available

From the First Source to the First Foreign-Language Answer

The path differs from a single-language setup at exactly two points: when the sources are read, where every section is given a language, and at acceptance, where the questions are asked in the target language instead of German.

  • No second assistant, no second widget, no second index
  • No translation of your sources as a precondition
  • Acceptance runs in the language that will be used later
  1. Initial conversation and stocktaking

    We look at which markets your enquiries come from today and in which language the material exists that the assistant is to answer from. That decides more about the quality of the answers than any setting.

  2. Reading sources, determining the language per section

    The crawler reads your pages and documents and splits them into sections. Every section is given a language on reading in, from its opening and with the same detection that later measures the visitor message. Where it finds nothing, the field stays empty.

  3. Counter-checking in the target language

    Before release, questions are asked in the language that will be used later. This shows whether a German section reaches a foreign-language question at all — the language bonus shifts the order, it does not replace missing content.

  4. Embedding and setting the frame language

    One script in the page head is enough. At the embed snippet you set whether the interface is labelled in German or in English; without a value the assistant setting applies. The language of the answers is independent of it.

  5. Operation: reading what was asked

    The distribution by language shows which markets actually write, and the list of questions without a source passage shows where a source is missing. Both lead to content being added — not to a switch that unlocks a language.

We name no deadline here: how long it takes depends on the volume and state of your sources, not on the number of languages. You see the state yourself during setup, step by step in the documentation.

Setup once, operation monthly

The price does not depend on the number of languages — nothing in the product counts languages. What is counted is the monthly allowance of the package, and an answer in French uses as much of it as the same answer in German.

Multilingual entry point

from 49 € per month net

Minimum term: none, cancellable monthly

  • Multilingual with no surcharge per language in the Start package
  • Start: operation from 49 € per month net, setup from 990 € net
  • Pro with shop, product cards and cart from 149 € per month net
  • Free initial consultation and demo with a test assistant for your website

All prices net, plus VAT Source: XICBOT price list, as of 11 September 2026

One Knowledge Base Instead of Many Language VersionsThe advantage lies not in a figure but in the upkeep: you keep your content current in one place, and the assistant renders it in the language of the question. Because an assistant can be wrong too, its answers stay bound to your own content, and handover to a person is open at any time — for foreign-language matters as for German ones.

The multilingual assistant is already included in the Start package: a one-time setup from 990 € net (individual training and integration) plus operation from 49 € per month net (hosting in Germany, care, updates, GDPR). Additional languages come at no surcharge per language. For shop sales with product cards and cart, the Pro package from 149 € per month net. Every project begins with a free initial consultation and a demo. Ongoing services are booked individually and can be cancelled monthly; there is no minimum term.

Translated Duplicate Pages or One Knowledge Base

Anyone selling internationally usually maintains their answers several times over: one page per language, one history of changes per page. The cost of that is not on the invoice but in the places that are forgotten at the next update. The second common route is a separate chatbot for each language: every language then becomes a build of its own, with its own maintenance, its own rules and its own reporting.

An assistant on one knowledge base turns this around: the answer exists once, the language arises only in the reply. That has its own cost — the section found is then not in the language of the question, and the model renders it at the moment of answering, without anyone having read the wording beforehand.

The two do not rule each other out. Translated pages stay where they are needed: for search engines, for legal texts, for campaigns. The assistant does not take their place; it answers what stands between them. Shop assistant · Support assistant

  • One change in one place instead of one change per language version
  • No reconciling which language version carries the newer state
  • A new market costs sources, not a second build
  • The tools do not depend on the language: cart, enquiry and handover run with the same approvals, whatever language the question is in
  • The rendering arises at the moment of answering and is not edited
  • Wordings that must be exact belong in as their own source, not in the rendering
  • Legal texts and mandatory disclosures remain a matter for the site, not for the assistant

Which Languages Do Your Customers Use?

We look at which markets your enquiries come from today and, in a test, put the same question to the same content in two languages. What comes back says more about the state of your sources than any promise.

Request a multilingual demo See the knowledge base

Frequently Asked Questions About the Multilingual Assistant

The questions we are asked about multilingual operation rarely concern the technology and mostly the content: what has to be translated, and what does not.

Which languages can the assistant answer in?

There is no fixed language menu: the assistant answers in the language of the sentence it has just read and follows a switch mid-conversation. Detection works in our own code with function words and characteristic characters, without an external service and without an extra model call; word lists exist for nine languages: German, English, French, Spanish, Italian, Dutch, Polish, Portuguese and Turkish. If a sentence stays ambiguous, the field stays empty. For content it draws on your knowledge base; that base is not filtered by language, language acts as a ranking bonus. Which languages matter for your markets, and which content is missing for them, we clarify in the initial consultation.

Do I have to translate my content into every language?

No. You maintain your content only once in your source language. The assistant detects the visitor’s language in its own program code, without a request to any external service, draws its answer from this single knowledge base and replies in the language of the most recent question. Nine languages are detected; if detection remains ambiguous, nothing is guessed and the field simply stays empty. The knowledge base is not filtered by language — a section in your source language therefore also answers a question asked in another language. There are no translated duplicate pages that you would have to keep up to date separately. How the assistant is trained on your content is shown by the website assistant.

How does the assistant know which language someone speaks?

It recognises it from the message itself, in our own code and without any outside service: frequent function words are counted, along with characters typical of a language. There are word lists for nine language codes and character lists for seven — English and Dutch are recognised through the function words alone. If the result is not clear-cut, or the two best candidates lie too close together, the field stays empty instead of guessing German; a guessed value would otherwise sit in the evaluation like a measured one. The reply comes in the language of the current sentence: if the visitor switches mid-conversation, the assistant follows, and no language switcher is needed for it.

Can it also sell multilingually in the shop?

Yes. Product advice, product cards and the cart work across languages. Foreign-language customers also get recommendations and are guided through the chat into the shop, in a shop based on Shopware in the Community Edition. The assistant detects the language in its own program code and replies in the language of the most recent question; your catalogue remains the only source, because the knowledge base is not filtered by language. So you maintain product texts once and need no translated second version. Details are available with the shop assistant.

What happens when it hands over to a team member?

If a matter becomes personal or sensitive, the assistant is meant to hand over to a human: the conversation is then marked as handed over, the request becomes an enquiry in your account, and your team is notified. The visitor reads the reason for the handover in plain text beforehand and confirms it themselves. A second handover in the same conversation does not trigger a second notification. The visitor is not told by which route your business is notified — they only see that someone will get in touch. The conversation history is preserved, so your team does not start from scratch. How this looks in everyday use is shown by the support assistant.

What does the multilingual assistant cost?

Multilingual support is already included in the Start package: setup from 990 € net, operation from 49 € per month net. There is no surcharge per language, because the assistant detects the language from the visitor sentence and answers in that language instead of requiring a separate knowledge base per language. Word lists exist for nine language codes: de, en, fr, es, it, nl, pl, pt and tr. If the result is not clear, the language stays empty instead of being guessed. For multilingual selling with product cards and cart, the Pro package from 2,900 € net setup and 149 € per month net is suitable. Details under multilingual and pricing. All services can be cancelled monthly; there is no minimum term.

If your question is not here, it may be among the frequent questions or in the documentation — otherwise a short message is enough.

Free Demo

An Assistant for Your International Customers

In the initial conversation we look at your sources and put the same question once in German and once in the language of your most important export market. You then see both: the answer and the section it came from. Request a demo

Should Your Assistant Answer in Several Languages?

Tell us briefly which languages and markets matter to you. You receive a clear assessment and, on request, a free demo with a test assistant for your website — in several languages right away if you like. You can reach us by phone at +49 5123 9579000.

Enquiry in three steps

  1. 1. Topic
  2. 2. Your case
  3. 3. Contact

What is this about?

One click is enough, everything else is optional.

Tell us briefly about your case

Everything in this step is optional. It helps us reply with something concrete straight away instead of asking back.

Enquiries per month, roughly (optional)
When should it start? (optional)
How can we reach you?

Name and email address are enough. We reply personally.

We use your details to handle your enquiry. More on this in the privacy policy.