All settings @switch (activePanel()) { @case ('languages') { @if (belowBar().length > 0) { {{ belowBar().length }} language is below the 80% accuracy bar and is therefore NOT answering automatically — it detects and routes to a person. A list where every flag looks supported is how a customer finds the gap instead of us. } @for (language of languages; track language.code) { {{ language.name }} {{ language.nativeName }} {{ language.trafficShare }}% {{ language.rtl ? 'RTL' : 'LTR' }} } {{ detectionFallback }} } @case ('flows') { @if (partiallyTranslated().length > 0) { {{ partiallyTranslated().length }} flow(s) are partly translated. That is the dangerous state: a flow that speaks Arabic until something fails, then apologises in English, is worse than one that never claimed to. } } @case ('rtl') { {{ rtlDone() }} of {{ rtl.length }} surfaces mirror fully. Two of the rest are decisions rather than gaps — the reason is on each row. } @case ('formats') { Input is normalised on the way in and formatted per locale on the way out. The 03/09/2026 pair below is why a date is never parsed without a locale — same string, two different days. @for (rule of formats; track rule.id) { {{ rule.kind }} {{ rule.locale }} {{ rule.input }} {{ rule.normalised }} } } } @switch (activePanel()) { @case ('languages') { @if (selectedLanguage(); as language) {

{{ language.name }}

{{ language.nativeName }} · {{ language.rtl ? 'right-to-left' : 'left-to-right' }}

Recognition
How it is detected

{{ language.detection }}

@if (language.weakness) {
Known weakness {{ language.weakness }}
}
Across the set
} @else { Select a language. } } @case ('flows') { @if (selectedFlow(); as flow) {

{{ flow.name }}

{{ flow.languages.join(' · ') }}

Coverage
@if (flow.gaps) {
What is missing {{ flow.gaps }}
} @else {

Every node is translated.

} Open Flow Builder } @else { Select a flow. } } @case ('rtl') { @if (selectedRtl(); as surface) {

{{ surface.surface }}

{{ surface.state }}

Detail

{{ surface.detail }}

Coverage

Where a surface is not mirrored, the row says whether that is unfinished work or a deliberate choice. Both are legitimate; only one needs scheduling.

} @else { Select a surface. } } @case ('formats') { @if (selectedFormat(); as rule) {

{{ rule.kind }} · {{ rule.locale }}

{{ rule.input }} → {{ rule.normalised }}

Why

{{ rule.note }}

Ambiguous inputs

Those are the ones that silently produce a wrong answer rather than an error — the failure mode worth designing against.

} @else { Select a rule. } } }