WhatsWrapped

Your phone's language and the language you actually text in are different questions

Why a chat recap has to detect the language a conversation is written in, not the language WhatsApp's menus are set to, and what happens to top-phrase stats when it gets that wrong.

Two languages, one chat, and nobody ever asked you to separate them

Almost nobody has had a reason to name this distinction before, because until something starts counting your words, it does not matter. WhatsApp's interface language is a setting: it decides whether the button says "Send" or "Invia". The language of a conversation is a behaviour: it is whatever you and the other person actually type at each other, and it is decided by habit, by who the other person is, and sometimes by which half of the sentence you are in.

These come apart constantly. An Italian living in Berlin runs the app in English and texts their mother in Italian. A Spanish speaker keeps the phone in Spanish and writes to colleagues in English. Two Portuguese friends in London switch mid-thread depending on whether the topic is work or family. In every one of those cases, the interface setting tells you nothing useful about the text.

So a statistics engine that reads the interface setting, or the phone's locale, or the language of the export file's own header lines, is reading the wrong signal. Our engine detects the language people write in as a separate question from what WhatsApp itself is set to, precisely because the two routinely disagree.

What the language guess is actually for: throwing words away

The language decision matters for one specific job, and it is a subtractive one. Before any top-phrase list can be scored, the function words have to come out. Articles, prepositions, pronouns, auxiliaries: the, of, and, I, to, in Italian il, di, che, non, per. These are the most frequent tokens in any human conversation by an enormous margin, and they carry almost no information about what the chat was about.

A stopword list is the filter that removes them. The problem is that a stopword list is language-specific by definition. An English list has no reason to contain "che". An Italian list has no reason to contain "the". Neither one knows what to do with "anyway" dropped into the middle of a Spanish sentence.

This is why the order of operations matters. Detect the written language first, then apply that language's stopword list, then score expressions. Reverse it, or skip the detection and default to one language, and the filter is aimed at a vocabulary the chat does not use.

The two failure modes when the language is chosen wrong

Getting this wrong does not produce a slightly worse result. It produces one of two obviously broken ones, and they look nothing alike.

Failure one: nothing gets filtered. If an English stopword list is applied to a chat written in Italian, none of the Italian function words match. So they all survive into the scoring stage, and because they are the most frequent things in the chat, they win. Your top expressions come back as "non", "che", "per", "ma". Technically accurate, completely useless. It is a list of grammar, not a list of what you talk about.

Failure two: everything meaningful gets filtered. Aggressive stopword lists sometimes overlap across languages, or a chat gets scored against a list built for a language it only half uses. Words that carry real weight in one language are function words in another, and they vanish. The list comes back thin or empty, which reads as "we found nothing", when what actually happened is that the filter ate the content.

Both failures are silent. There is no error message, just a slide that looks wrong in a way you cannot immediately explain. If your top-word stats have ever looked like a grammar exercise, this is usually why.

Why phrases survive code-switching better than single words

There is a second design decision that happens to make bilingual chats more legible, and it was not built for that reason, but it helps a lot.

Top expressions are not just single words. The engine extracts one-, two- and three-word phrases, and multi-word phrases are scored higher than single words, so the result reads like things people actually say rather than a pile of isolated tokens. That deliberate weighting is covered in more depth in our piece on how top expressions work as chat n-grams.

The side effect for a mixed-language chat is useful. A recurring two- or three-word phrase is far more likely to be a real shared habit than a single word is, and shared habits in bilingual chats are often the exact bits that never get translated. The pet name stays in one language. The running joke stays in one language. The greeting stays in one language, even when the rest of the message switched. Those fragments hold together as phrases and come through the filter intact, because a stopword list removes individual function words, not multi-word units that happen to contain one.

This is also why a bilingual chat's top expressions can end up more distinctive than a monolingual one's. The phrases that survive are the ones that resisted switching, and those tend to be the most personal things in the chat.

What this means when you read your own recap

A few practical consequences.

If a chat is genuinely split between two languages, expect the detected language to reflect whichever one dominates the text, not whichever one you feel is your main language. A chat that is 80 percent English with Italian endearments sprinkled through will be treated as English, and those endearments will show up as content, because an English stopword list has no opinion about them.

If your top expressions look like function words, that is a signal about the language filter, not about you. It does not mean your conversations are empty.

And if the phrases that come back are in the minority language of the chat, that is not a bug. It is usually the most honest possible answer, because the words you refused to switch out of are the ones that mean the most. That is close to what we describe elsewhere as a signature word, a term that earns its place by being distinctively yours rather than merely frequent.

Try it with your chat

Frequently asked questions

Does changing WhatsApp's interface language change my stats?+

No. The language detection runs on the text of the messages themselves, as a separate question from what WhatsApp's menus are set to. Switching the app from English to Italian does not change which stopword list gets applied to a chat written in Portuguese.

Why are my top words all articles and prepositions?+

That is the classic sign that the stopword list did not match the language of the text. Function words are the most frequent tokens in any conversation, so if the filter for that language never ran, they dominate the ranking by sheer volume.

What happens to a chat that switches language mid-conversation?+

The detected language reflects whichever language dominates the text overall. Words from the minority language are not treated as function words, so they tend to survive filtering and appear as content, which is often why the untranslated pet names and inside jokes make the final list.

Why does the recap prefer phrases over single words?+

Top expressions cover one-, two- and three-word phrases, with multi-word phrases weighted higher, so the output reads like real things people say instead of isolated function words. In a bilingual chat this also protects the fragments that never got translated, since a stopword filter removes single function words rather than whole phrases.

Related terms