Languages
The Languages card on the board shows how your page views are distributed across browser language preferences. Each row is a two-letter language code extracted from the Accept-Language header sent by the browser, displayed in uppercase on the board.
How the language code is captured
Every browser request includes an Accept-Language header that lists the visitor's preferred languages in order of preference. StatelessID extracts the first two-letter language code from this header — the primary language tag — and stores it as the language class for the beacon. For example, a header of Accept-Language: en-US,en;q=0.9 is stored as en. A header of Accept-Language: de,en;q=0.8 is stored as de.
The full locale tag (en-US, pt-BR, zh-CN) is not stored. Only the two-letter primary subtag is kept. This means all English variants — en-US, en-GB, en-AU — are grouped under en, and all Portuguese variants — pt-BR, pt-PT — are grouped under pt. The board cannot distinguish between American English and British English.
If the Accept-Language header is absent, empty, or does not start with a recognisable two-letter code, the language is stored as an empty string and displayed on the board as (none). A visit with (none) is a counted visit; it simply has no language assigned.
What language data tells you
The language distribution tells you which browser language settings your visitors prefer. This is a proxy for the language your visitors read, but it is not a guarantee. A visitor whose browser is set to French may read your site in English because your site only has English content. A visitor whose browser is set to English may be in any country in the world.
Language data is most useful for content localisation decisions. If you see a significant fraction of visits with a browser language that is not your site's primary language, that is a signal that a portion of your audience may prefer content in that language. Combined with the Countries card, you can build a rough picture of your international reach.
Language data does not tell you whether visitors are actually reading the page in their preferred language, how long they spent on the page, or whether they found what they needed. Those questions require either a survey or a product that tracks user actions — both outside the scope of what StatelessID measures.
Reading the Languages card and drawer section
The Languages card in the four-card strip on the main board shows the top three language codes ranked by visit count for the selected range. Language codes are shown in uppercase. The compact card is a quick indicator of the top three; it does not show percentages.
The collapsible drawer contains an extended Languages table that shows up to eight rows, each with a horizontal bar proportional to its share of the range total. This extended table is the right place to read the language distribution more completely, especially if your site has a diverse international audience.
Rows below the privacy floor of five views are folded into Other. If your audience is highly concentrated in one language, Other will be small. If your audience is spread across many languages, Other may contain a significant count representing many small language communities.
Language versus country
Language and country are independent dimensions on the board. A visit attributed to the country DE (Germany) may have a browser language of en, tr, or any other code, depending on the visitor's settings. A visit attributed to the language en may come from any country in the world.
The board does not cross-reference language and country — you cannot ask "how many English-language visits came from Germany?" in the current board view. Each card shows an independent aggregate for its own dimension. For cross-dimensional analysis, use the CSV export and filter the exported data by both columns.
If you see a mismatch between what you expect from Countries and Languages — for example, a large fraction of DE country visits but very few de language visits — remember that many people in Germany browse with their browser set to English. This is common for technical audiences especially.
Privacy and language data
A two-letter language code is one of a small set of values (roughly 180 ISO 639-1 codes). It is a very coarse signal that covers hundreds of millions of speakers per major language. It cannot identify a visitor, and two visits with the same language code are completely indistinguishable from the language data alone.
StatelessID does not store the full Accept-Language header string, only the first two-letter primary code. The full header can include language weighting values (q-values) and regional codes that could be slightly more identifying. By storing only the two-letter code, the stored data is far coarser than the raw header.
Like all dimensions on the board, language data respects the privacy floor of five views. A language with fewer than five visits in the selected range does not appear as a named row and cannot be singled out. This applies even if only one person in the world uses that browser language setting — they will appear in Other, not as a named language row.
Troubleshooting
If a language you expect is not visible in the Languages card but you know your site has visitors with that browser language, confirm the date range is wide enough for that language group to clear the privacy floor of five visits. Narrow ranges on low-traffic sites will fold many languages into Other.
If the Languages card shows only Other and no named rows at all, the selected range has no language code with five or more visits. Widen the range or wait for more traffic to accumulate.