AreaAudit

Which languages each generator says it supports, and where

Which vendor declares a code that does not match

One declaration in this register carries a code that does not match the page it points at. It is written with the code for Breton, a language of western France, and it resolves to a Brazilian Portuguese subdomain. As of 2026-09-12.

A code that names one language and points at anotherOne alternate is declared with a two-letter code belonging to a language of western France and resolves to a Brazilian Portuguese subdomain. Brazilian Portuguese is written with a different code entirely, and nothing on the rendered page would show a reader the difference.What the code saysWhere it pointsLanguage namedA regional language of western FranceBrazilian PortugueseCorrect code for the targetA language code with a region attachedVisible to a page readerNoNoCounted in this columnNo, it sits among the discarded fifteenNobody reads markup, so a wrong declaration can sit for years
Fig. 1 It is recorded as a mismatch rather than silently corrected, because correcting it would hide what a declaration actually is.
Which lists each vendor actually namesFilled where the vendor names something in that column, hollow where no list is published at all.Which lists each vendor actually namesWhat is publishedWhat ispublishedRask AIRask AI — What is published: An alternate declared as br, pointing at Brazilian PortugueseRask AIRask AI — What is published: 16 alternates declared in allEveryone elseEveryone else — What is published: No mismatched code found
Fig. 2 Filled where the vendor names something in that column, hollow where no list is published at all.
Declared codes that do not match the language of the page they point at Recorded 2026-09-12.
ToolWhat is publishedDetail
Rask AIAn alternate declared as br, pointing at Brazilian PortugueseBrazilian Portuguese is written pt-BR
Rask AI16 alternates declared in all15 of them on language subdomains
Everyone elseNo mismatched code foundEvery other declared code matches its target language

Inclusion rule. Alternates whose declared code names a different language from the page it resolves to. Checking this requires opening each target. Order. The vendor with the mismatch first.

1A declaration can be wrong without being dishonest

Nobody reads markup. A two-letter code that happens to look like an abbreviation for Brazil is an easy mistake to make and an impossible one to notice from the rendered page, and it will sit there until somebody audits the site.

That is what a declaration is: a machine-readable assertion that can be false in ways no human reader of the page would ever see. It is worth one page of this register because it shows the limits of the evidence the whole column rests on.

2It is recorded rather than corrected

Normalising it to the code the vendor evidently meant would make the row tidier and would delete the finding. The register prints the code as written and says where it points.

The same discipline applies everywhere else: codes are transcribed, never rewritten. A cell that silently repaired a vendor markup would be reporting on a site that does not exist.

3The vendor also loses fifteen alternates to the counting rule

Of sixteen declared alternates, fifteen resolve to language subdomains and are not counted. So this row reads one in the site column while carrying the largest raw declaration in the register.

Both figures are printed on the vendor page. The mismatch sits inside the discarded group, which means it costs the vendor nothing in the count and is recorded anyway, because the markup is what the column reads.

4The three columns behind this question

Tools naming a list, column by columnCounted from named lists only: a bare total with no list does not count. The counts behind this question sit in the rows above. Recorded 2026-09-12.Tools naming a list, column by columnHow many of the 18 tools name a listHow many of the18 tools name a…Dialogue languageDialogue language — How many of the 18 tools name a list: 5 of 18 toolsDocument languageDocument language — How many of the 18 tools name a list: 1 of 18 toolsSite languageSite language — How many of the 18 tools name a list: 9 of 18 tools
Fig. 3 Counted from named lists only: a bare total with no list does not count. The counts behind this question sit in the rows above. Recorded 2026-09-12.
What the register holds in each column, as this question is answered. Recorded 2026-09-12.
ColumnHow many of the 18 tools name a list
Dialogue language5 of 18 tools
Document language1 of 18 tools
Site language9 of 18 tools

Inclusion rule. The three columns this register keeps. A column stays listed even when no vendor names a list, because silence in a column is itself recorded. Order. Alphabetical by column name.

  • Site languages
    One alternate is declared with the code br, which belongs to Breton, and points at a Brazilian Portuguese subdomaina code that does not match its targetrask.ai / recorded 2026-09-22
  • Site languages
    16 alternates declared: ar, br, cs, de, en, es, es-mx, fr, it, ja, ko, pl, pt, th, tr, zhraw count before the rule is appliedrask.ai / recorded 2026-09-22
  • Site languages
    Fifteen of the sixteen resolve to language subdomains; English alone sits on the host being countedwhere the alternates resolverask.ai / recorded 2026-09-22

5Sources

Counts and lists are read from the vendor pages named in the register, checked 2026-09-12. The counting rule is on how counted. Nearby: Sets inside sets, Site vs product.