Première release MAJEURE après ~30 itérations 0.x. Le système est complet
et stable pour la production : distribution PROSERVE multi-channels, install
launcher cross-fleet, monitoring santé VR, sécurité (signatures Ed25519,
HMAC URLs présignées, settings lock per-license, RFC1918 filter cache LAN).
i18n nouvelles langues (Espagnol + Allemand) :
- Strings.cs : signature T() étendue avec 2 params optionnels (es?/de?)
en plus des 5 obligatoires. Fallback automatique sur l'anglais quand
non traduit → infrastructure prête immédiatement, traduction progressive
sur les ~317 strings du launcher selon les besoins terrain.
- ~30 strings critiques traduites maintenant (top bar, body, status badges,
actions principales Launch/Install/Cancel/Yes/No, MessageBox titles).
- Available[] inclut es/Español + de/Deutsch ; auto-détection Windows
pour es-* / de-* funcionne au premier launch.
- Init() whitelist mise à jour.
Emails release announce localisés par license :
- Migration 005 : ajout `language VARCHAR(8) NULL` sur licenses (whitelist
fr/en/es/de/zh/th/ar, NULL = fallback English).
- getEmailStrings() PHP étendu : dictionnaire 7 langues × 14 strings.
Traduction complète es + de (gérable : 28 nouvelles strings, vs 634
pour traduire le launcher en intégralité).
- notify_release boucle par license : récupère language + locale fallback
'en' + render avec la bonne locale → chaque destinataire reçoit son
email dans la langue de SA license, indépendamment des autres clients.
- Subject localisé aussi (« PROSERVE v1.5.4 ya está disponible » /
« PROSERVE v1.5.4 ist jetzt verfügbar »).
- Release notes body reste TOUJOURS en anglais (évite d'avoir à maintenir
N traductions du Markdown des notes).
- Direction RTL préservée pour l'arabe (dir="rtl" sur <html> + <table>).
Admin UI : dropdown langue dans la modal Contacts d'une license + whitelist
backend (set_contact_emails accepte fr/en/es/de/zh/th/ar).
Bumps : 0.29.10 → 1.0.0 — milestone V1, premier release majeur en prod.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>