Ajoute 'fr' à AppLocale et à framework.enabled_locales, qui doivent
rester synchronisés (le commentaire de translation.yaml le dit). Le
sélecteur de langue des réglages et celui de l'installation lisent
AppLocale::cases() : « 🇫🇷 Français » y apparaît sans autre
modification.
Deux réglages suivent la langue et devaient connaître le français :
- ClockFormat::forLocale() : le français écrit 14 h 00, donc 24 heures
par défaut comme l'allemand. Sans ça, un utilisateur francophone qui
n'a rien choisi verrait « 2 PM ». Testé dans ClockFormatResolverTest.
- Le sélecteur d'emoji charge ses noms et mots-clés par langue (la
recherche « cœur » ne trouve rien dans les données anglaises).
assets/emoji/fr/data.json vient de emoji-picker-element-data, comme
en/ et de/. J'ai vérifié que ces deux fichiers sont identiques octet
pour octet à ceux publiés par le paquet, donc fr/ vient bien de la
même source. Le gabarit choisit maintenant de, fr ou en d'après la
langue au lieu du seul test « starts with 'de' ».
Laissé tel quel : DeterministicDateDetector, qui lit les dates dans le
contenu des mails selon leur langue, et non la langue de l'interface.
Apprendre les dates françaises (« le 4 août ») est un autre chantier.
Docs : README, features/appearance.md (et sa traduction allemande, avec
le hash mis à jour), et une entrée de CHANGELOG.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018nYWPc4bWacb79hm4ytfni
Les 3 118 clés de messages.en.yaml, plus les domaines validators et
security, traduits en français. Le catalogue seul ne change rien à
l'écran : la locale est déclarée au commit suivant. CatalogueParityTest
vérifie désormais le français comme l'allemand et le pirate. C'est le
seul garde-fou, car Symfony retombe sans bruit sur l'anglais quand une
clé manque.
Choix de traduction, pour qui reprendra ces fichiers :
- Vouvoiement, l'usage des logiciels en français, alors que
l'allemand tutoie. Aucun test ne l'impose, contrairement à
GermanIsInformalTest.
- « Agenda » pour calendar, « libellé » pour label, « suivi » pour
star (comme Gmail en français), « mettre en attente » pour snooze,
« courrier » pour mail quand c'est le contenu et « mail » pour un
message. Les termes des consoles Google et Microsoft sont repris tels
que leurs interfaces françaises les affichent.
- Apostrophe typographique (’) partout dans le texte. Avec une
apostrophe droite, chaque chaîne entre guillemets simples devrait la
doubler, et un oubli casse le fichier entier. L'espace avant « : » à
la française oblige aussi à mettre la valeur entre guillemets :
security.fr.yaml ne se chargeait plus à cause de ça (« A colon cannot
be used in an unquoted mapping value »). C'est corrigé et vérifié en
chargeant les trois fichiers.
- Placeholders (%count%, {skinTone}, {{ limit }}) et formes plurielles
({0}…|{1}…|]1,Inf[…) contrôlés clé par clé contre l'anglais : aucun
écart.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018nYWPc4bWacb79hm4ytfni