{# The rendered locale, as a BCP-47 tag (``zh_CN`` -> ``zh-CN``); English, the source locale, stays ``en``. #} {# htmx 4 swaps any response that is not 204/304 by default; this app raises HTTPException for genuinely unexpected conditions and relies on the client not swapping that body into a fragment target. Restore htmx 2's no-swap. #} {% block title %}clear-record{% endblock %} {# Compiled, committed build output (Vite + Tailwind v4): htmx and Alpine are bundled in, so the console is offline with no CDN and no hands-kept vendor files. Stable filenames — see packages/clear-record/frontend/README.md. #}
{# A record dot, inline: no icon font, no request. #}

clear-record

{{ tr("project console") }} {# Top-level navigation. Real links, so a click works with no JavaScript; `hx-boost` turns it into an in-place body swap with history when JS is available. The current page is marked, never by colour alone. #} {% block status %}{{ tr("ready") }}{% endblock %} {# The language switcher, beside the header's other controls: a plain form POST and a page reload — no client-side i18n framework. Each option is its own endonym so the control is legible in either locale; the current one is filled in and marked `aria-current`. #}
{% for code, name in language_choices %} {% if request.state.locale == code %} {{ name }} {% else %} {% endif %} {% endfor %}
{{ tr("Diagnostics") }}
{# The upgrade path is a notice, never a hijack: only a marker naming a different version shows it, and Dismiss records the marker (ticket 04). The Setup page carries its own update copy, so the notice is suppressed there. #} {% if setup_update and nav != 'setup' %}
{{ tr("clear-record was updated to {version}.", version=current_version) }} {{ tr("Review setup") }}
{% endif %}
{% block body %}{% endblock %}