Say every Administration refusal in the reader's language

Stalwart explains a refused change in English, and several of its words
reached the page as they were: "Invalid domain name" for a reserved TLD,
"Invalid email address" for a catch-all, a grant refusal, and ihasmail's own
proxy messages. Every registry error type now has its own message, and a
value one of the registry's string validators refused is recognised by the
validator's wording and explained again. A domain clash or a missing domain
is worded for a domain rather than an account.

The one exception is kept on purpose: a password policy's reason follows a
translated sentence, because the rule is the server's and dropping it would
leave no way to find out why.

The mock now refuses a reserved TLD and a catch-all without a domain the way
the live server did. KNOWN-ISSUES records the fix, and that the last two live
cases -- an administrator-set password and the outranking guard -- held.

15 new strings in all nine catalogues, 3 retired; strings falling back to
English stay at 16.
This commit is contained in:
2026-09-13 17:18:15 -07:00
parent 822314e8b7
commit 15b1838e21
16 changed files with 270 additions and 50 deletions
+16 -3
View File
@@ -109,6 +109,22 @@ export const catalog: Catalog = {
"Disabled": "Désactivé",
"also {names}": "aussi {names}",
"The server did not say whether the domain was created.": "Le serveur na pas indiqué si le domaine a été créé.",
// ── Administration: refusals ───────────────────────────────────
"That isn't a valid domain name. Use a name such as example.com, on a real top-level domain.": "Ce nest pas un nom de domaine valide. Utilisez un nom comme example.com, avec un vrai domaine de premier niveau.",
"That isn't a valid email address. Use a full address, such as [email protected].": "Ce nest pas une adresse e-mail valide. Utilisez une adresse complète, comme [email protected].",
"That isn't a valid address. Use letters, numbers, dots, hyphens or underscores before the @.": "Ce nest pas une adresse valide. Utilisez des lettres, des chiffres, des points, des tirets ou des traits de soulignement avant le @.",
"That isn't a valid host name or IP address.": "Ce nest ni un nom dhôte ni une adresse IP valide.",
"A required value was left empty.": "Une valeur obligatoire a été laissée vide.",
"Administration is turned off on this installation.": "Ladministration est désactivée sur cette installation.",
"The mail server could not carry out the request ({code}).": "Le serveur de messagerie na pas pu traiter la demande ({code}).",
"You can't give an account permissions your own role doesn't have.": "Vous ne pouvez pas donner à un compte des autorisations que votre propre rôle na pas.",
"This account signs in through an external directory, so its password can't be set here.": "Ce compte se connecte via un annuaire externe, son mot de passe ne peut donc pas être défini ici.",
"The server's licence allows no more accounts.": "La licence du serveur ne permet pas de comptes supplémentaires.",
"That domain name is already in use on this server, as a domain or another domain's other name.": "Ce nom de domaine est déjà utilisé sur ce serveur, comme domaine ou comme autre nom dun autre domaine.",
"Your organisation has reached the number of domains it is allowed.": "Votre organisation a atteint le nombre de domaines autorisé.",
"That is more than the mail server accepts in one change.": "Cest plus que ce que le serveur de messagerie accepte en une seule modification.",
"The mail server rejected one of the values. Check what you entered and try again.": "Le serveur de messagerie a refusé lune des valeurs. Vérifiez votre saisie et réessayez.",
"The mail server refused the change ({code}).": "Le serveur de messagerie a refusé la modification ({code}).",
// ── Administration: accounts ───────────────────────────────────
"Only on a device you've marked as your own. Sign in again with \u201cThis is my own device\u201d ticked.": "Uniquement sur un appareil que vous avez indiqué comme le vôtre. Reconnectez-vous en cochant « Cet appareil est le mien ».",
"Change your own password in {settings}.": "Modifiez votre propre mot de passe dans {settings}.",
@@ -169,7 +185,6 @@ export const catalog: Catalog = {
"Deleted {address}": "{address} supprimé",
"The server did not say whether the account was created.": "Le serveur na pas indiqué si le compte a été créé.",
"The mail server refused this. Your role may not allow it.": "Le serveur de messagerie a refusé. Votre rôle ne le permet peut-être pas.",
"The mail server refused this: {reason}": "Le serveur de messagerie a refusé : {reason}",
"That address is already in use on this server, as an account, a list or an alias.": "Cette adresse est déjà utilisée sur ce serveur, par un compte, une liste ou un alias.",
"One of the chosen domain, role or group can't be used for this account.": "Le domaine, le rôle ou le groupe choisi ne peut pas être utilisé pour ce compte.",
"Your organisation has reached the number of accounts it is allowed.": "Votre organisation a atteint le nombre de comptes autorisé.",
@@ -177,8 +192,6 @@ export const catalog: Catalog = {
"This account no longer exists. Someone may have deleted it.": "Ce compte nexiste plus. Quelquun la peut-être supprimé.",
"The password was not accepted: {reason}": "Le mot de passe a été refusé : {reason}",
"The password was not accepted.": "Le mot de passe a été refusé.",
"The mail server rejected a value: {reason}": "Le serveur de messagerie a refusé une valeur : {reason}",
"The mail server rejected a value.": "Le serveur de messagerie a refusé une valeur.",
"Go to folder…": "Aller au dossier…",
"Set for everyone here. You cannot change this.": "Défini pour tout le monde ici. Vous ne pouvez pas le modifier.",
"Export iCAL file": "Exporter un fichier iCAL",