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

This commit is contained in:
Jean Chevronnet 2026-07-20 02:03:05 +00:00
parent 74a58c5425
commit ecdead8278
No known key found for this signature in database
34 changed files with 572 additions and 186 deletions

View file

@ -61,7 +61,6 @@
"\u0002{chan}\u0002 isn't suspended.": "\u0002{chan}\u0002 não está suspenso.",
"\u0002{chan}\u0002 was already set that way.": "\u0002{chan}\u0002 já estava definido dessa forma.",
"\u0002{chan}\u0002 will no longer expire.": "\u0002{chan}\u0002 já não vai expirar.",
"\u0002{chan}\u0002 — \u0002{lines}\u0002 line(s) seen.": "\u0002{chan}\u0002 — \u0002{lines}\u0002 linha(s) vista(s).",
"\u0002{code}\u0002 isn't an available language. Available: {list}.": "\u0002{code}\u0002 não é um idioma disponível. Disponíveis: {list}.",
"\u0002{d}\u0002 isn't a valid expiry — try 30d, 12h, 45m, or 0.": "\u0002{d}\u0002 não é uma expiração válida — tente 30d, 12h, 45m ou 0.",
"\u0002{host}\u0002 is already in use. Please choose another.": "\u0002{host}\u0002 já está em uso. Por favor escolha outro.",
@ -69,7 +68,6 @@
"\u0002{host}\u0002 isn't a valid host (letters, digits, hyphens and dots).": "\u0002{host}\u0002 não é um host válido (letras, dígitos, hífens e pontos).",
"\u0002{host}\u0002 isn't a valid host.": "\u0002{host}\u0002 não é um host válido.",
"\u0002{host}\u0002 isn't allowed here. Please choose another.": "\u0002{host}\u0002 não é permitido aqui. Por favor escolha outro.",
"\u0002{ip}\u0002 has \u0002{count}\u0002 live session(s).": "\u0002{ip}\u0002 tem \u0002{count}\u0002 sessão(ões) ativa(s).",
"\u0002{label}\u0002 access on \u0002{chan}\u0002: \u0002{level}\u0002": "Acesso \u0002{label}\u0002 em \u0002{chan}\u0002: \u0002{level}\u0002",
"\u0002{mask}\u0002 isn't on \u0002{chan}\u0002's auto-kick list.": "\u0002{mask}\u0002 não está na lista de auto-kick de \u0002{chan}\u0002.",
"\u0002{mask}\u0002 isn't on the ignore list.": "\u0002{mask}\u0002 não está na lista de ignorados.",
@ -88,7 +86,6 @@
"\u0002{nick}\u0002 isn't grouped to your account.": "\u0002{nick}\u0002 não está agrupado à sua conta.",
"\u0002{nick}\u0002 isn't here.": "\u0002{nick}\u0002 não está aqui.",
"\u0002{nick}\u0002 was last seen {when} ({what}).": "\u0002{nick}\u0002 foi visto pela última vez {when} ({what}).",
"\u0002{n}\u0002 vote(s) will now carry a \u0002!votekick\u0002/\u0002!voteban\u0002 in \u0002{chan}\u0002.": "\u0002{n}\u0002 voto(s) irão agora accionar um \u0002!votekick\u0002/\u0002!voteban\u0002 em \u0002{chan}\u0002.",
"\u0002{pattern}\u0002 isn't a valid regular expression.": "\u0002{pattern}\u0002 não é uma expressão regular válida.",
"\u0002{raw}\u0002 isn't a valid \u0002{target}\u0002 mask.": "\u0002{raw}\u0002 não é uma máscara \u0002{target}\u0002 válida.",
"\u0002{target}\u0002 had no access to \u0002{chan}\u0002.": "\u0002{target}\u0002 não tinha acesso a \u0002{chan}\u0002.",
@ -143,7 +140,6 @@
" (custom)": " (personalizado)",
" (no activity counters yet)": " (ainda sem contadores de atividade)",
" About : \u0002{target}\u0002": " Sobre : \u0002{target}\u0002",
" Auto-join : {count} channel(s) — see \u0002AJOIN LIST\u0002": " Auto-join : {count} canal(is) — ver \u0002AJOIN LIST\u0002",
" By : \u0002{by}\u0002": " Por : \u0002{by}\u0002",
" Description: {desc}": " Descrição : {desc}",
" Email : (none set)": " Email : (nenhum definido)",
@ -165,7 +161,6 @@
" Real name: {gecos}": " Nome real: {gecos}",
" Reason : {reason}": " Motivo : {reason}",
" Registered : {when}": " Registado : {when}",
" Serving {count} channel(s): {list}": " A servir {count} canal(is): {list}",
" Staff note : {note}": " Nota da equipa : {note}",
" Suspended : by \u0002{by}\u0002 — {reason}": " Suspenso : por \u0002{by}\u0002 — {reason}",
" URL : {url}": " URL : {url}",
@ -278,7 +273,6 @@
"Both channels must be registered.": "Ambos os canais têm de estar registados.",
"Bots ({count}):": "Bots ({count}):",
"CALC and show each die": "CALC e mostrar cada dado",
"CHANKILL on \u0002{chan}\u0002: \u0002{banned}\u0002 host(s) AKILL'd.": "CHANKILL em \u0002{chan}\u0002: \u0002{banned}\u0002 host(s) com AKILL aplicado.",
"Can't activate: \u0002{host}\u0002 is on the forbidden list.": "Não é possível ativar: \u0002{host}\u0002 está na lista de proibidos.",
"Can't activate: {msg}": "Não é possível ativar: {msg}",
"Challenge \u0002#{id}\u0002 ({game}) sent to \u0002{target}\u0002.": "Desafio \u0002#{id}\u0002 ({game}) enviado a \u0002{target}\u0002.",
@ -291,10 +285,6 @@
"Channels released: {list}.": "Canais libertados: {list}.",
"Channels you have access on ({count}):": "Canais a que tem acesso ({count}):",
"Classement \u0002{game}\u0002 vide. Sois le premier à gagner !": "Classificação de \u0002{game}\u0002 vazia. Seja o primeiro a ganhar!",
"Cleared \u0002{count}\u0002 entr{suffix} from \u0002{chan}\u0002's auto-kick list.": "Removida(s) \u0002{count}\u0002 entrada{suffix} da lista de auto-kick de \u0002{chan}\u0002.",
"Cleared \u0002{n}\u0002 badword pattern(s) from \u0002{chan}\u0002.": "Removido(s) \u0002{n}\u0002 padrão(ões) de palavras proibidas de \u0002{chan}\u0002.",
"Cleared \u0002{n}\u0002 notify watch(es).": "Removida(s) \u0002{n}\u0002 vigilância(s) de notificação.",
"Cleared \u0002{n}\u0002 trigger(s) from \u0002{chan}\u0002.": "Removido(s) \u0002{n}\u0002 trigger(s) de \u0002{chan}\u0002.",
"Cleared \u0002{target}\u0002's access to \u0002{chan}\u0002.": "Removido o acesso de \u0002{target}\u0002 a \u0002{chan}\u0002.",
"Cleared the *!*@{host} ban on \u0002{chan}\u0002.": "Removido o ban *!*@{host} em \u0002{chan}\u0002.",
"Contact email for \u0002{chan}\u0002 cleared.": "Email de contacto para \u0002{chan}\u0002 removido.",
@ -306,22 +296,17 @@
"Couldn't update \u0002{chan}\u0002 — please try again in a moment.": "Não foi possível atualizar \u0002{chan}\u0002 — por favor tente novamente daqui a instantes.",
"DEFCON set to \u0002{level}\u0002 — {desc}.": "DEFCON definido para \u0002{level}\u0002 — {desc}.",
"Declined.": "Recusado.",
"Deleted all \u0002{count}\u0002 memo(s).": "Eliminados todos os \u0002{count}\u0002 memo(s).",
"Description for \u0002{chan}\u0002 updated.": "Descrição de \u0002{chan}\u0002 atualizada.",
"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.": "O DiceServ lança dados e avalia expressões matemáticas para jogos de tabuleiro. Dados: \u00022d6\u0002, \u0002d20\u0002, \u0002d%\u0002. Também + - * / ^ %, parênteses, funções (sqrt, floor, min, ...), \u0002pi\u0002/\u0002e\u0002, e \u00023~2d6\u0002 para repetir.",
"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.": "O DictServ procura palavras nos dicionários do dict.org. Tente \u0002dict\u0002 <word> (WordNet), \u0002define\u0002 (GCIDE), \u0002thes\u0002 (dicionário de sinónimos), \u0002acronym\u0002, \u0002element\u0002, \u0002law\u0002, \u0002bible\u0002, e mais — \u0002LOOKUP\u0002 lista todos.",
"Email for \u0002{account}\u0002 cleared.": "Email de \u0002{account}\u0002 removido.",
"Email for \u0002{account}\u0002 updated.": "Email de \u0002{account}\u0002 atualizado.",
"End of exception list ({count} shown).": "Fim da lista de exceções ({count} mostradas).",
"End of flags ({count} entr{suffix}).": "Fim das flags ({count} entrada{suffix}).",
"End of ignore list ({count} shown).": "Fim da lista de ignorados ({count} mostrados).",
"End of jupe list ({count} shown).": "Fim da lista de jupes ({count} mostrados).",
"End of list ({count} group(s)).": "Fim da lista ({count} grupo(s)).",
"End of list — {count} match(es){more}.": "Fim da lista — {count} correspondência(s){more}.",
"End of notify list ({shown} shown).": "Fim da lista de notificações ({shown} mostradas).",
"End of results ({count} shown, newest first — refine the search to narrow).": "Fim dos resultados ({count} mostrados, mais recentes primeiro — refine a pesquisa para restringir).",
"End of runtime operator list ({count} shown).": "Fim da lista de operadores de runtime ({count} mostrados).",
"End of session list ({count} IP(s)).": "Fim da lista de sessões ({count} IP(s)).",
"End of spam-filter list ({shown} shown).": "Fim da lista de spam-filter ({shown} mostrados).",
"End of {name} list ({shown} shown).": "Fim da lista {name} ({shown} mostrados).",
"End of {which} bulletins ({count} shown).": "Fim dos boletins {which} ({count} mostrados).",
@ -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.": "A máscara tem de ser um \u0002#channel\u0002, um padrão \u0002nick!user@host\u0002, ou um glob de alcunha simples — e sem espaços.",
"Memo #\u0002{num}\u0002 from \u0002{from}\u0002 ({when}):": "Memo #\u0002{num}\u0002 de \u0002{from}\u0002 ({when}):",
"Memo #\u0002{n}\u0002 deleted.": "Memo #\u0002{n}\u0002 eliminado.",
"Memo sent to \u0002{sent}\u0002 account(s).": "Memo enviado a \u0002{sent}\u0002 conta(s).",
"Memo sent to \u0002{sent}\u0002 operator(s).": "Memo enviado a \u0002{sent}\u0002 operador(es).",
"Memo sent to \u0002{target}\u0002.": "Memo enviado a \u0002{target}\u0002.",
"MemoServ delivers messages to registered users, online or not. You must be identified to use it.": "O MemoServ entrega mensagens a utilizadores registados, online ou não. Tem de estar identificado para o usar.",
"Mode lock for \u0002{chan}\u0002 updated.": "Bloqueio de modos de \u0002{chan}\u0002 atualizado.",
@ -485,12 +468,10 @@
"Removed \u0002{mask}\u0002 from \u0002{chan}\u0002's auto-kick list.": "\u0002{mask}\u0002 removido da lista de auto-expulsão de \u0002{chan}\u0002.",
"Removed \u0002{target}\u0002 from \u0002{name}\u0002.": "\u0002{target}\u0002 removido de \u0002{name}\u0002.",
"Removed \u0002{which}\u0002 bulletin \u0002{n}\u0002.": "Boletim \u0002{which}\u0002 \u0002{n}\u0002 removido.",
"Removed all \u0002{n}\u0002 bot(s).": "Removidos todos os \u0002{n}\u0002 bot(s).",
"Removed badword pattern from \u0002{chan}\u0002.": "Padrão de palavrão removido de \u0002{chan}\u0002.",
"Removed fingerprint \u0002{fp}\u0002.": "Impressão digital \u0002{fp}\u0002 removida.",
"Removed forbidden pattern: {pattern}": "Padrão proibido removido: {pattern}",
"Removed the forbid on {label} \u0002{mask}\u0002.": "Proibição de {label} \u0002{mask}\u0002 removida.",
"Reopped \u0002{opped}\u0002 trusted regular(s) in \u0002{chan}\u0002.": "Dei op novamente a \u0002{opped}\u0002 frequentador(es) de confiança em \u0002{chan}\u0002.",
"Report \u0002#{id}\u0002 ({state}):": "Denúncia \u0002#{id}\u0002 ({state}):",
"Report \u0002#{n}\u0002 closed.": "Denúncia \u0002#{n}\u0002 fechada.",
"Report \u0002#{n}\u0002 deleted.": "Denúncia \u0002#{n}\u0002 eliminada.",
@ -881,7 +862,6 @@
"The bot has left \u0002{chan}\u0002.": "O bot saiu de \u0002{chan}\u0002.",
"The bot may again kick channel operators in \u0002{chan}\u0002.": "O bot pode voltar a expulsar operadores de canal em \u0002{chan}\u0002.",
"The bot may again kick voiced users in \u0002{chan}\u0002.": "O bot pode voltar a expulsar utilizadores com voz em \u0002{chan}\u0002.",
"The bot will ban a user after \u0002{n}\u0002 kick(s) in \u0002{chan}\u0002.": "O bot irá banir um utilizador após \u0002{n}\u0002 expulsão(ões) em \u0002{chan}\u0002.",
"The bot will kick without warning in \u0002{chan}\u0002.": "O bot irá expulsar sem aviso em \u0002{chan}\u0002.",
"The bot will no longer kick channel operators in \u0002{chan}\u0002.": "O bot deixará de expulsar operadores de canal em \u0002{chan}\u0002.",
"The bot will no longer kick voiced users in \u0002{chan}\u0002.": "O bot deixará de expulsar utilizadores com voz em \u0002{chan}\u0002.",
@ -927,7 +907,6 @@
"Ticket \u0002#{id}\u0002 isn't open (or doesn't exist).": "O bilhete \u0002#{id}\u0002 não está aberto (ou não existe).",
"Too many failed attempts. Please wait {secs}s and try again.": "Demasiadas tentativas falhadas. Aguarde {secs}s e tente novamente.",
"Top talkers:": "Quem mais fala:",
"Top {shown} of {total} scored identit{suffix} for \u0002{chan}\u0002.": "Top {shown} de {total} identidad{suffix} pontuada(s) para \u0002{chan}\u0002.",
"Topic for \u0002{chan}\u0002 updated.": "Tópico de \u0002{chan}\u0002 atualizado.",
"Trigger #\u0002{n}\u0002 removed from \u0002{chan}\u0002.": "Acionador #\u0002{n}\u0002 removido de \u0002{chan}\u0002.",
"Triggers for \u0002{chan}\u0002 ({count}):": "Acionadores de \u0002{chan}\u0002 ({count}):",
@ -958,8 +937,6 @@
"You can't ungroup your main account name.": "Não pode desagrupar o nome da sua conta principal.",
"You cannot challenge yourself.": "Não pode desafiar-se a si próprio.",
"You don't have an account to confirm.": "Não tem nenhuma conta para confirmar.",
"You have \u0002{total}\u0002 memo(s), \u0002{unread}\u0002 unread, of a maximum \u0002{max}\u0002.": "Tem \u0002{total}\u0002 memo(s), \u0002{unread}\u0002 por ler, de um máximo de \u0002{max}\u0002.",
"You have \u0002{unread}\u0002 new memo(s). Read them with \u0002/msg MemoServ READ NEW\u0002.": "Tem \u0002{unread}\u0002 memo(s) novo(s). Leia-os com \u0002/msg MemoServ READ NEW\u0002.",
"You have access on no channels.": "Não tem acesso a nenhum canal.",
"You have no games. Use \u0002CHALLENGE <nick> <game>\u0002.": "Não tem jogos. Use \u0002CHALLENGE <nick> <game>\u0002.",
"You have no memo #\u0002{n}\u0002.": "Não tem nenhum memo #\u0002{n}\u0002.",
@ -1258,7 +1235,6 @@
"your mailbox summary": "o resumo da sua caixa de correio",
"your memo preferences": "as suas preferências de memos",
"{challenger} challenges you to {game} (game #{id}). \u0002/msg GamesServ ACCEPT {id}\u0002": "{challenger} desafia-o para {game} (jogo #{id}). \u0002/msg GamesServ ACCEPT {id}\u0002",
"{count} ticket(s). \u0002VIEW\u0002 <id> for detail.": "{count} bilhete(s). \u0002VIEW\u0002 <id> para detalhes.",
"{name} added for \u0002{mask}\u0002 (temporary).": "{name} adicionado para \u0002{mask}\u0002 (temporário).",
"{name} added for \u0002{mask}\u0002.": "{name} adicionado para \u0002{mask}\u0002.",
"{name} for \u0002{mask}\u0002 removed.": "{name} para \u0002{mask}\u0002 removido.",
@ -1266,7 +1242,6 @@
"{name} updated for \u0002{mask}\u0002.": "{name} atualizado para \u0002{mask}\u0002.",
"{nick} declined your challenge #{id}.": "{nick} recusou o seu desafio #{id}.",
"{num}. {text} — by {by}": "{num}. {text} — por {by}",
"{n} report(s). \u0002VIEW\u0002 <id> for detail.": "{n} relatório(s). \u0002VIEW\u0002 <id> para detalhes.",
"{n}. \u0002{mask}\u0002 [{flags}] by {setter} ({when}) — {reason}": "{n}. \u0002{mask}\u0002 [{flags}] por {setter} ({when}) — {reason}",
"{n}. \u0002{mask}\u0002 [{flags}] by {setter} ({when}), expires in {ttl} — {reason}": "{n}. \u0002{mask}\u0002 [{flags}] por {setter} ({when}), expira em {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}: não tenho registo de \u0002{nick}\u0002 a falar em \u0002{chan}\u0002.",
"{word} list for \u0002{name}\u0002:": "lista de {word} para \u0002{name}\u0002:",
"Type \u0002HELP <command>\u0002 for detail on one command.": "Escreva \u0002HELP <command>\u0002 para detalhes sobre um comando.",
"No help for \u0002{t}\u0002. Type \u0002HELP\u0002 for the command list.": "Sem ajuda para \u0002{t}\u0002. Escreva \u0002HELP\u0002 para a lista de comandos."
"No help for \u0002{t}\u0002. Type \u0002HELP\u0002 for the command list.": "Sem ajuda para \u0002{t}\u0002. Escreva \u0002HELP\u0002 para a lista de comandos.",
"Reopped \u0002{opped}\u0002 trusted regular in \u0002{chan}\u0002.": "Op devolvido a \u0002{opped}\u0002 habitual de confiança em \u0002{chan}\u0002.",
"Reopped \u0002{opped}\u0002 trusted regulars in \u0002{chan}\u0002.": "Op devolvido a \u0002{opped}\u0002 habituais de confiança em \u0002{chan}\u0002.",
"Cleared \u0002{n}\u0002 trigger from \u0002{chan}\u0002.": "Removido \u0002{n}\u0002 gatilho de \u0002{chan}\u0002.",
"Cleared \u0002{n}\u0002 triggers from \u0002{chan}\u0002.": "Removidos \u0002{n}\u0002 gatilhos de \u0002{chan}\u0002.",
" Serving {count} channel: {list}": " A servir {count} canal: {list}",
" Serving {count} channels: {list}": " A servir {count} canais: {list}",
"Removed all \u0002{n}\u0002 bot.": "Removido \u0002{n}\u0002 bot.",
"Removed all \u0002{n}\u0002 bots.": "Removidos todos os \u0002{n}\u0002 bots.",
"Cleared \u0002{n}\u0002 badword pattern from \u0002{chan}\u0002.": "Removido \u0002{n}\u0002 padrão de palavrão de \u0002{chan}\u0002.",
"Cleared \u0002{n}\u0002 badword patterns from \u0002{chan}\u0002.": "Removidos \u0002{n}\u0002 padrões de palavrão de \u0002{chan}\u0002.",
"The bot will ban a user after \u0002{n}\u0002 kick in \u0002{chan}\u0002.": "O bot irá banir um utilizador após \u0002{n}\u0002 expulsão em \u0002{chan}\u0002.",
"The bot will ban a user after \u0002{n}\u0002 kicks in \u0002{chan}\u0002.": "O bot irá banir um utilizador após \u0002{n}\u0002 expulsões em \u0002{chan}\u0002.",
"Cleared \u0002{count}\u0002 entry from \u0002{chan}\u0002's auto-kick list.": "Removida \u0002{count}\u0002 entrada da lista de auto-kick de \u0002{chan}\u0002.",
"Cleared \u0002{count}\u0002 entries from \u0002{chan}\u0002's auto-kick list.": "Removidas \u0002{count}\u0002 entradas da lista de auto-kick de \u0002{chan}\u0002.",
"Top {shown} of {total} scored identity for \u0002{chan}\u0002.": "Top {shown} de {total} identidade pontuada para \u0002{chan}\u0002.",
"Top {shown} of {total} scored identities for \u0002{chan}\u0002.": "Top {shown} de {total} identidades pontuadas para \u0002{chan}\u0002.",
"\u0002{n}\u0002 vote will now carry a \u0002!votekick\u0002/\u0002!voteban\u0002 in \u0002{chan}\u0002.": "\u0002{n}\u0002 voto passará a bastar para um \u0002!votekick\u0002/\u0002!voteban\u0002 em \u0002{chan}\u0002.",
"\u0002{n}\u0002 votes will now carry a \u0002!votekick\u0002/\u0002!voteban\u0002 in \u0002{chan}\u0002.": "\u0002{n}\u0002 votos passarão a bastar para um \u0002!votekick\u0002/\u0002!voteban\u0002 em \u0002{chan}\u0002.",
"End of flags ({count} entry).": "Fim das flags ({count} entrada).",
"End of flags ({count} entries).": "Fim das flags ({count} entradas).",
"Deleted all \u0002{count}\u0002 memo.": "Eliminado \u0002{count}\u0002 memo.",
"Deleted all \u0002{count}\u0002 memos.": "Eliminados todos os \u0002{count}\u0002 memos.",
"Memo sent to \u0002{sent}\u0002 account.": "Memo enviado para \u0002{sent}\u0002 conta.",
"Memo sent to \u0002{sent}\u0002 accounts.": "Memo enviado para \u0002{sent}\u0002 contas.",
"End of session list ({count} IP).": "Fim da lista de sessões ({count} IP).",
"End of session list ({count} IPs).": "Fim da lista de sessões ({count} IPs).",
"\u0002{ip}\u0002 has \u0002{count}\u0002 live session.": "\u0002{ip}\u0002 tem \u0002{count}\u0002 sessão ativa.",
"\u0002{ip}\u0002 has \u0002{count}\u0002 live sessions.": "\u0002{ip}\u0002 tem \u0002{count}\u0002 sessões ativas.",
"You have \u0002{total}\u0002 memo, \u0002{unread}\u0002 unread, of a maximum \u0002{max}\u0002.": "Tem \u0002{total}\u0002 memo, \u0002{unread}\u0002 por ler, de um máximo de \u0002{max}\u0002.",
"You have \u0002{total}\u0002 memos, \u0002{unread}\u0002 unread, of a maximum \u0002{max}\u0002.": "Tem \u0002{total}\u0002 memos, \u0002{unread}\u0002 por ler, de um máximo de \u0002{max}\u0002.",
"End of list — {count} match{more}.": "Fim da lista — {count} correspondência{more}.",
"End of list — {count} matches{more}.": "Fim da lista — {count} correspondências{more}.",
"Memo sent to \u0002{sent}\u0002 operator.": "Memo enviado para \u0002{sent}\u0002 operador.",
"Memo sent to \u0002{sent}\u0002 operators.": "Memo enviado para \u0002{sent}\u0002 operadores.",
"CHANKILL on \u0002{chan}\u0002: \u0002{banned}\u0002 host AKILL'd.": "CHANKILL em \u0002{chan}\u0002: \u0002{banned}\u0002 host recebeu AKILL.",
"CHANKILL on \u0002{chan}\u0002: \u0002{banned}\u0002 hosts AKILL'd.": "CHANKILL em \u0002{chan}\u0002: \u0002{banned}\u0002 hosts receberam AKILL.",
" Auto-join : {count} channel — see \u0002AJOIN LIST\u0002": " Auto-join : {count} canal — ver \u0002AJOIN LIST\u0002",
" Auto-join : {count} channels — see \u0002AJOIN LIST\u0002": " Auto-join : {count} canais — ver \u0002AJOIN LIST\u0002",
"{count} ticket. \u0002VIEW\u0002 <id> for detail.": "{count} ticket. \u0002VIEW\u0002 <id> para detalhes.",
"{count} tickets. \u0002VIEW\u0002 <id> for detail.": "{count} tickets. \u0002VIEW\u0002 <id> para detalhes.",
"You have \u0002{unread}\u0002 new memo. Read it with \u0002/msg MemoServ READ NEW\u0002.": "Tem \u0002{unread}\u0002 memo novo. Leia-o com \u0002/msg MemoServ READ NEW\u0002.",
"You have \u0002{unread}\u0002 new memos. Read them with \u0002/msg MemoServ READ NEW\u0002.": "Tem \u0002{unread}\u0002 memos novos. Leia-os com \u0002/msg MemoServ READ NEW\u0002.",
"Cleared \u0002{n}\u0002 notify watch.": "Removido \u0002{n}\u0002 alerta de notificação.",
"Cleared \u0002{n}\u0002 notify watches.": "Removidos \u0002{n}\u0002 alertas de notificação.",
"\u0002{chan}\u0002 — \u0002{lines}\u0002 line seen.": "\u0002{chan}\u0002 — \u0002{lines}\u0002 linha vista.",
"\u0002{chan}\u0002 — \u0002{lines}\u0002 lines seen.": "\u0002{chan}\u0002 — \u0002{lines}\u0002 linhas vistas.",
"{n} report. \u0002VIEW\u0002 <id> for detail.": "{n} denúncia. \u0002VIEW\u0002 <id> para detalhes.",
"{n} reports. \u0002VIEW\u0002 <id> for detail.": "{n} denúncias. \u0002VIEW\u0002 <id> para detalhes.",
"End of list ({count} group).": "Fim da lista ({count} grupo).",
"End of list ({count} groups).": "Fim da lista ({count} grupos)."
}