Files
computer-playbook/utils/software.py
T
kevinveenbirkenbachandClaude Opus 5 e8ad944215 feat(i18n): commit the core catalogs and move the logout translations into core.po
locale/<code>/LC_MESSAGES/core.po now exists for all 183 non-source
languages with the 407 core messages. German is machine-translated in full;
the 29 languages the logout panel shipped are carried over from
logout_i18n.yml.

The keycloak logout panel reads every language but English from core.po
through the new i18n_catalogue lookup, so logout_i18n.yml keeps only the
English source strings. Each language takes its text direction from
meta/languages.yml. The Playwright spec asserts the German catalogue on the
served logout page.

Catalogs no longer carry Babel's placeholders: render() writes the author,
kevinveenbirkenbach@infinito.nexus, https://infinito.nexus, the Infinito.Nexus
Community License and contact@infinito.nexus as the bug address into every
header it writes, from constants in utils/software.py.

tests/lint/repository/test_i18n_catalogs.py holds that every language has a
core catalog, none exists for an unknown language, the core catalogs hold
exactly the current sources, and every translation keeps its protected
spans.

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

15 lines
624 B
Python

"""The software's identity: its repository, read from the group_vars SPOT, its author and address."""
from __future__ import annotations
from utils.cache.files import PROJECT_ROOT
from utils.cache.yaml import load_yaml
SOFTWARE_VARS = PROJECT_ROOT / "group_vars" / "all" / "00_general.yml"
SOFTWARE_REPOSITORY: str = load_yaml(str(SOFTWARE_VARS))["SOFTWARE_REPOSITORY"]
SOFTWARE_AUTHOR = "Kevin Veen-Birkenbach"
SOFTWARE_EMAIL = "kevinveenbirkenbach@infinito.nexus"
SOFTWARE_URL = "https://infinito.nexus"
SOFTWARE_CONTACT = "contact@infinito.nexus"
SOFTWARE_LICENSE = "Infinito.Nexus Community License (Non-Commercial)"