Pluralize count-dependent messages with a CLDR one/other selector and gate catalog consistency with a test
All checks were successful
CI / check (push) Successful in 5m20s
All checks were successful
CI / check (push) Successful in 5m20s
This commit is contained in:
parent
74a58c5425
commit
ecdead8278
34 changed files with 572 additions and 186 deletions
77
lang/fr.json
77
lang/fr.json
|
|
@ -61,7 +61,6 @@
|
|||
"\u0002{chan}\u0002 isn't suspended.": "\u0002{chan}\u0002 n'est pas suspendu.",
|
||||
"\u0002{chan}\u0002 was already set that way.": "\u0002{chan}\u0002 était déjà réglé ainsi.",
|
||||
"\u0002{chan}\u0002 will no longer expire.": "\u0002{chan}\u0002 n'expirera plus.",
|
||||
"\u0002{chan}\u0002 — \u0002{lines}\u0002 line(s) seen.": "\u0002{chan}\u0002 — \u0002{lines}\u0002 ligne(s) vue(s).",
|
||||
"\u0002{code}\u0002 isn't an available language. Available: {list}.": "\u0002{code}\u0002 n'est pas une langue disponible. Disponibles : {list}.",
|
||||
"\u0002{d}\u0002 isn't a valid expiry — try 30d, 12h, 45m, or 0.": "\u0002{d}\u0002 n'est pas une expiration valide — essayez 30d, 12h, 45m ou 0.",
|
||||
"\u0002{host}\u0002 is already in use. Please choose another.": "\u0002{host}\u0002 est déjà utilisé. Veuillez en choisir un autre.",
|
||||
|
|
@ -69,7 +68,6 @@
|
|||
"\u0002{host}\u0002 isn't a valid host (letters, digits, hyphens and dots).": "\u0002{host}\u0002 n'est pas un hôte valide (lettres, chiffres, tirets et points).",
|
||||
"\u0002{host}\u0002 isn't a valid host.": "\u0002{host}\u0002 n'est pas un hôte valide.",
|
||||
"\u0002{host}\u0002 isn't allowed here. Please choose another.": "\u0002{host}\u0002 n'est pas autorisé ici. Veuillez en choisir un autre.",
|
||||
"\u0002{ip}\u0002 has \u0002{count}\u0002 live session(s).": "\u0002{ip}\u0002 a \u0002{count}\u0002 session(s) active(s).",
|
||||
"\u0002{label}\u0002 access on \u0002{chan}\u0002: \u0002{level}\u0002": "Accès de \u0002{label}\u0002 sur \u0002{chan}\u0002 : \u0002{level}\u0002",
|
||||
"\u0002{mask}\u0002 isn't on \u0002{chan}\u0002's auto-kick list.": "\u0002{mask}\u0002 n'est pas dans la liste d'auto-kick de \u0002{chan}\u0002.",
|
||||
"\u0002{mask}\u0002 isn't on the ignore list.": "\u0002{mask}\u0002 n'est pas dans la liste d'ignore.",
|
||||
|
|
@ -88,7 +86,6 @@
|
|||
"\u0002{nick}\u0002 isn't grouped to your account.": "\u0002{nick}\u0002 n'est pas groupé à votre compte.",
|
||||
"\u0002{nick}\u0002 isn't here.": "\u0002{nick}\u0002 n'est pas ici.",
|
||||
"\u0002{nick}\u0002 was last seen {when} ({what}).": "\u0002{nick}\u0002 a été vu pour la dernière fois {when} ({what}).",
|
||||
"\u0002{n}\u0002 vote(s) will now carry a \u0002!votekick\u0002/\u0002!voteban\u0002 in \u0002{chan}\u0002.": "\u0002{n}\u0002 vote(s) suffiront désormais pour un \u0002!votekick\u0002/\u0002!voteban\u0002 dans \u0002{chan}\u0002.",
|
||||
"\u0002{pattern}\u0002 isn't a valid regular expression.": "\u0002{pattern}\u0002 n'est pas une expression régulière valide.",
|
||||
"\u0002{raw}\u0002 isn't a valid \u0002{target}\u0002 mask.": "\u0002{raw}\u0002 n'est pas un masque \u0002{target}\u0002 valide.",
|
||||
"\u0002{target}\u0002 had no access to \u0002{chan}\u0002.": "\u0002{target}\u0002 n'avait aucun accès à \u0002{chan}\u0002.",
|
||||
|
|
@ -143,7 +140,6 @@
|
|||
" (custom)": " (personnalisé)",
|
||||
" (no activity counters yet)": " (aucun compteur d'activité pour l'instant)",
|
||||
" About : \u0002{target}\u0002": " Sujet : \u0002{target}\u0002",
|
||||
" Auto-join : {count} channel(s) — see \u0002AJOIN LIST\u0002": " Auto-join : {count} salon(s) — voir \u0002AJOIN LIST\u0002",
|
||||
" By : \u0002{by}\u0002": " Par : \u0002{by}\u0002",
|
||||
" Description: {desc}": " Description: {desc}",
|
||||
" Email : (none set)": " Email : (aucun défini)",
|
||||
|
|
@ -165,7 +161,6 @@
|
|||
" Real name: {gecos}": " Nom réel : {gecos}",
|
||||
" Reason : {reason}": " Raison : {reason}",
|
||||
" Registered : {when}": " Enregistré : {when}",
|
||||
" Serving {count} channel(s): {list}": " Sert {count} salon(s) : {list}",
|
||||
" Staff note : {note}": " Note du staff : {note}",
|
||||
" Suspended : by \u0002{by}\u0002 — {reason}": " Suspendu : par \u0002{by}\u0002 — {reason}",
|
||||
" URL : {url}": " URL : {url}",
|
||||
|
|
@ -278,7 +273,6 @@
|
|||
"Both channels must be registered.": "Les deux salons doivent être enregistrés.",
|
||||
"Bots ({count}):": "Bots ({count}) :",
|
||||
"CALC and show each die": "CALC en affichant chaque dé",
|
||||
"CHANKILL on \u0002{chan}\u0002: \u0002{banned}\u0002 host(s) AKILL'd.": "CHANKILL sur \u0002{chan}\u0002 : \u0002{banned}\u0002 hôte(s) AKILL.",
|
||||
"Can't activate: \u0002{host}\u0002 is on the forbidden list.": "Impossible d'activer : \u0002{host}\u0002 figure sur la liste des interdits.",
|
||||
"Can't activate: {msg}": "Impossible d'activer : {msg}",
|
||||
"Challenge \u0002#{id}\u0002 ({game}) sent to \u0002{target}\u0002.": "Défi \u0002#{id}\u0002 ({game}) envoyé à \u0002{target}\u0002.",
|
||||
|
|
@ -291,10 +285,6 @@
|
|||
"Channels released: {list}.": "Salons libérés : {list}.",
|
||||
"Channels you have access on ({count}):": "Salons sur lesquels vous avez un accès ({count}) :",
|
||||
"Classement \u0002{game}\u0002 vide. Sois le premier à gagner !": "Classement \u0002{game}\u0002 vide. Soyez le premier à gagner !",
|
||||
"Cleared \u0002{count}\u0002 entr{suffix} from \u0002{chan}\u0002's auto-kick list.": "Suppression de \u0002{count}\u0002 entré{suffix} de la liste d'auto-kick de \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{n}\u0002 badword pattern(s) from \u0002{chan}\u0002.": "\u0002{n}\u0002 motif(s) de gros mots effacé(s) de \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{n}\u0002 notify watch(es).": "\u0002{n}\u0002 surveillance(s) effacée(s).",
|
||||
"Cleared \u0002{n}\u0002 trigger(s) from \u0002{chan}\u0002.": "\u0002{n}\u0002 déclencheur(s) effacé(s) de \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{target}\u0002's access to \u0002{chan}\u0002.": "Accès de \u0002{target}\u0002 à \u0002{chan}\u0002 effacé.",
|
||||
"Cleared the *!*@{host} ban on \u0002{chan}\u0002.": "Ban *!*@{host} retiré sur \u0002{chan}\u0002.",
|
||||
"Contact email for \u0002{chan}\u0002 cleared.": "E-mail de contact de \u0002{chan}\u0002 effacé.",
|
||||
|
|
@ -306,22 +296,17 @@
|
|||
"Couldn't update \u0002{chan}\u0002 — please try again in a moment.": "Impossible de mettre à jour \u0002{chan}\u0002 — veuillez réessayer dans un instant.",
|
||||
"DEFCON set to \u0002{level}\u0002 — {desc}.": "DEFCON réglé sur \u0002{level}\u0002 — {desc}.",
|
||||
"Declined.": "Refusé.",
|
||||
"Deleted all \u0002{count}\u0002 memo(s).": "Tous les \u0002{count}\u0002 mémo(s) ont été supprimés.",
|
||||
"Description for \u0002{chan}\u0002 updated.": "Description de \u0002{chan}\u0002 mise à jour.",
|
||||
"DiceServ rolls dice and evaluates maths for tabletop games. Dice: \u00022d6\u0002, \u0002d20\u0002, \u0002d%\u0002. Also + - * / ^ %, parentheses, functions (sqrt, floor, min, ...), \u0002pi\u0002/\u0002e\u0002, and \u00023~2d6\u0002 to repeat.": "DiceServ lance des dés et évalue des calculs pour les jeux de rôle sur table. Dés : \u00022d6\u0002, \u0002d20\u0002, \u0002d%\u0002. Aussi + - * / ^ %, parenthèses, fonctions (sqrt, floor, min, ...), \u0002pi\u0002/\u0002e\u0002, et \u00023~2d6\u0002 pour répéter.",
|
||||
"DictServ looks words up in the dict.org dictionaries. Try \u0002dict\u0002 <word> (WordNet), \u0002define\u0002 (GCIDE), \u0002thes\u0002 (thesaurus), \u0002acronym\u0002, \u0002element\u0002, \u0002law\u0002, \u0002bible\u0002, and more — \u0002LOOKUP\u0002 lists them all.": "DictServ recherche des mots dans les dictionnaires de dict.org. Essayez \u0002dict\u0002 <word> (WordNet), \u0002define\u0002 (GCIDE), \u0002thes\u0002 (thésaurus), \u0002acronym\u0002, \u0002element\u0002, \u0002law\u0002, \u0002bible\u0002, et plus — \u0002LOOKUP\u0002 les liste tous.",
|
||||
"Email for \u0002{account}\u0002 cleared.": "Email de \u0002{account}\u0002 effacé.",
|
||||
"Email for \u0002{account}\u0002 updated.": "Email de \u0002{account}\u0002 mis à jour.",
|
||||
"End of exception list ({count} shown).": "Fin de la liste des exceptions ({count} affiché(s)).",
|
||||
"End of flags ({count} entr{suffix}).": "Fin des flags ({count} entré{suffix}).",
|
||||
"End of ignore list ({count} shown).": "Fin de la liste d'ignore ({count} affiché(s)).",
|
||||
"End of jupe list ({count} shown).": "Fin de la liste des jupes ({count} affiché(s)).",
|
||||
"End of list ({count} group(s)).": "Fin de la liste ({count} groupe(s)).",
|
||||
"End of list — {count} match(es){more}.": "Fin de la liste — {count} correspondance(s){more}.",
|
||||
"End of notify list ({shown} shown).": "Fin de la liste de surveillance ({shown} affiché(s)).",
|
||||
"End of results ({count} shown, newest first — refine the search to narrow).": "Fin des résultats ({count} affiché(s), du plus récent au plus ancien — affinez la recherche pour restreindre).",
|
||||
"End of runtime operator list ({count} shown).": "Fin de la liste des opérateurs d'exécution ({count} affiché(s)).",
|
||||
"End of session list ({count} IP(s)).": "Fin de la liste des sessions ({count} IP).",
|
||||
"End of spam-filter list ({shown} shown).": "Fin de la liste des filtres anti-spam ({shown} affiché(s)).",
|
||||
"End of {name} list ({shown} shown).": "Fin de la liste {name} ({shown} affiché(s)).",
|
||||
"End of {which} bulletins ({count} shown).": "Fin des bulletins {which} ({count} affiché(s)).",
|
||||
|
|
@ -387,8 +372,6 @@
|
|||
"Mask must be a \u0002#channel\u0002, a \u0002nick!user@host\u0002 pattern, or a bare nick glob — and no spaces.": "Le masque doit être un \u0002#canal\u0002, un motif \u0002nick!user@host\u0002, ou un simple glob de pseudo — et sans espaces.",
|
||||
"Memo #\u0002{num}\u0002 from \u0002{from}\u0002 ({when}):": "Mémo n°\u0002{num}\u0002 de \u0002{from}\u0002 ({when}) :",
|
||||
"Memo #\u0002{n}\u0002 deleted.": "Mémo n°\u0002{n}\u0002 supprimé.",
|
||||
"Memo sent to \u0002{sent}\u0002 account(s).": "Mémo envoyé à \u0002{sent}\u0002 compte(s).",
|
||||
"Memo sent to \u0002{sent}\u0002 operator(s).": "Mémo envoyé à \u0002{sent}\u0002 opérateur(s).",
|
||||
"Memo sent to \u0002{target}\u0002.": "Mémo envoyé à \u0002{target}\u0002.",
|
||||
"MemoServ delivers messages to registered users, online or not. You must be identified to use it.": "MemoServ délivre des messages aux utilisateurs enregistrés, connectés ou non. Vous devez être identifié pour l'utiliser.",
|
||||
"Mode lock for \u0002{chan}\u0002 updated.": "Verrou de modes de \u0002{chan}\u0002 mis à jour.",
|
||||
|
|
@ -485,12 +468,10 @@
|
|||
"Removed \u0002{mask}\u0002 from \u0002{chan}\u0002's auto-kick list.": "\u0002{mask}\u0002 a été retiré de la liste d'auto-kick de \u0002{chan}\u0002.",
|
||||
"Removed \u0002{target}\u0002 from \u0002{name}\u0002.": "\u0002{target}\u0002 a été retiré de \u0002{name}\u0002.",
|
||||
"Removed \u0002{which}\u0002 bulletin \u0002{n}\u0002.": "Bulletin \u0002{which}\u0002 \u0002{n}\u0002 supprimé.",
|
||||
"Removed all \u0002{n}\u0002 bot(s).": "Tous les \u0002{n}\u0002 bot(s) supprimé(s).",
|
||||
"Removed badword pattern from \u0002{chan}\u0002.": "Motif de gros mot retiré de \u0002{chan}\u0002.",
|
||||
"Removed fingerprint \u0002{fp}\u0002.": "Empreinte \u0002{fp}\u0002 retirée.",
|
||||
"Removed forbidden pattern: {pattern}": "Motif interdit retiré : {pattern}",
|
||||
"Removed the forbid on {label} \u0002{mask}\u0002.": "Interdiction retirée pour {label} \u0002{mask}\u0002.",
|
||||
"Reopped \u0002{opped}\u0002 trusted regular(s) in \u0002{chan}\u0002.": "\u0002{opped}\u0002 habitué(s) de confiance réoppé(s) dans \u0002{chan}\u0002.",
|
||||
"Report \u0002#{id}\u0002 ({state}):": "Signalement \u0002#{id}\u0002 ({state}) :",
|
||||
"Report \u0002#{n}\u0002 closed.": "Signalement \u0002#{n}\u0002 fermé.",
|
||||
"Report \u0002#{n}\u0002 deleted.": "Signalement \u0002#{n}\u0002 supprimé.",
|
||||
|
|
@ -881,7 +862,6 @@
|
|||
"The bot has left \u0002{chan}\u0002.": "Le bot a quitté \u0002{chan}\u0002.",
|
||||
"The bot may again kick channel operators in \u0002{chan}\u0002.": "Le bot peut à nouveau expulser les opérateurs du salon dans \u0002{chan}\u0002.",
|
||||
"The bot may again kick voiced users in \u0002{chan}\u0002.": "Le bot peut à nouveau expulser les utilisateurs voicés dans \u0002{chan}\u0002.",
|
||||
"The bot will ban a user after \u0002{n}\u0002 kick(s) in \u0002{chan}\u0002.": "Le bot bannira un utilisateur après \u0002{n}\u0002 expulsion(s) dans \u0002{chan}\u0002.",
|
||||
"The bot will kick without warning in \u0002{chan}\u0002.": "Le bot expulsera sans avertissement dans \u0002{chan}\u0002.",
|
||||
"The bot will no longer kick channel operators in \u0002{chan}\u0002.": "Le bot n'expulsera plus les opérateurs du salon dans \u0002{chan}\u0002.",
|
||||
"The bot will no longer kick voiced users in \u0002{chan}\u0002.": "Le bot n'expulsera plus les utilisateurs voicés dans \u0002{chan}\u0002.",
|
||||
|
|
@ -927,7 +907,6 @@
|
|||
"Ticket \u0002#{id}\u0002 isn't open (or doesn't exist).": "Le ticket \u0002#{id}\u0002 n'est pas ouvert (ou n'existe pas).",
|
||||
"Too many failed attempts. Please wait {secs}s and try again.": "Trop de tentatives échouées. Veuillez patienter {secs}s et réessayer.",
|
||||
"Top talkers:": "Plus bavards :",
|
||||
"Top {shown} of {total} scored identit{suffix} for \u0002{chan}\u0002.": "Top {shown} sur {total} identités classées pour \u0002{chan}\u0002.",
|
||||
"Topic for \u0002{chan}\u0002 updated.": "Sujet de \u0002{chan}\u0002 mis à jour.",
|
||||
"Trigger #\u0002{n}\u0002 removed from \u0002{chan}\u0002.": "Déclencheur #\u0002{n}\u0002 retiré de \u0002{chan}\u0002.",
|
||||
"Triggers for \u0002{chan}\u0002 ({count}):": "Déclencheurs pour \u0002{chan}\u0002 ({count}) :",
|
||||
|
|
@ -958,8 +937,6 @@
|
|||
"You can't ungroup your main account name.": "Vous ne pouvez pas dégrouper le nom principal de votre compte.",
|
||||
"You cannot challenge yourself.": "Vous ne pouvez pas vous défier vous-même.",
|
||||
"You don't have an account to confirm.": "Vous n'avez pas de compte à confirmer.",
|
||||
"You have \u0002{total}\u0002 memo(s), \u0002{unread}\u0002 unread, of a maximum \u0002{max}\u0002.": "Vous avez \u0002{total}\u0002 mémo(s), \u0002{unread}\u0002 non lu(s), sur un maximum de \u0002{max}\u0002.",
|
||||
"You have \u0002{unread}\u0002 new memo(s). Read them with \u0002/msg MemoServ READ NEW\u0002.": "Vous avez \u0002{unread}\u0002 nouveau(x) mémo(s). Lisez-les avec \u0002/msg MemoServ READ NEW\u0002.",
|
||||
"You have access on no channels.": "Vous n'avez d'accès sur aucun salon.",
|
||||
"You have no games. Use \u0002CHALLENGE <nick> <game>\u0002.": "Vous n'avez aucune partie. Utilisez \u0002CHALLENGE <nick> <game>\u0002.",
|
||||
"You have no memo #\u0002{n}\u0002.": "Vous n'avez aucun mémo n°\u0002{n}\u0002.",
|
||||
|
|
@ -1258,7 +1235,6 @@
|
|||
"your mailbox summary": "résumé de votre boîte",
|
||||
"your memo preferences": "vos préférences de mémos",
|
||||
"{challenger} challenges you to {game} (game #{id}). \u0002/msg GamesServ ACCEPT {id}\u0002": "{challenger} vous défie au {game} (partie #{id}). \u0002/msg GamesServ ACCEPT {id}\u0002",
|
||||
"{count} ticket(s). \u0002VIEW\u0002 <id> for detail.": "{count} ticket(s). \u0002VIEW\u0002 <id> pour le détail.",
|
||||
"{name} added for \u0002{mask}\u0002 (temporary).": "{name} ajouté pour \u0002{mask}\u0002 (temporaire).",
|
||||
"{name} added for \u0002{mask}\u0002.": "{name} ajouté pour \u0002{mask}\u0002.",
|
||||
"{name} for \u0002{mask}\u0002 removed.": "{name} pour \u0002{mask}\u0002 supprimé.",
|
||||
|
|
@ -1266,7 +1242,6 @@
|
|||
"{name} updated for \u0002{mask}\u0002.": "{name} mis à jour pour \u0002{mask}\u0002.",
|
||||
"{nick} declined your challenge #{id}.": "{nick} a refusé votre défi #{id}.",
|
||||
"{num}. {text} — by {by}": "{num}. {text} — par {by}",
|
||||
"{n} report(s). \u0002VIEW\u0002 <id> for detail.": "{n} signalement(s). \u0002VIEW\u0002 <id> pour le détail.",
|
||||
"{n}. \u0002{mask}\u0002 [{flags}] by {setter} ({when}) — {reason}": "{n}. \u0002{mask}\u0002 [{flags}] par {setter} ({when}) — {reason}",
|
||||
"{n}. \u0002{mask}\u0002 [{flags}] by {setter} ({when}), expires in {ttl} — {reason}": "{n}. \u0002{mask}\u0002 [{flags}] par {setter} ({when}), expire dans {ttl} — {reason}",
|
||||
"{n}. \u0002{mask}\u0002 [{flags}] — {reason}": "{n}. \u0002{mask}\u0002 [{flags}] — {reason}",
|
||||
|
|
@ -1283,5 +1258,55 @@
|
|||
"{who}: I have no record of \u0002{nick}\u0002 talking in \u0002{chan}\u0002.": "{who} : je n'ai aucune trace de \u0002{nick}\u0002 ayant parlé dans \u0002{chan}\u0002.",
|
||||
"{word} list for \u0002{name}\u0002:": "Liste {word} pour \u0002{name}\u0002 :",
|
||||
"Type \u0002HELP <command>\u0002 for detail on one command.": "Tapez \u0002HELP <commande>\u0002 pour le détail d'une commande.",
|
||||
"No help for \u0002{t}\u0002. Type \u0002HELP\u0002 for the command list.": "Aucune aide pour \u0002{t}\u0002. Tapez \u0002HELP\u0002 pour la liste des commandes."
|
||||
"No help for \u0002{t}\u0002. Type \u0002HELP\u0002 for the command list.": "Aucune aide pour \u0002{t}\u0002. Tapez \u0002HELP\u0002 pour la liste des commandes.",
|
||||
"Reopped \u0002{opped}\u0002 trusted regular in \u0002{chan}\u0002.": "\u0002{opped}\u0002 habitué de confiance réoppé dans \u0002{chan}\u0002.",
|
||||
"Reopped \u0002{opped}\u0002 trusted regulars in \u0002{chan}\u0002.": "\u0002{opped}\u0002 habitués de confiance réoppés dans \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{n}\u0002 trigger from \u0002{chan}\u0002.": "\u0002{n}\u0002 déclencheur supprimé de \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{n}\u0002 triggers from \u0002{chan}\u0002.": "\u0002{n}\u0002 déclencheurs supprimés de \u0002{chan}\u0002.",
|
||||
" Serving {count} channel: {list}": " Dessert {count} salon : {list}",
|
||||
" Serving {count} channels: {list}": " Dessert {count} salons : {list}",
|
||||
"Removed all \u0002{n}\u0002 bot.": "\u0002{n}\u0002 bot supprimé (tous).",
|
||||
"Removed all \u0002{n}\u0002 bots.": "Tous les \u0002{n}\u0002 bots supprimés.",
|
||||
"Cleared \u0002{n}\u0002 badword pattern from \u0002{chan}\u0002.": "\u0002{n}\u0002 motif d'insulte supprimé de \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{n}\u0002 badword patterns from \u0002{chan}\u0002.": "\u0002{n}\u0002 motifs d'insulte supprimés de \u0002{chan}\u0002.",
|
||||
"The bot will ban a user after \u0002{n}\u0002 kick in \u0002{chan}\u0002.": "Le bot bannira un utilisateur après \u0002{n}\u0002 kick dans \u0002{chan}\u0002.",
|
||||
"The bot will ban a user after \u0002{n}\u0002 kicks in \u0002{chan}\u0002.": "Le bot bannira un utilisateur après \u0002{n}\u0002 kicks dans \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{count}\u0002 entry from \u0002{chan}\u0002's auto-kick list.": "\u0002{count}\u0002 entrée supprimée de la liste d'auto-kick de \u0002{chan}\u0002.",
|
||||
"Cleared \u0002{count}\u0002 entries from \u0002{chan}\u0002's auto-kick list.": "\u0002{count}\u0002 entrées supprimées de la liste d'auto-kick de \u0002{chan}\u0002.",
|
||||
"Top {shown} of {total} scored identity for \u0002{chan}\u0002.": "Top {shown} sur {total} identité notée pour \u0002{chan}\u0002.",
|
||||
"Top {shown} of {total} scored identities for \u0002{chan}\u0002.": "Top {shown} sur {total} identités notées pour \u0002{chan}\u0002.",
|
||||
"\u0002{n}\u0002 vote will now carry a \u0002!votekick\u0002/\u0002!voteban\u0002 in \u0002{chan}\u0002.": "\u0002{n}\u0002 vote fera désormais aboutir un \u0002!votekick\u0002/\u0002!voteban\u0002 dans \u0002{chan}\u0002.",
|
||||
"\u0002{n}\u0002 votes will now carry a \u0002!votekick\u0002/\u0002!voteban\u0002 in \u0002{chan}\u0002.": "\u0002{n}\u0002 votes feront désormais aboutir un \u0002!votekick\u0002/\u0002!voteban\u0002 dans \u0002{chan}\u0002.",
|
||||
"End of flags ({count} entry).": "Fin des flags ({count} entrée).",
|
||||
"End of flags ({count} entries).": "Fin des flags ({count} entrées).",
|
||||
"Deleted all \u0002{count}\u0002 memo.": "\u0002{count}\u0002 mémo supprimé (tous).",
|
||||
"Deleted all \u0002{count}\u0002 memos.": "Tous les \u0002{count}\u0002 mémos supprimés.",
|
||||
"Memo sent to \u0002{sent}\u0002 account.": "Mémo envoyé à \u0002{sent}\u0002 compte.",
|
||||
"Memo sent to \u0002{sent}\u0002 accounts.": "Mémo envoyé à \u0002{sent}\u0002 comptes.",
|
||||
"End of session list ({count} IP).": "Fin de la liste des sessions ({count} IP).",
|
||||
"End of session list ({count} IPs).": "Fin de la liste des sessions ({count} IP).",
|
||||
"\u0002{ip}\u0002 has \u0002{count}\u0002 live session.": "\u0002{ip}\u0002 a \u0002{count}\u0002 session active.",
|
||||
"\u0002{ip}\u0002 has \u0002{count}\u0002 live sessions.": "\u0002{ip}\u0002 a \u0002{count}\u0002 sessions actives.",
|
||||
"You have \u0002{total}\u0002 memo, \u0002{unread}\u0002 unread, of a maximum \u0002{max}\u0002.": "Vous avez \u0002{total}\u0002 mémo, \u0002{unread}\u0002 non lu, sur un maximum de \u0002{max}\u0002.",
|
||||
"You have \u0002{total}\u0002 memos, \u0002{unread}\u0002 unread, of a maximum \u0002{max}\u0002.": "Vous avez \u0002{total}\u0002 mémos, \u0002{unread}\u0002 non lus, sur un maximum de \u0002{max}\u0002.",
|
||||
"End of list — {count} match{more}.": "Fin de la liste — {count} correspondance{more}.",
|
||||
"End of list — {count} matches{more}.": "Fin de la liste — {count} correspondances{more}.",
|
||||
"Memo sent to \u0002{sent}\u0002 operator.": "Mémo envoyé à \u0002{sent}\u0002 opérateur.",
|
||||
"Memo sent to \u0002{sent}\u0002 operators.": "Mémo envoyé à \u0002{sent}\u0002 opérateurs.",
|
||||
"CHANKILL on \u0002{chan}\u0002: \u0002{banned}\u0002 host AKILL'd.": "CHANKILL sur \u0002{chan}\u0002 : \u0002{banned}\u0002 hôte AKILL'd.",
|
||||
"CHANKILL on \u0002{chan}\u0002: \u0002{banned}\u0002 hosts AKILL'd.": "CHANKILL sur \u0002{chan}\u0002 : \u0002{banned}\u0002 hôtes AKILL'd.",
|
||||
" Auto-join : {count} channel — see \u0002AJOIN LIST\u0002": " Auto-join : {count} salon — voir \u0002AJOIN LIST\u0002",
|
||||
" Auto-join : {count} channels — see \u0002AJOIN LIST\u0002": " Auto-join : {count} salons — voir \u0002AJOIN LIST\u0002",
|
||||
"{count} ticket. \u0002VIEW\u0002 <id> for detail.": "{count} ticket. \u0002VIEW\u0002 <id> pour le détail.",
|
||||
"{count} tickets. \u0002VIEW\u0002 <id> for detail.": "{count} tickets. \u0002VIEW\u0002 <id> pour le détail.",
|
||||
"You have \u0002{unread}\u0002 new memo. Read it with \u0002/msg MemoServ READ NEW\u0002.": "Vous avez \u0002{unread}\u0002 nouveau mémo. Lisez-le avec \u0002/msg MemoServ READ NEW\u0002.",
|
||||
"You have \u0002{unread}\u0002 new memos. Read them with \u0002/msg MemoServ READ NEW\u0002.": "Vous avez \u0002{unread}\u0002 nouveaux mémos. Lisez-les avec \u0002/msg MemoServ READ NEW\u0002.",
|
||||
"Cleared \u0002{n}\u0002 notify watch.": "\u0002{n}\u0002 surveillance notify supprimée.",
|
||||
"Cleared \u0002{n}\u0002 notify watches.": "\u0002{n}\u0002 surveillances notify supprimées.",
|
||||
"\u0002{chan}\u0002 — \u0002{lines}\u0002 line seen.": "\u0002{chan}\u0002 — \u0002{lines}\u0002 ligne vue.",
|
||||
"\u0002{chan}\u0002 — \u0002{lines}\u0002 lines seen.": "\u0002{chan}\u0002 — \u0002{lines}\u0002 lignes vues.",
|
||||
"{n} report. \u0002VIEW\u0002 <id> for detail.": "{n} signalement. \u0002VIEW\u0002 <id> pour le détail.",
|
||||
"{n} reports. \u0002VIEW\u0002 <id> for detail.": "{n} signalements. \u0002VIEW\u0002 <id> pour le détail.",
|
||||
"End of list ({count} group).": "Fin de la liste ({count} groupe).",
|
||||
"End of list ({count} groups).": "Fin de la liste ({count} groupes)."
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue