Files
computer-playbook/roles/web-app-docs/files/python/infinito_docs/templates/languages.html
T
kevinveenbirkenbachandClaude Opus 5 6a23926648 feat(docs): build and serve a translated site per language
Every version whose tree holds a locale/<code>/LC_MESSAGES/docs.po with at
least one translation now gets one site per such language next to the
English one, built with `-D language=<code> -D html_copy_source=0` after
the English site is published. Sphinx reads one docs.po per language
(locale_dirs, gettext_compact = "docs"); YAML pages stay untranslated
through an extension that runs before the Locale transform.

The deployed working tree is built as the unlisted version `deployed` from a
snapshot baked into the image, because the git mirror only holds what is
pushed to main. The server answers /<version>/<code>/ and
/api/languages/<version>, a language without a site is a 404 rather than the
English page, and a switcher on every page lists the built languages and
keeps the page path. min_storage grows to 13GB for the translated sites.

The 47 docs.po catalogs hold the 24869 documentation messages; German is
partially machine-translated so far. The raw-docker and primary-domain lints
skip .po files, which carry the Markdown's own commands and hosts as
translation sources.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 18:56:06 +02:00

8 lines
421 B
HTML

<div class="docs-languages" style="margin-bottom: 1em;">
<label for="docs-language-switcher">Language</label>
<select id="docs-language-switcher" class="docs-language-switcher" data-version="{{ docs_version }}" data-language="{{ language or 'en' }}" data-page="{{ pagename }}">
<option selected>{{ language or 'en' }}</option>
</select>
</div>
<script src="{{ pathto('_static/js/languages.js', 1) }}"></script>