mirror of
https://github.com/karatektus/pl_mail.git
synced 2026-10-25 01:54:10 +00:00
traductions : catalogues français (messages, validators, security)
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
This commit is contained in:
1 parent
ff87ee92d7
commit
32f6926df8
4 files changed
+4451
-1
No files matched your search
@@ -9,7 +9,7 @@ use PHPUnit\Framework\TestCase;
|
|||||||
use Symfony\Component\Yaml\Yaml;
|
use Symfony\Component\Yaml\Yaml;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Every key in the English catalogue exists in German and in pirate English.
|
* Every key in the English catalogue exists in German, French and pirate English.
|
||||||
*
|
*
|
||||||
* A missing key is not an error anywhere Symfony looks: the translator falls
|
* A missing key is not an error anywhere Symfony looks: the translator falls
|
||||||
* back to `en`, the page renders, and the only symptom is an English sentence
|
* back to `en`, the page renders, and the only symptom is an English sentence
|
||||||
@@ -27,6 +27,7 @@ final class CatalogueParityTest extends TestCase
|
|||||||
public static function locales(): iterable
|
public static function locales(): iterable
|
||||||
{
|
{
|
||||||
yield 'de' => ['de'];
|
yield 'de' => ['de'];
|
||||||
|
yield 'fr' => ['fr'];
|
||||||
yield 'en_PI' => ['en_PI'];
|
yield 'en_PI' => ['en_PI'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,14 @@
|
|||||||
|
# Échecs de connexion, dans le domaine où Symfony les résout. Voir
|
||||||
|
# security.en.yaml pour le pourquoi de chaque entrée.
|
||||||
|
account.deactivated: Votre compte a été désactivé par un administrateur. Demandez-lui de le réactiver — rien de ce qui vous appartient n’a été supprimé.
|
||||||
|
account.removed: Ce compte a été supprimé et ne peut plus servir à se connecter.
|
||||||
|
|
||||||
|
# Authentification unique via un fournisseur OpenID Connect.
|
||||||
|
oidc.unavailable: L’authentification unique ne fonctionne pas pour le moment. Connectez-vous avec votre mot de passe, ou demandez à votre administrateur de consulter les journaux.
|
||||||
|
oidc.denied: Le fournisseur de connexion ne vous a pas laissé entrer dans plMail.
|
||||||
|
oidc.failed: La connexion via votre fournisseur n’a pas pu aboutir. Réessayez.
|
||||||
|
oidc.no_email: 'Votre fournisseur de connexion n’a pas communiqué votre adresse e-mail à plMail : il n’y a donc aucun compte auquel vous connecter.'
|
||||||
|
oidc.email_unverified: Votre fournisseur de connexion n’a pas confirmé votre adresse e-mail, plMail ne la liera donc à aucun compte. Adressez-vous à votre administrateur.
|
||||||
|
oidc.ambiguous: Plusieurs comptes ici ont votre adresse e-mail. Demandez à votre administrateur de régler cela.
|
||||||
|
oidc.no_account: Il n’existe pas encore de compte plMail pour vous. Demandez à votre administrateur d’en créer un avec votre adresse e-mail.
|
||||||
|
oidc.linked_elsewhere: Le compte qui a votre adresse e-mail est déjà lié à quelqu’un d’autre chez votre fournisseur de connexion. Adressez-vous à votre administrateur.
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# Messages de contraintes. Symfony traduit la validation dans le domaine
|
||||||
|
# `validators`, pas `messages` — voir validators.en.yaml.
|
||||||
|
account.host_invalid: Saisissez uniquement un nom d’hôte ou une adresse IP — sans barre oblique, point d’interrogation ni @.
|
||||||
|
admin.ai.keep_alive_invalid: Utilisez une durée comme 5m, 30m ou 4h, un nombre de secondes, ou -1 pour garder le modèle chargé en permanence — laissez vide pour utiliser le réglage de l’hôte.
|
||||||
|
admin.integrations.client_id_missing: Saisissez l’ID client qui va avec ce secret.
|
||||||
|
admin.integrations.secret_missing: Saisissez aussi le secret client — un ID client seul ne permet à personne de se connecter.
|
||||||
|
admin.sso.error.client_id_missing: 'Un ID client est nécessaire avec l’émetteur et le secret. Les trois, ou aucun.'
|
||||||
|
admin.sso.error.issuer_missing: 'Un émetteur est nécessaire avec l’ID client et le secret. Les trois, ou aucun.'
|
||||||
|
admin.sso.error.issuer_not_https: 'L’émetteur doit commencer par https://. plMail fait confiance au fournisseur grâce à la connexion TLS vers lui.'
|
||||||
|
admin.sso.error.secret_missing: 'Un secret client est nécessaire avec l’émetteur et l’ID client. Les trois, ou aucun.'
|
||||||
|
admin.users.password_too_short: Utilisez au moins {{ limit }} caractères — ce mot de passe est choisi pour quelqu’un d’autre.
|
||||||
|
alias.invalid: Saisissez une adresse e-mail valide.
|
||||||
|
app_password.name_required: Donnez un nom au mot de passe d’application pour le reconnaître plus tard.
|
||||||
|
caldav.address_required: Saisissez l’adresse de votre serveur CalDAV — sans elle, plMail n’a personne à interroger.
|
||||||
|
caldav.credential_required: Saisissez un mot de passe d’application, ou cochez la case pour utiliser celui enregistré d’un compte mail.
|
||||||
|
caldav.reuse_account_required: Choisissez le compte mail dont utiliser le mot de passe, ou décochez la case et saisissez-en un.
|
||||||
|
caldav.username_required: Saisissez le nom d’utilisateur sous lequel votre serveur CalDAV vous connaît.
|
||||||
|
calendar.name_required: Donnez un nom à l’agenda — c’est ce qui le distingue des autres.
|
||||||
|
compose.recipient_invalid: "« {{ address }} » n’est pas une adresse e-mail valide."
|
||||||
|
compose.recipient_required: Ajoutez au moins un destinataire avant d’envoyer.
|
||||||
|
settings.password.current_required: Saisissez votre mot de passe actuel — c’est ce qui empêche quelqu’un devant votre écran déverrouillé de le changer.
|
||||||
|
settings.password.current_wrong: Ce n’est pas votre mot de passe actuel.
|
||||||
|
settings.password.mismatch: Les deux nouveaux mots de passe ne correspondent pas.
|
||||||
|
settings.password.too_short: Utilisez au moins {{ limit }} caractères.
|
||||||
|
setup.install.password_mismatch: Les deux mots de passe ne correspondent pas.
|
||||||
|
setup.install.password_too_short: Utilisez au moins {{ limit }} caractères. Ce compte n’a pas de réinitialisation de mot de passe.
|
||||||
|
user.email_taken: Quelqu’un utilise déjà cette adresse. Chaque adresse de cette installation appartient à une seule personne.
|
||||||
|
admin.ai.field.base_url_invalid: 'Ceci doit commencer par http:// ou https://.'
|
||||||
|
profile.avatar_wrong_type: 'Utilisez une image PNG, JPEG, GIF ou WebP.'
|
||||||
|
admin.ai.headers.malformed: 'Écrivez chaque en-tête sur sa propre ligne sous la forme Nom: valeur.'
|
||||||
|
admin.ai.headers.name: 'Un nom d’en-tête ne peut contenir que des lettres, des chiffres et des tirets, et ne peut pas être vide.'
|
||||||
|
admin.ai.headers.value: 'Une valeur d’en-tête ne peut pas être vide, ne peut pas contenir de saut de ligne ni d’autre caractère de contrôle, et fait au plus 4096 caractères.'
|
||||||
|
admin.ai.headers.reserved: 'Un de ces en-têtes est défini par plMail lui-même et ne peut pas être remplacé : Host, Content-Type, Content-Length, Connection et consorts.'
|
||||||
|
admin.ai.headers.duplicate: 'Le même en-tête est listé deux fois.'
|
||||||
|
admin.ai.headers.too_many: 'Au plus %max% en-têtes supplémentaires.'
|
||||||
Reference in new issue
Block a user