mirror of
https://git.kescher.at/CatCatNya/catstodon.git
synced 2024-11-25 09:48:06 +01:00
Merge pull request #2841 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to a021dee642
This commit is contained in:
commit
7cfa8bb782
64 changed files with 501 additions and 163 deletions
|
@ -458,7 +458,7 @@ GEM
|
|||
nokogiri (1.16.7)
|
||||
mini_portile2 (~> 2.8.2)
|
||||
racc (~> 1.4)
|
||||
oj (3.16.5)
|
||||
oj (3.16.6)
|
||||
bigdecimal (>= 3.0)
|
||||
ostruct (>= 0.2)
|
||||
omniauth (2.1.2)
|
||||
|
|
|
@ -150,11 +150,13 @@ export default class StatusPrepend extends PureComponent {
|
|||
|
||||
return !type ? null : (
|
||||
<aside className={type === 'reblogged_by' || type === 'featured' ? 'status__prepend' : 'notification__message'}>
|
||||
<div className='status__prepend__icon'>
|
||||
<Icon
|
||||
className={`status__prepend-icon ${type === 'favourite' ? 'star-icon' : ''}`}
|
||||
className={type === 'favourite' ? 'star-icon' : null}
|
||||
id={iconId}
|
||||
icon={iconComponent}
|
||||
/>
|
||||
</div>
|
||||
<Message />
|
||||
{children}
|
||||
</aside>
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
|
||||
import { Icon } from 'flavours/glitch/components/icon';
|
||||
import { DisplayedName } from 'flavours/glitch/features/notifications_v2/components/displayed_name';
|
||||
import { useAppSelector } from 'flavours/glitch/store';
|
||||
|
||||
export const StatusThreadLabel: React.FC<{
|
||||
accountId: string;
|
||||
inReplyToAccountId: string;
|
||||
}> = ({ accountId, inReplyToAccountId }) => {
|
||||
const inReplyToAccount = useAppSelector((state) =>
|
||||
state.accounts.get(inReplyToAccountId),
|
||||
);
|
||||
|
||||
let label;
|
||||
|
||||
if (accountId === inReplyToAccountId) {
|
||||
label = (
|
||||
<FormattedMessage
|
||||
id='status.continued_thread'
|
||||
defaultMessage='Continued thread'
|
||||
/>
|
||||
);
|
||||
} else if (inReplyToAccount) {
|
||||
label = (
|
||||
<FormattedMessage
|
||||
id='status.replied_to'
|
||||
defaultMessage='Replied to {name}'
|
||||
values={{ name: <DisplayedName accountIds={[inReplyToAccountId]} /> }}
|
||||
/>
|
||||
);
|
||||
} else {
|
||||
label = (
|
||||
<FormattedMessage
|
||||
id='status.replied_in_thread'
|
||||
defaultMessage='Replied in thread'
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='status__prepend'>
|
||||
<div className='status__prepend__icon'>
|
||||
<Icon id='reply' icon={ReplyIcon} />
|
||||
</div>
|
||||
{label}
|
||||
</div>
|
||||
);
|
||||
};
|
|
@ -1776,15 +1776,29 @@ body > [data-popper-placement] {
|
|||
.status__prepend {
|
||||
padding: 8px 14px; // glitch: reduced padding
|
||||
padding-bottom: 0;
|
||||
display: inline-flex;
|
||||
gap: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
font-weight: 500;
|
||||
color: $dark-text-color;
|
||||
|
||||
.status__display-name strong {
|
||||
color: $dark-text-color;
|
||||
&__icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex: 0 0 auto;
|
||||
|
||||
.icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
> span {
|
||||
|
|
|
@ -12,7 +12,6 @@ import { HotKeys } from 'react-hotkeys';
|
|||
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
|
||||
import PushPinIcon from '@/material-icons/400-24px/push_pin.svg?react';
|
||||
import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';
|
||||
import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
|
||||
import { ContentWarning } from 'mastodon/components/content_warning';
|
||||
import { FilterWarning } from 'mastodon/components/filter_warning';
|
||||
import { Icon } from 'mastodon/components/icon';
|
||||
|
@ -34,6 +33,7 @@ import { getHashtagBarForStatus } from './hashtag_bar';
|
|||
import { RelativeTimestamp } from './relative_timestamp';
|
||||
import StatusActionBar from './status_action_bar';
|
||||
import StatusContent from './status_content';
|
||||
import { StatusThreadLabel } from './status_thread_label';
|
||||
import { VisibilityIcon } from './visibility_icon';
|
||||
|
||||
const domParser = new DOMParser();
|
||||
|
@ -413,7 +413,7 @@ class Status extends ImmutablePureComponent {
|
|||
if (featured) {
|
||||
prepend = (
|
||||
<div className='status__prepend'>
|
||||
<div className='status__prepend-icon-wrapper'><Icon id='thumb-tack' icon={PushPinIcon} className='status__prepend-icon' /></div>
|
||||
<div className='status__prepend__icon'><Icon id='thumb-tack' icon={PushPinIcon} /></div>
|
||||
<FormattedMessage id='status.pinned' defaultMessage='Pinned post' />
|
||||
</div>
|
||||
);
|
||||
|
@ -422,7 +422,7 @@ class Status extends ImmutablePureComponent {
|
|||
|
||||
prepend = (
|
||||
<div className='status__prepend'>
|
||||
<div className='status__prepend-icon-wrapper'><Icon id='retweet' icon={RepeatIcon} className='status__prepend-icon' /></div>
|
||||
<div className='status__prepend__icon'><Icon id='retweet' icon={RepeatIcon} /></div>
|
||||
<FormattedMessage id='status.reblogged_by' defaultMessage='{name} boosted' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} data-hover-card-account={status.getIn(['account', 'id'])} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
|
||||
</div>
|
||||
);
|
||||
|
@ -434,18 +434,13 @@ class Status extends ImmutablePureComponent {
|
|||
} else if (status.get('visibility') === 'direct') {
|
||||
prepend = (
|
||||
<div className='status__prepend'>
|
||||
<div className='status__prepend-icon-wrapper'><Icon id='at' icon={AlternateEmailIcon} className='status__prepend-icon' /></div>
|
||||
<div className='status__prepend__icon'><Icon id='at' icon={AlternateEmailIcon} /></div>
|
||||
<FormattedMessage id='status.direct_indicator' defaultMessage='Private mention' />
|
||||
</div>
|
||||
);
|
||||
} else if (showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id'])) {
|
||||
const display_name_html = { __html: status.getIn(['account', 'display_name_html']) };
|
||||
|
||||
} else if (showThread && status.get('in_reply_to_id')) {
|
||||
prepend = (
|
||||
<div className='status__prepend'>
|
||||
<div className='status__prepend-icon-wrapper'><Icon id='reply' icon={ReplyIcon} className='status__prepend-icon' /></div>
|
||||
<FormattedMessage id='status.replied_to' defaultMessage='Replied to {name}' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} data-hover-card-account={status.getIn(['account', 'id'])} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
|
||||
</div>
|
||||
<StatusThreadLabel accountId={status.getIn(['account', 'id'])} inReplyToAccountId={status.get('in_reply_to_account_id')} />
|
||||
);
|
||||
}
|
||||
|
||||
|
|
50
app/javascript/mastodon/components/status_thread_label.tsx
Normal file
50
app/javascript/mastodon/components/status_thread_label.tsx
Normal file
|
@ -0,0 +1,50 @@
|
|||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import ReplyIcon from '@/material-icons/400-24px/reply.svg?react';
|
||||
import { Icon } from 'mastodon/components/icon';
|
||||
import { DisplayedName } from 'mastodon/features/notifications_v2/components/displayed_name';
|
||||
import { useAppSelector } from 'mastodon/store';
|
||||
|
||||
export const StatusThreadLabel: React.FC<{
|
||||
accountId: string;
|
||||
inReplyToAccountId: string;
|
||||
}> = ({ accountId, inReplyToAccountId }) => {
|
||||
const inReplyToAccount = useAppSelector((state) =>
|
||||
state.accounts.get(inReplyToAccountId),
|
||||
);
|
||||
|
||||
let label;
|
||||
|
||||
if (accountId === inReplyToAccountId) {
|
||||
label = (
|
||||
<FormattedMessage
|
||||
id='status.continued_thread'
|
||||
defaultMessage='Continued thread'
|
||||
/>
|
||||
);
|
||||
} else if (inReplyToAccount) {
|
||||
label = (
|
||||
<FormattedMessage
|
||||
id='status.replied_to'
|
||||
defaultMessage='Replied to {name}'
|
||||
values={{ name: <DisplayedName accountIds={[inReplyToAccountId]} /> }}
|
||||
/>
|
||||
);
|
||||
} else {
|
||||
label = (
|
||||
<FormattedMessage
|
||||
id='status.replied_in_thread'
|
||||
defaultMessage='Replied in thread'
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='status__prepend'>
|
||||
<div className='status__prepend__icon'>
|
||||
<Icon id='reply' icon={ReplyIcon} />
|
||||
</div>
|
||||
{label}
|
||||
</div>
|
||||
);
|
||||
};
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Marca",
|
||||
"status.cancel_reblog_private": "Desfés l'impuls",
|
||||
"status.cannot_reblog": "No es pot impulsar aquest tut",
|
||||
"status.continued_thread": "Continuació del fil",
|
||||
"status.copy": "Copia l'enllaç al tut",
|
||||
"status.delete": "Elimina",
|
||||
"status.detailed_status": "Vista detallada de la conversa",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.",
|
||||
"status.redraft": "Esborra i reescriu",
|
||||
"status.remove_bookmark": "Elimina el marcador",
|
||||
"status.replied_in_thread": "Respost al fil",
|
||||
"status.replied_to": "En resposta a {name}",
|
||||
"status.reply": "Respon",
|
||||
"status.replyAll": "Respon al fil",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Bogmærk",
|
||||
"status.cancel_reblog_private": "Fjern boost",
|
||||
"status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
|
||||
"status.continued_thread": "Fortsat tråd",
|
||||
"status.copy": "Kopiér link til indlæg",
|
||||
"status.delete": "Slet",
|
||||
"status.detailed_status": "Detaljeret samtalevisning",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
|
||||
"status.redraft": "Slet og omformulér",
|
||||
"status.remove_bookmark": "Fjern bogmærke",
|
||||
"status.replied_in_thread": "Svaret i tråd",
|
||||
"status.replied_to": "Besvarede {name}",
|
||||
"status.reply": "Besvar",
|
||||
"status.replyAll": "Besvar alle",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Beitrag als Lesezeichen setzen",
|
||||
"status.cancel_reblog_private": "Beitrag nicht mehr teilen",
|
||||
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
|
||||
"status.continued_thread": "Fortgeführter Thread",
|
||||
"status.copy": "Link zum Beitrag kopieren",
|
||||
"status.delete": "Beitrag löschen",
|
||||
"status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird das Profil hier erscheinen.",
|
||||
"status.redraft": "Löschen und neu erstellen",
|
||||
"status.remove_bookmark": "Lesezeichen entfernen",
|
||||
"status.replied_in_thread": "Antwortete im Thread",
|
||||
"status.replied_to": "Antwortete {name}",
|
||||
"status.reply": "Antworten",
|
||||
"status.replyAll": "Allen antworten",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Bookmark",
|
||||
"status.cancel_reblog_private": "Unboost",
|
||||
"status.cannot_reblog": "This post cannot be boosted",
|
||||
"status.continued_thread": "Continued thread",
|
||||
"status.copy": "Copy link to post",
|
||||
"status.delete": "Delete",
|
||||
"status.detailed_status": "Detailed conversation view",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
|
||||
"status.redraft": "Delete & re-draft",
|
||||
"status.remove_bookmark": "Remove bookmark",
|
||||
"status.replied_in_thread": "Replied in thread",
|
||||
"status.replied_to": "Replied to {name}",
|
||||
"status.reply": "Reply",
|
||||
"status.replyAll": "Reply to thread",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Marcar",
|
||||
"status.cancel_reblog_private": "Quitar adhesión",
|
||||
"status.cannot_reblog": "No se puede adherir a este mensaje",
|
||||
"status.continued_thread": "Continuación de hilo",
|
||||
"status.copy": "Copiar enlace al mensaje",
|
||||
"status.delete": "Eliminar",
|
||||
"status.detailed_status": "Vista de conversación detallada",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.",
|
||||
"status.redraft": "Eliminar mensaje original y editarlo",
|
||||
"status.remove_bookmark": "Quitar marcador",
|
||||
"status.replied_in_thread": "Respuesta en hilo",
|
||||
"status.replied_to": "Respondió a {name}",
|
||||
"status.reply": "Responder",
|
||||
"status.replyAll": "Responder al hilo",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"about.blocks": "Moderoidut palvelimet",
|
||||
"about.contact": "Yhteystiedot:",
|
||||
"about.contact": "Yhteydenotto:",
|
||||
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
|
||||
"about.domain_blocks.no_reason_available": "Syy ei ole tiedossa",
|
||||
"about.domain_blocks.preamble": "Mastodonin avulla voi yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
|
||||
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Lisää kirjanmerkki",
|
||||
"status.cancel_reblog_private": "Peru tehostus",
|
||||
"status.cannot_reblog": "Tätä julkaisua ei voi tehostaa",
|
||||
"status.continued_thread": "Jatkoi ketjua",
|
||||
"status.copy": "Kopioi linkki julkaisuun",
|
||||
"status.delete": "Poista",
|
||||
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.",
|
||||
"status.redraft": "Poista ja palauta muokattavaksi",
|
||||
"status.remove_bookmark": "Poista kirjanmerkki",
|
||||
"status.replied_in_thread": "Vastasi ketjuun",
|
||||
"status.replied_to": "Vastaus käyttäjälle {name}",
|
||||
"status.reply": "Vastaa",
|
||||
"status.replyAll": "Vastaa ketjuun",
|
||||
|
|
|
@ -223,7 +223,7 @@
|
|||
"domain_block_modal.title": "Bloquear dominio?",
|
||||
"domain_block_modal.you_will_lose_followers": "Vanse eliminar todas as túas seguidoras deste servidor.",
|
||||
"domain_block_modal.you_wont_see_posts": "Non verás publicacións ou notificacións das usuarias deste servidor.",
|
||||
"domain_pill.activitypub_lets_connect": "Permíteche conectar e interactuar con persoas non só de Mastodon, se non tamén con outras apps sociais.",
|
||||
"domain_pill.activitypub_lets_connect": "Permíteche conectar e interactuar con persoas non só de Mastodon, se non tamén con outras sociais.",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub é algo así como o idioma que Mastodon fala con outras redes sociais.",
|
||||
"domain_pill.server": "Servidor",
|
||||
"domain_pill.their_handle": "O seu alcume:",
|
||||
|
@ -231,8 +231,8 @@
|
|||
"domain_pill.their_username": "O seu identificador único no seu servidor. É posible atopar usuarias co mesmo nome de usuaria en diferentes servidores.",
|
||||
"domain_pill.username": "Nome de usuaria",
|
||||
"domain_pill.whats_in_a_handle": "As partes do alcume?",
|
||||
"domain_pill.who_they_are": "O alcume dinos quen é esa persoa e onde está, para que poidas interactuar con ela en toda a web social de <button>plataformas ActivityPub</button>.",
|
||||
"domain_pill.who_you_are": "Como o teu alcume informa de quen es e onde estás, as persoas poden interactuar contigo desde toda a web social de <button>plataformas ActivityPub</button>.",
|
||||
"domain_pill.who_they_are": "O alcume dinos quen é esa persoa e onde está, para que poidas interactuar con ela en toda a web social das <button>plataformas ActivityPub</button>.",
|
||||
"domain_pill.who_you_are": "Como o teu alcume informa de quen es e onde estás, as persoas poden interactuar contigo desde toda a web social das <button>plataformas ActivityPub</button>.",
|
||||
"domain_pill.your_handle": "O teu alcume:",
|
||||
"domain_pill.your_server": "O teu fogar dixital, onde están as túas publicacións. Non é do teu agrado? Podes cambiar de servidor cando queiras levando as túas seguidoras contigo.",
|
||||
"domain_pill.your_username": "O teu identificador único neste servidor. É posible que atopes usuarias co mesmo nome de usuaria en outros servidores.",
|
||||
|
@ -272,7 +272,7 @@
|
|||
"empty_column.list": "Aínda non hai nada nesta listaxe. Cando as usuarias incluídas na listaxe publiquen mensaxes, amosaranse aquí.",
|
||||
"empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.",
|
||||
"empty_column.mutes": "Aínda non silenciaches a ningúnha usuaria.",
|
||||
"empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificación aparecerán aquí seguindo o criterio dos teus axustes.",
|
||||
"empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificacións aparecerán aquí seguindo o criterio dos teus axustes.",
|
||||
"empty_column.notifications": "Aínda non tes notificacións. Aparecerán cando outras persoas interactúen contigo.",
|
||||
"empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo",
|
||||
"error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.",
|
||||
|
@ -641,7 +641,7 @@
|
|||
"onboarding.steps.publish_status.title": "Escribe a túa primeira publicación",
|
||||
"onboarding.steps.setup_profile.body": "Ao engadir información ao teu perfil é máis probable que teñas máis interaccións.",
|
||||
"onboarding.steps.setup_profile.title": "Personaliza o perfil",
|
||||
"onboarding.steps.share_profile.body": "Dille ás amizades como poden atoparte en Mastodon!",
|
||||
"onboarding.steps.share_profile.body": "Dille ás amizades como poden atoparte en Mastodon.",
|
||||
"onboarding.steps.share_profile.title": "Comparte o teu perfil en Mastodon",
|
||||
"onboarding.tips.2fa": "<strong>Sabes que?</strong> Podes protexer a túa conta configurando un segundo factor de autenticación nos axustes. Funciona con calquera app TOTP, non precisas un número de teléfono!",
|
||||
"onboarding.tips.accounts_from_other_servers": "<strong>Sabes que?</strong> Como Mastodon é descentralizado, algúns perfís que atopes estarán en servidores diferentes ao teu. Pero podes interactuar igualmente con eles! O seu servidor é o que ven despois da @ no seu identificador!",
|
||||
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Marcar",
|
||||
"status.cancel_reblog_private": "Desfacer compartido",
|
||||
"status.cannot_reblog": "Esta publicación non pode ser promovida",
|
||||
"status.continued_thread": "Continua co fío",
|
||||
"status.copy": "Copiar ligazón á publicación",
|
||||
"status.delete": "Eliminar",
|
||||
"status.detailed_status": "Vista detallada da conversa",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.",
|
||||
"status.redraft": "Eliminar e reescribir",
|
||||
"status.remove_bookmark": "Eliminar marcador",
|
||||
"status.replied_in_thread": "Respondeu nun fío",
|
||||
"status.replied_to": "Respondeu a {name}",
|
||||
"status.reply": "Responder",
|
||||
"status.replyAll": "Responder ao tema",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "סימניה",
|
||||
"status.cancel_reblog_private": "הסרת הדהוד",
|
||||
"status.cannot_reblog": "לא ניתן להדהד חצרוץ זה",
|
||||
"status.continued_thread": "שרשור מתמשך",
|
||||
"status.copy": "העתק/י קישור להודעה זו",
|
||||
"status.delete": "מחיקה",
|
||||
"status.detailed_status": "תצוגת שיחה מפורטת",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.",
|
||||
"status.redraft": "מחיקה ועריכה מחדש",
|
||||
"status.remove_bookmark": "הסרת סימניה",
|
||||
"status.replied_in_thread": "תגובה לשרשור",
|
||||
"status.replied_to": "בתגובה לחשבון {name}",
|
||||
"status.reply": "תגובה",
|
||||
"status.replyAll": "תגובה לשרשור",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Könyvjelzőzés",
|
||||
"status.cancel_reblog_private": "Megtolás visszavonása",
|
||||
"status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni",
|
||||
"status.continued_thread": "Folytatott szál",
|
||||
"status.copy": "Link másolása bejegyzésbe",
|
||||
"status.delete": "Törlés",
|
||||
"status.detailed_status": "Részletes beszélgetési nézet",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.",
|
||||
"status.redraft": "Törlés és újraírás",
|
||||
"status.remove_bookmark": "Könyvjelző eltávolítása",
|
||||
"status.replied_in_thread": "Válaszolva a szálban",
|
||||
"status.replied_to": "Megválaszolva {name} számára",
|
||||
"status.reply": "Válasz",
|
||||
"status.replyAll": "Válasz a beszélgetésre",
|
||||
|
|
|
@ -770,6 +770,7 @@
|
|||
"status.bookmark": "Pridėti į žymės",
|
||||
"status.cancel_reblog_private": "Nebepakelti",
|
||||
"status.cannot_reblog": "Šis įrašas negali būti pakeltas.",
|
||||
"status.continued_thread": "Tęsiama gijoje",
|
||||
"status.copy": "Kopijuoti nuorodą į įrašą",
|
||||
"status.delete": "Ištrinti",
|
||||
"status.detailed_status": "Išsami pokalbio peržiūra",
|
||||
|
@ -802,6 +803,7 @@
|
|||
"status.reblogs.empty": "Šio įrašo dar niekas nepakėlė. Kai kas nors tai padarys, jie bus rodomi čia.",
|
||||
"status.redraft": "Ištrinti ir parengti iš naujo",
|
||||
"status.remove_bookmark": "Pašalinti žymę",
|
||||
"status.replied_in_thread": "Atsakyta gijoje",
|
||||
"status.replied_to": "Atsakyta į {name}",
|
||||
"status.reply": "Atsakyti",
|
||||
"status.replyAll": "Atsakyti į giją",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Bladwijzer toevoegen",
|
||||
"status.cancel_reblog_private": "Niet langer boosten",
|
||||
"status.cannot_reblog": "Dit bericht kan niet geboost worden",
|
||||
"status.continued_thread": "Vervolgt het gesprek",
|
||||
"status.copy": "Link naar bericht kopiëren",
|
||||
"status.delete": "Verwijderen",
|
||||
"status.detailed_status": "Uitgebreide gespreksweergave",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.",
|
||||
"status.redraft": "Verwijderen en herschrijven",
|
||||
"status.remove_bookmark": "Bladwijzer verwijderen",
|
||||
"status.replied_in_thread": "Reageerde in gesprek",
|
||||
"status.replied_to": "Reageerde op {name}",
|
||||
"status.reply": "Reageren",
|
||||
"status.replyAll": "Op iedereen reageren",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Dodaj zakładkę",
|
||||
"status.cancel_reblog_private": "Cofnij podbicie",
|
||||
"status.cannot_reblog": "Ten wpis nie może zostać podbity",
|
||||
"status.continued_thread": "Ciąg dalszy wątku",
|
||||
"status.copy": "Skopiuj odnośnik do wpisu",
|
||||
"status.delete": "Usuń",
|
||||
"status.detailed_status": "Szczegółowy widok konwersacji",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.",
|
||||
"status.redraft": "Usuń i przeredaguj",
|
||||
"status.remove_bookmark": "Usuń zakładkę",
|
||||
"status.replied_in_thread": "Odpowiedź w wątku",
|
||||
"status.replied_to": "Odpowiedź do wpisu użytkownika {name}",
|
||||
"status.reply": "Odpowiedz",
|
||||
"status.replyAll": "Odpowiedz na wątek",
|
||||
|
|
|
@ -278,7 +278,7 @@
|
|||
"error.unexpected_crash.explanation": "Devido a um erro no nosso código ou a um problema de compatibilidade do navegador, esta página não pôde ser apresentada corretamente.",
|
||||
"error.unexpected_crash.explanation_addons": "Esta página não pôde ser exibida corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
|
||||
"error.unexpected_crash.next_steps": "Tente atualizar a página. Se isso não ajudar, pode usar o Mastodon através de um navegador diferente ou uma aplicação nativa.",
|
||||
"error.unexpected_crash.next_steps_addons": "Tente desabilitá-los e atualizar a página. Se isso não ajudar, você ainda poderá usar o Mastodon por meio de um navegador diferente ou de um aplicativo nativo.",
|
||||
"error.unexpected_crash.next_steps_addons": "Tente desativá-los e atualizar a página. Se isso não ajudar, poderá ainda ser possível utilizar o Mastodon através de um navegador diferente ou de uma aplicação nativa.",
|
||||
"errors.unexpected_crash.copy_stacktrace": "Copiar a stacktrace para o clipboard",
|
||||
"errors.unexpected_crash.report_issue": "Reportar problema",
|
||||
"explore.search_results": "Resultados da pesquisa",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Yer işareti ekle",
|
||||
"status.cancel_reblog_private": "Yeniden paylaşımı geri al",
|
||||
"status.cannot_reblog": "Bu gönderi yeniden paylaşılamaz",
|
||||
"status.continued_thread": "Devam eden akış",
|
||||
"status.copy": "Gönderi bağlantısını kopyala",
|
||||
"status.delete": "Sil",
|
||||
"status.detailed_status": "Ayrıntılı sohbet görünümü",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "Henüz hiç kimse bu gönderiyi yeniden paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.",
|
||||
"status.redraft": "Sil,Düzenle ve Yeniden paylaş",
|
||||
"status.remove_bookmark": "Yer işaretini kaldır",
|
||||
"status.replied_in_thread": "Akışta yanıtlandı",
|
||||
"status.replied_to": "{name} kullanıcısına yanıt verdi",
|
||||
"status.reply": "Yanıtla",
|
||||
"status.replyAll": "Konuyu yanıtla",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "Додати до закладок",
|
||||
"status.cancel_reblog_private": "Скасувати поширення",
|
||||
"status.cannot_reblog": "Цей допис не може бути поширений",
|
||||
"status.continued_thread": "Continued thread",
|
||||
"status.copy": "Копіювати посилання на допис",
|
||||
"status.delete": "Видалити",
|
||||
"status.detailed_status": "Детальний вигляд бесіди",
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
"block_modal.they_cant_see_posts": "他们看不到你的嘟文,你也看不到他们的嘟文。",
|
||||
"block_modal.they_will_know": "他们将能看到他们被屏蔽。",
|
||||
"block_modal.title": "是否屏蔽该用户?",
|
||||
"block_modal.you_wont_see_mentions": "你将无法看到提及他们的嘟文。",
|
||||
"block_modal.you_wont_see_mentions": "你将不会看到提及他们的嘟文。",
|
||||
"boost_modal.combo": "下次按住 {combo} 即可跳过此提示",
|
||||
"boost_modal.reblog": "是否转嘟?",
|
||||
"boost_modal.undo_reblog": "是否取消转嘟?",
|
||||
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "添加到书签",
|
||||
"status.cancel_reblog_private": "取消转贴",
|
||||
"status.cannot_reblog": "这条嘟文不允许被转嘟",
|
||||
"status.continued_thread": "继续线程",
|
||||
"status.copy": "复制嘟文链接",
|
||||
"status.delete": "删除",
|
||||
"status.detailed_status": "详细的对话视图",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。",
|
||||
"status.redraft": "删除并重新编辑",
|
||||
"status.remove_bookmark": "移除书签",
|
||||
"status.replied_in_thread": "已在线程中回复",
|
||||
"status.replied_to": "回复给 {name}",
|
||||
"status.reply": "回复",
|
||||
"status.replyAll": "回复所有人",
|
||||
|
|
|
@ -780,6 +780,7 @@
|
|||
"status.bookmark": "書籤",
|
||||
"status.cancel_reblog_private": "取消轉嘟",
|
||||
"status.cannot_reblog": "這則嘟文無法被轉嘟",
|
||||
"status.continued_thread": "接續討論串",
|
||||
"status.copy": "複製嘟文連結",
|
||||
"status.delete": "刪除",
|
||||
"status.detailed_status": "詳細的對話內容",
|
||||
|
@ -813,6 +814,7 @@
|
|||
"status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。",
|
||||
"status.redraft": "刪除並重新編輯",
|
||||
"status.remove_bookmark": "移除書籤",
|
||||
"status.replied_in_thread": "於討論串中回覆",
|
||||
"status.replied_to": "回覆 {name}",
|
||||
"status.reply": "回覆",
|
||||
"status.replyAll": "回覆討論串",
|
||||
|
|
|
@ -1607,15 +1607,29 @@ body > [data-popper-placement] {
|
|||
.status__prepend {
|
||||
padding: 16px;
|
||||
padding-bottom: 0;
|
||||
display: inline-flex;
|
||||
gap: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 15px;
|
||||
line-height: 22px;
|
||||
font-weight: 500;
|
||||
color: $dark-text-color;
|
||||
|
||||
.status__display-name strong {
|
||||
color: $dark-text-color;
|
||||
&__icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex: 0 0 auto;
|
||||
|
||||
.icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
> span {
|
||||
|
|
|
@ -111,10 +111,12 @@ class Account < ApplicationRecord
|
|||
validates :display_name, length: { maximum: DISPLAY_NAME_LENGTH_LIMIT }, if: -> { local? && will_save_change_to_display_name? }
|
||||
validates :note, note_length: { maximum: NOTE_LENGTH_LIMIT }, if: -> { local? && will_save_change_to_note? }
|
||||
validates :fields, length: { maximum: DEFAULT_FIELDS_SIZE }, if: -> { local? && will_save_change_to_fields? }
|
||||
validates :uri, absence: true, if: :local?, on: :create
|
||||
validates :inbox_url, absence: true, if: :local?, on: :create
|
||||
validates :shared_inbox_url, absence: true, if: :local?, on: :create
|
||||
validates :followers_url, absence: true, if: :local?, on: :create
|
||||
with_options on: :create do
|
||||
validates :uri, absence: true, if: :local?
|
||||
validates :inbox_url, absence: true, if: :local?
|
||||
validates :shared_inbox_url, absence: true, if: :local?
|
||||
validates :followers_url, absence: true, if: :local?
|
||||
end
|
||||
|
||||
normalizes :username, with: ->(username) { username.squish }
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ class FeaturedTag < ApplicationRecord
|
|||
end
|
||||
|
||||
def decrement(deleted_status_id)
|
||||
update(statuses_count: [0, statuses_count - 1].max, last_status_at: visible_tagged_account_statuses.where.not(id: deleted_status_id).select(:created_at).first&.created_at)
|
||||
update(statuses_count: [0, statuses_count - 1].max, last_status_at: visible_tagged_account_statuses.where.not(id: deleted_status_id).pick(:created_at))
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -56,7 +56,7 @@ class FeaturedTag < ApplicationRecord
|
|||
|
||||
def reset_data
|
||||
self.statuses_count = visible_tagged_account_statuses.count
|
||||
self.last_status_at = visible_tagged_account_statuses.select(:created_at).first&.created_at
|
||||
self.last_status_at = visible_tagged_account_statuses.pick(:created_at)
|
||||
end
|
||||
|
||||
def validate_featured_tags_limit
|
||||
|
|
|
@ -25,7 +25,7 @@ ca:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Realitza l'acció
|
||||
already_silenced: Aquest compte ja s'ha silenciat.
|
||||
already_silenced: Aquest compte ja s'ha limitat.
|
||||
already_suspended: Aquest compte ja s'ha suspès.
|
||||
title: Fer l'acció de moderació a %{acct}
|
||||
account_moderation_notes:
|
||||
|
@ -61,6 +61,7 @@ ca:
|
|||
demote: Degrada
|
||||
destroyed_msg: Les dades de %{username} son a la cua per a ser esborrades en breu
|
||||
disable: Inhabilita
|
||||
disable_sign_in_token_auth: Desactivar l'autenticació de token per correu-e
|
||||
disable_two_factor_authentication: Desactiva 2FA
|
||||
disabled: Inhabilitat
|
||||
display_name: Nom visible
|
||||
|
@ -69,6 +70,7 @@ ca:
|
|||
email: Adreça electrònica
|
||||
email_status: Estat de l'adreça electrònica
|
||||
enable: Habilita
|
||||
enable_sign_in_token_auth: Activar l'autenticació de token per correu-e
|
||||
enabled: Habilitat
|
||||
enabled_msg: El compte de %{username} s’ha descongelat amb èxit
|
||||
followers: Seguidors
|
||||
|
@ -201,8 +203,10 @@ ca:
|
|||
destroy_user_role: Destrueix Rol
|
||||
disable_2fa_user: Desactiva 2FA
|
||||
disable_custom_emoji: Desactiva l'emoji personalitzat
|
||||
disable_sign_in_token_auth_user: Desactivar l'autenticació de token per correu-e per a l'usuari
|
||||
disable_user: Deshabilita l'usuari
|
||||
enable_custom_emoji: Activa l'emoji personalitzat
|
||||
enable_sign_in_token_auth_user: Activar l'autenticació de token per correu-e per a l'usuari
|
||||
enable_user: Activa l'usuari
|
||||
memorialize_account: Memoritza el compte
|
||||
promote_user: Promou l'usuari
|
||||
|
@ -237,17 +241,21 @@ ca:
|
|||
confirm_user_html: "%{name} ha confirmat l'adreça del correu electrònic de l'usuari %{target}"
|
||||
create_account_warning_html: "%{name} ha enviat un avís a %{target}"
|
||||
create_announcement_html: "%{name} ha creat un nou anunci %{target}"
|
||||
create_canonical_email_block_html: "%{name} ha blocat l'adreça de correu electrònic amb el hash %{target}"
|
||||
create_custom_emoji_html: "%{name} ha pujat un emoji nou %{target}"
|
||||
create_domain_allow_html: "%{name} ha permès la federació amb el domini %{target}"
|
||||
create_domain_block_html: "%{name} ha bloquejat el domini %{target}"
|
||||
create_email_domain_block_html: "%{name} ha blocat el domini de correu electrònic %{target}"
|
||||
create_ip_block_html: "%{name} ha creat una regla per a l'IP %{target}"
|
||||
create_unavailable_domain_html: "%{name} ha aturat el lliurament al domini %{target}"
|
||||
create_user_role_html: "%{name} ha creat el rol %{target}"
|
||||
demote_user_html: "%{name} ha degradat l'usuari %{target}"
|
||||
destroy_announcement_html: "%{name} ha eliminat l'anunci %{target}"
|
||||
destroy_canonical_email_block_html: "%{name} ha desblocat el correu electrònic amb el hash %{target}"
|
||||
destroy_custom_emoji_html: "%{name} ha esborrat l'emoji %{target}"
|
||||
destroy_domain_allow_html: "%{name} no permet la federació amb el domini %{target}"
|
||||
destroy_domain_block_html: "%{name} ha desbloquejat el domini %{target}"
|
||||
destroy_email_domain_block_html: "%{name} ha desblocat el domini de correu electrònic %{target}"
|
||||
destroy_instance_html: "%{name} ha purgat el domini %{target}"
|
||||
destroy_ip_block_html: "%{name} ha esborrat la regla per a l'IP %{target}"
|
||||
destroy_status_html: "%{name} ha eliminat el tut de %{target}"
|
||||
|
@ -255,8 +263,10 @@ ca:
|
|||
destroy_user_role_html: "%{name} ha esborrat el rol %{target}"
|
||||
disable_2fa_user_html: "%{name} ha desactivat el requisit de dos factors per a l'usuari %{target}"
|
||||
disable_custom_emoji_html: "%{name} ha desactivat l'emoji %{target}"
|
||||
disable_sign_in_token_auth_user_html: "%{name} ha desactivat l'autenticació de token per correu-e per a %{target}"
|
||||
disable_user_html: "%{name} ha desactivat l'accés del usuari %{target}"
|
||||
enable_custom_emoji_html: "%{name} ha activat l'emoji %{target}"
|
||||
enable_sign_in_token_auth_user_html: "%{name} ha activat l'autenticació de token per correu-e per a %{target}"
|
||||
enable_user_html: "%{name} ha activat l'accés del usuari %{target}"
|
||||
memorialize_account_html: "%{name} ha convertit el compte %{target} en una pàgina de memorial"
|
||||
promote_user_html: "%{name} ha promogut l'usuari %{target}"
|
||||
|
@ -264,6 +274,7 @@ ca:
|
|||
reject_user_html: "%{name} ha rebutjat el registre de %{target}"
|
||||
remove_avatar_user_html: "%{name} ha eliminat l'avatar de %{target}"
|
||||
reopen_report_html: "%{name} ha reobert l'informe %{target}"
|
||||
resend_user_html: "%{name} ha reenviat el correu-e de confirmació per %{target}"
|
||||
reset_password_user_html: "%{name} ha restablert la contrasenya de l'usuari %{target}"
|
||||
resolve_report_html: "%{name} ha resolt l'informe %{target}"
|
||||
sensitive_account_html: "%{name} ha marcat els mèdia de %{target} com a sensibles"
|
||||
|
@ -432,6 +443,7 @@ ca:
|
|||
new:
|
||||
create: Afegir un domini
|
||||
resolve: Resol domini
|
||||
title: Blocar el nou domini de correu-e
|
||||
not_permitted: No permés
|
||||
resolved_through_html: Resolt mitjançant %{domain}
|
||||
export_domain_allows:
|
||||
|
@ -1402,6 +1414,7 @@ ca:
|
|||
authentication_methods:
|
||||
otp: aplicació d'autenticació de dos factors
|
||||
password: contrasenya
|
||||
sign_in_token: codi de seguretat per correu electrònic
|
||||
webauthn: claus de seguretat
|
||||
description_html: Si veus activitat que no reconeixes, considera canviar la teva contrasenya i activar l'autenticació de dos factors.
|
||||
empty: Historial d'autenticació no disponible
|
||||
|
@ -1412,6 +1425,16 @@ ca:
|
|||
unsubscribe:
|
||||
action: Sí, canceŀla la subscripció
|
||||
complete: Subscripció cancel·lada
|
||||
confirmation_html: Segur que vols donar-te de baixa de rebre %{type} de Mastodon a %{domain} a %{email}? Sempre pots subscriure't de nou des de la <a href="%{settings_path}">configuració de les notificacions per correu electrònic</a>.
|
||||
emails:
|
||||
notification_emails:
|
||||
favourite: notificacions dels favorits per correu electrònic
|
||||
follow: notificacions dels seguiments per correu electrònic
|
||||
follow_request: correus electrònics de peticions de seguiment
|
||||
mention: correus electrònics de notificacions de mencions
|
||||
reblog: correus electrònics de notificacions d'impulsos
|
||||
resubscribe_html: Si ets dones de baixa per error pots donar-te d'alta des de la <a href="%{settings_path}">configuració de les notificacions per correu electrònic</a>.
|
||||
success_html: Ja no rebràs %{type} de Mastodon a %{domain} a %{email}.
|
||||
title: Cancel·la la subscripció
|
||||
media_attachments:
|
||||
validations:
|
||||
|
@ -1493,6 +1516,8 @@ ca:
|
|||
update:
|
||||
subject: "%{name} ha editat una publicació"
|
||||
notifications:
|
||||
administration_emails: Notificacions per correu-e de l'administrador
|
||||
email_events: Esdeveniments per a notificacions de correu electrònic
|
||||
email_events_hint: 'Selecciona els esdeveniments per als quals vols rebre notificacions:'
|
||||
number:
|
||||
human:
|
||||
|
@ -1651,6 +1676,7 @@ ca:
|
|||
import: Importació
|
||||
import_and_export: Importació i exportació
|
||||
migrate: Migració del compte
|
||||
notifications: Notificacions per correu electrònic
|
||||
preferences: Preferències
|
||||
profile: Perfil
|
||||
relationships: Seguits i seguidors
|
||||
|
@ -1897,6 +1923,7 @@ ca:
|
|||
invalid_otp_token: El codi de dos factors no és correcte
|
||||
otp_lost_help_html: Si has perdut l'accés a tots dos pots contactar per %{email}
|
||||
rate_limited: Excessius intents d'autenticació, torneu-hi més tard.
|
||||
seamless_external_login: Has iniciat sessió via un servei extern. Així, els ajustos de contrasenya i correu electrònic no estan disponibles.
|
||||
signed_in_as: 'Sessió iniciada com a:'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Consell:</strong> l'enllaç al vostre lloc web pot ser invisible. La part important és <code>rel="me"</code> que evita que us suplantin la identitat a llocs web amb contingut generat pels usuaris. Fins i tot podeu generar una etiqueta <code>link</code> a la capçalera de la pàgina en comptes d'una <code>a</code>, però el codi HTML ha de ser accessible sense requerir executar JavaScript.
|
||||
|
|
|
@ -33,7 +33,6 @@ cy:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Cyflawni gweithred
|
||||
already_silenced: Mae'r cyfrif hwn eisoes wedi'i dewi.
|
||||
already_suspended: Mae'r cyfrif hwn eisoes wedi'i atal.
|
||||
title: Cyflawni gweithred cymedroli ar %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,7 @@ da:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Udfør handling
|
||||
already_silenced: Denne konto er allerede gjort tavs.
|
||||
already_silenced: Denne konto er allerede blevet begrænset.
|
||||
already_suspended: Denne konto er allerede suspenderet.
|
||||
title: Udfør moderatorhandling på %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,6 @@ de:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Aktion ausführen
|
||||
already_silenced: Dieses Konto wurde bereits stummgeschaltet.
|
||||
already_suspended: Dieses Konto wurde bereits gesperrt.
|
||||
title: "@%{acct} moderieren"
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,7 @@ en:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Perform action
|
||||
already_silenced: This account has already been silenced.
|
||||
already_silenced: This account has already been limited.
|
||||
already_suspended: This account has already been suspended.
|
||||
title: Perform moderation action on %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,7 @@ es-AR:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Ejecutar acción
|
||||
already_silenced: Esta cuenta ya ha sido limitada.
|
||||
already_silenced: Esta cuenta ya fue limitada.
|
||||
already_suspended: Esta cuenta ya ha sido suspendida.
|
||||
title: Ejecutar acción de moderación en %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,6 @@ et:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Täida tegevus
|
||||
already_silenced: See konto on juba vaigistatud.
|
||||
already_suspended: See konto on juba peatatud.
|
||||
title: Rakenda moderaatori tegevus kasutajale %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -981,7 +981,7 @@ fi:
|
|||
used_by_over_week:
|
||||
one: Käyttänyt yksi käyttäjä viimeisen viikon aikana
|
||||
other: Käyttänyt %{count} käyttäjää viimeisen viikon aikana
|
||||
title: Suositukset ja suuntaukset
|
||||
title: Suositukset ja trendit
|
||||
trending: Trendaus
|
||||
warning_presets:
|
||||
add_new: Lisää uusi
|
||||
|
|
|
@ -25,7 +25,6 @@ fo:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Frem atgerð
|
||||
already_silenced: Hendan kontan er longu gjørd kvirr.
|
||||
already_suspended: Hendan kontan er longu ógildað.
|
||||
title: Frem umsjónaratgerð á %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,6 @@ fr-CA:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Effectuer l'action
|
||||
already_silenced: Ce compte est déjà limité.
|
||||
already_suspended: Ce compte est déjà suspendu.
|
||||
title: Effectuer une action de modération sur %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,6 @@ fr:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Effectuer l'action
|
||||
already_silenced: Ce compte est déjà limité.
|
||||
already_suspended: Ce compte est déjà suspendu.
|
||||
title: Effectuer une action de modération sur %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -31,7 +31,6 @@ ga:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Déan gníomh
|
||||
already_silenced: Tá an cuntas seo ina thost cheana féin.
|
||||
already_suspended: Tá an cuntas seo curtha ar fionraí cheana féin.
|
||||
title: Dean gníomh modhnóireachta ar %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -29,7 +29,6 @@ gd:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Gabh an gnìomh
|
||||
already_silenced: Chaidh an cunntas seo a chuingeachadh mu thràth.
|
||||
already_suspended: Chaidh an cunntas seo a chur à rèim mu thràth.
|
||||
title: Gabh gnìomh maorsainneachd air %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,7 @@ gl:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Executar acción
|
||||
already_silenced: Esta conta xa está silenciada.
|
||||
already_silenced: A conta xa está limitada
|
||||
already_suspended: Esta conta xa está suspendida.
|
||||
title: Executar acción de moderación a %{acct}
|
||||
account_moderation_notes:
|
||||
|
@ -1854,7 +1854,7 @@ gl:
|
|||
failed_2fa:
|
||||
details: 'Detalles do intento de acceso:'
|
||||
explanation: Alguén intentou acceder á túa conta mais fíxoo cun segundo factor de autenticación non válido.
|
||||
further_actions_html: Se non foches ti, recomendámosche %{action} inmediatamente xa que a conta podería estar en risco.
|
||||
further_actions_html: Se non foches ti, recomendámosche %{action} inmediatamente porque a conta podería estar en risco.
|
||||
subject: Fallo co segundo factor de autenticación
|
||||
title: Fallou o segundo factor de autenticación
|
||||
suspicious_sign_in:
|
||||
|
|
|
@ -29,6 +29,7 @@ he:
|
|||
admin:
|
||||
account_actions:
|
||||
action: בצע/י פעולה
|
||||
already_suspended: חשבון זה הושעה.
|
||||
title: ביצוע פעולות הנהלה על %{acct}
|
||||
account_moderation_notes:
|
||||
create: ליצור
|
||||
|
@ -50,6 +51,7 @@ he:
|
|||
title: שינוי כתובת דוא"ל עבור המשתמש.ת %{username}
|
||||
change_role:
|
||||
changed_msg: התפקיד שונה בהצלחה!
|
||||
edit_roles: נהל תפקידי משתמש
|
||||
label: שינוי תפקיד
|
||||
no_role: ללא תפקיד
|
||||
title: שינוי תפקיד עבור %{username}
|
||||
|
@ -626,6 +628,7 @@ he:
|
|||
suspend_description_html: חשבון זה על כל תכניו יחסמו וברבות הימים ימחקו, כל פעילות מולו לא תתאפשר. הפעולה ניתנת לביטול תוך 30 ימים, והיא תסגור כל דיווח התלוי ועומד נגד החשבון.
|
||||
actions_description_html: בחר/י איזו פעולה לבצע על מנת לפתור את הדו"ח. אם תופעל פעולת ענישה כנגד החשבון המדווח, הודעת דוא"ל תשלח אליהם, אלא אם נבחרה קטגוריית ה<strong>ספאם</strong>.
|
||||
actions_description_remote_html: בחרו איזו פעולה לבצע כדי לפתור את הדיווח שהוגש. פעולה זו תשפיע רק על התקשורת מול השרת <strong>שלך</strong> עם החשבון המרוחק ותוכנו.
|
||||
actions_no_posts: דווח זה לא כולל הודעות למחיקה
|
||||
add_to_report: הוספת פרטים לדיווח
|
||||
already_suspended_badges:
|
||||
local: כבר הודח בשרת זה
|
||||
|
|
|
@ -25,7 +25,6 @@ hu:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Művelet végrehajtása
|
||||
already_silenced: Ezt a fiókot már elnémították.
|
||||
already_suspended: Ezt a fiókot már felfüggesztették.
|
||||
title: 'Moderálási művelet végrehajtása ezen: %{acct}'
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,6 @@ ia:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Exequer action
|
||||
already_silenced: Iste conto jam ha essite silentiate.
|
||||
already_suspended: Iste conto jam ha essite suspendite.
|
||||
title: Exequer action de moderation sur %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,6 @@ is:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Framkvæma aðgerð
|
||||
already_silenced: Þessi aðgangur hefur þegar verið þaggaður.
|
||||
already_suspended: Þessi aðgangur hefur þegar verið settur í frysti.
|
||||
title: Framkvæma umsjónaraðgerð á %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,7 +25,7 @@ it:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Esegui azione
|
||||
already_silenced: Questo account è già stato silenziato.
|
||||
already_silenced: Questo account è già stato limitato.
|
||||
already_suspended: Questo account è già stato sospeso.
|
||||
title: Esegui l'azione di moderazione su %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -23,7 +23,6 @@ ko:
|
|||
admin:
|
||||
account_actions:
|
||||
action: 조치 취하기
|
||||
already_silenced: 이 계정은 이미 침묵되었습니다.
|
||||
already_suspended: 이 계정은 이미 정지되었습니다.
|
||||
title: "%{acct} 계정에 중재 취하기"
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -29,6 +29,7 @@ lt:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Atlikti veiksmą
|
||||
already_suspended: Ši paskyra jau sustabdyta.
|
||||
title: Atlikti prižiūrėjimo veiksmą %{acct}
|
||||
account_moderation_notes:
|
||||
create: Palikti pastabą
|
||||
|
@ -49,6 +50,7 @@ lt:
|
|||
title: Keisti el. paštą %{username}
|
||||
change_role:
|
||||
changed_msg: Vaidmuo sėkmingai pakeistas.
|
||||
edit_roles: Tvarkyti naudotojų vaidmenis
|
||||
label: Keisti vaidmenį
|
||||
no_role: Jokios vaidmenį
|
||||
title: Keisti vaidmenį %{username}
|
||||
|
@ -485,6 +487,7 @@ lt:
|
|||
destroyed_msg: Skundo žinutė sekmingai ištrinta!
|
||||
reports:
|
||||
action_taken_by: Veiksmo ėmėsi
|
||||
actions_no_posts: Ši ataskaita neturi jokių susijusių įrašų ištrinti
|
||||
already_suspended_badges:
|
||||
local: Jau sustabdytas šiame serveryje
|
||||
remote: Jau sustabdytas jų serveryje
|
||||
|
|
|
@ -25,6 +25,7 @@ nn:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Utfør
|
||||
already_silenced: Denne kontoen har allereie vorte avgrensa.
|
||||
title: Utfør moderatorhandling på %{acct}
|
||||
account_moderation_notes:
|
||||
create: Legg igjen merknad
|
||||
|
|
|
@ -29,7 +29,6 @@ pl:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Wykonaj działanie
|
||||
already_silenced: To konto zostało już wyciszone.
|
||||
already_suspended: To konto zostało już zawieszone.
|
||||
title: Wykonaj działanie moderacyjne na %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -4,8 +4,8 @@ pt-PT:
|
|||
about_mastodon_html: 'A rede social do futuro: sem publicidade, e sem vigilância empresarial; desenho ético, e descentralizado! Tome posse dos seus dados com o Mastodon!'
|
||||
contact_missing: Por definir
|
||||
contact_unavailable: n.d.
|
||||
hosted_on: Mastodon em %{domain}
|
||||
title: Acerca de
|
||||
hosted_on: Mastodon alojado em %{domain}
|
||||
title: Sobre
|
||||
accounts:
|
||||
follow: Seguir
|
||||
followers:
|
||||
|
@ -25,15 +25,17 @@ pt-PT:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Executar acção
|
||||
already_suspended: Esta conta já foi suspensa.
|
||||
title: Executar ação de moderação em %{acct}
|
||||
account_moderation_notes:
|
||||
create: Deixar uma nota
|
||||
created_msg: Nota de moderação criada com sucesso!
|
||||
destroyed_msg: Nota de moderação destruída!
|
||||
accounts:
|
||||
add_email_domain_block: Bloquear domínio de e-mail
|
||||
approve: Aprovar
|
||||
approved_msg: Inscrição de %{username} aprovada com sucesso
|
||||
are_you_sure: Tens a certeza?
|
||||
are_you_sure: Tem a certeza?
|
||||
avatar: Imagem de perfil
|
||||
by_domain: Domínio
|
||||
change_email:
|
||||
|
@ -45,18 +47,20 @@ pt-PT:
|
|||
title: Alterar e-mail para %{username}
|
||||
change_role:
|
||||
changed_msg: Função alterada com sucesso!
|
||||
edit_roles: Gerir funções de utilizador
|
||||
label: Alterar função
|
||||
no_role: Nenhuma função
|
||||
title: Alterar a função de %{username}
|
||||
confirm: Confirmar
|
||||
confirmed: Confirmado
|
||||
confirming: A confirmar
|
||||
custom: Personalizar
|
||||
custom: Personalizado
|
||||
delete: Eliminar dados
|
||||
deleted: Eliminada
|
||||
demote: Despromoveu
|
||||
demote: Despromovida
|
||||
destroyed_msg: Os dados de %{username} estão agora em fila de espera para serem eliminados de imediato
|
||||
disable: Congelar
|
||||
disable_sign_in_token_auth: Desativar token de autenticação por e-mail
|
||||
disable_two_factor_authentication: Desativar autenticação por dois fatores (2FA)
|
||||
disabled: Congelada
|
||||
display_name: Nome a mostrar
|
||||
|
@ -65,6 +69,7 @@ pt-PT:
|
|||
email: E-mail
|
||||
email_status: Estado do e-mail
|
||||
enable: Descongelar
|
||||
enable_sign_in_token_auth: Ativar token de autenticação por e-mail
|
||||
enabled: Ativado
|
||||
enabled_msg: Descongelou a conta %{username}
|
||||
followers: Seguidores
|
||||
|
@ -100,8 +105,8 @@ pt-PT:
|
|||
no_limits_imposed: Sem limites impostos
|
||||
no_role_assigned: Nenhuma função atribuída
|
||||
not_subscribed: Não inscrito
|
||||
pending: Pendente de revisão
|
||||
perform_full_suspension: Fazer suspensão completa
|
||||
pending: Revisão pendente
|
||||
perform_full_suspension: Suspender
|
||||
previous_strikes: Reprimendas anteriores
|
||||
previous_strikes_description_html:
|
||||
one: Esta conta tem <strong>1</strong> reprimenda.
|
||||
|
@ -109,7 +114,7 @@ pt-PT:
|
|||
promote: Promover
|
||||
protocol: Protocolo
|
||||
public: Público
|
||||
push_subscription_expires: A Inscrição PuSH expira
|
||||
push_subscription_expires: A inscrição PuSH expira
|
||||
redownload: Atualizar perfil
|
||||
redownloaded_msg: Perfil de %{username} atualizado a partir da origem com sucesso
|
||||
reject: Rejeitar
|
||||
|
@ -122,13 +127,14 @@ pt-PT:
|
|||
removed_header_msg: Imagem de cabeçalho de %{username} removida
|
||||
resend_confirmation:
|
||||
already_confirmed: Este utilizador já está confirmado
|
||||
send: Reenviar link de confirmação
|
||||
success: Link de confirmação enviado com sucesso!
|
||||
reset: Reiniciar
|
||||
send: Reenviar hiperligação de confirmação
|
||||
success: Hiperligação de confirmação enviada com sucesso!
|
||||
reset: Repor
|
||||
reset_password: Criar nova palavra-passe
|
||||
resubscribe: Reinscrever
|
||||
role: Função
|
||||
search: Pesquisar
|
||||
search_same_email_domain: Outros utilizadores com o mesmo domínio de e-mail
|
||||
search_same_ip: Outros utilizadores com o mesmo IP
|
||||
security: Segurança
|
||||
security_measures:
|
||||
|
@ -136,7 +142,7 @@ pt-PT:
|
|||
password_and_2fa: Palavra-passe e 2FA
|
||||
sensitive: Marcar como problemático
|
||||
sensitized: Marcada como problemática
|
||||
shared_inbox_url: URL da caixa de entrada compartilhada
|
||||
shared_inbox_url: URL da caixa de entrada partilhada
|
||||
show:
|
||||
created_reports: Denúncias realizadas
|
||||
targeted_reports: Denunciada por outros
|
||||
|
@ -151,101 +157,116 @@ pt-PT:
|
|||
suspension_reversible_hint_html: A conta foi suspensa e os dados serão totalmente eliminados em %{date}. Até lá, a conta poderá ser recuperada sem quaisquer efeitos negativos. Se deseja eliminar todos os dados desta conta imediatamente, pode fazê-lo em baixo.
|
||||
title: Contas
|
||||
unblock_email: Desbloquear endereço de e-mail
|
||||
unblocked_email_msg: Endereço de e-mail de %{username} desbloqueado
|
||||
unblocked_email_msg: Endereço de e-mail de %{username} desbloqueado com sucesso
|
||||
unconfirmed_email: E-mail por confirmar
|
||||
undo_sensitized: Desmarcar como problemático
|
||||
undo_silenced: Desfazer silenciar
|
||||
undo_suspension: Desfazer supensão
|
||||
unsilenced_msg: Removeu as limitações da conta %{username}
|
||||
unsilenced_msg: Limitações da conta %{username} removidas com sucesso
|
||||
unsubscribe: Cancelar inscrição
|
||||
unsuspended_msg: Removeu a suspensão da conta %{username}
|
||||
username: Nome de utilizador
|
||||
view_domain: Ver resumo do domínio
|
||||
warn: Advertir
|
||||
web: Teia
|
||||
web: Web
|
||||
whitelisted: Permitido para a federação
|
||||
action_logs:
|
||||
action_types:
|
||||
approve_appeal: Aprovar recurso
|
||||
approve_user: Aprovar utilizador
|
||||
assigned_to_self_report: Atribuir Denúncia
|
||||
change_role_user: Alterar Função do Utilizador
|
||||
confirm_user: Confirmar Utilizador
|
||||
create_account_warning: Criar Aviso
|
||||
assigned_to_self_report: Atribuir denúncia
|
||||
change_email_user: Alterar e-mail do utilizador
|
||||
change_role_user: Alterar função do utilizador
|
||||
confirm_user: Confirmar utilizador
|
||||
create_account_warning: Criar aviso
|
||||
create_announcement: Criar comunicado
|
||||
create_custom_emoji: Criar Emoji Personalizado
|
||||
create_domain_allow: Criar Permissão de Domínio
|
||||
create_domain_block: Criar Bloqueio de Domínio
|
||||
create_canonical_email_block: Criar bloqueio de e-mail
|
||||
create_custom_emoji: Criar emoji personalizado
|
||||
create_domain_allow: Criar permissão de domínio
|
||||
create_domain_block: Criar bloqueio de domínio
|
||||
create_email_domain_block: Criar bloqueio de domínio de e-mail
|
||||
create_ip_block: Criar regra de IP
|
||||
create_unavailable_domain: Criar Domínio Indisponível
|
||||
create_user_role: Criar Função
|
||||
demote_user: Despromover Utilizador
|
||||
destroy_announcement: Apagar comunicado
|
||||
destroy_custom_emoji: Eliminar Emoji Personalizado
|
||||
destroy_domain_allow: Eliminar Permissão de Domínio
|
||||
destroy_domain_block: Eliminar Bloqueio de Domínio
|
||||
destroy_instance: Purgar Domínio
|
||||
create_unavailable_domain: Criar domínio indisponível
|
||||
create_user_role: Criar função
|
||||
demote_user: Despromover utilizador
|
||||
destroy_announcement: Eliminar comunicado
|
||||
destroy_canonical_email_block: Eliminar bloqueio de e-mail
|
||||
destroy_custom_emoji: Eliminar emoji personalizado
|
||||
destroy_domain_allow: Eliminar permissão de domínio
|
||||
destroy_domain_block: Eliminar bloqueio de domínio
|
||||
destroy_email_domain_block: Eliminar bloqueio de domínio de e-mail
|
||||
destroy_instance: Purgar domínio
|
||||
destroy_ip_block: Eliminar regra de IP
|
||||
destroy_status: Eliminar Publicação
|
||||
destroy_unavailable_domain: Eliminar Domínio Indisponível
|
||||
destroy_user_role: Eliminar Função
|
||||
destroy_status: Eliminar publicação
|
||||
destroy_unavailable_domain: Eliminar domínio indisponível
|
||||
destroy_user_role: Eliminar função
|
||||
disable_2fa_user: Desativar 2FA
|
||||
disable_custom_emoji: Desativar Emoji Personalizado
|
||||
disable_user: Desativar Utilizador
|
||||
enable_custom_emoji: Ativar Emoji Personalizado
|
||||
enable_user: Ativar Utilizador
|
||||
memorialize_account: Tornar conta num memorial
|
||||
promote_user: Promover Utilizador
|
||||
reject_appeal: Rejeitar Recurso
|
||||
reject_user: Rejeitar Utilizador
|
||||
remove_avatar_user: Remover Imagem de Perfil
|
||||
reopen_report: Reabrir Denúncia
|
||||
resend_user: Reenviar E-mail de Confirmação
|
||||
reset_password_user: Repor Password
|
||||
resolve_report: Resolver Denúncia
|
||||
disable_custom_emoji: Desativar emoji personalizado
|
||||
disable_sign_in_token_auth_user: Desativar token de autenticação por e-mail para o utilizador
|
||||
disable_user: Desativar utilizador
|
||||
enable_custom_emoji: Ativar emoji personalizado
|
||||
enable_sign_in_token_auth_user: Ativar token de autenticação por e-mail para o utilizador
|
||||
enable_user: Ativar utilizador
|
||||
memorialize_account: Transformar conta num memorial
|
||||
promote_user: Promover utilizador
|
||||
reject_appeal: Rejeitar recurso
|
||||
reject_user: Rejeitar utilizador
|
||||
remove_avatar_user: Remover imagem de perfil
|
||||
reopen_report: Reabrir denúncia
|
||||
resend_user: Reenviar e-mail de confirmação
|
||||
reset_password_user: Repor palavra-passe
|
||||
resolve_report: Resolver denúncia
|
||||
sensitive_account: Marcar a media na sua conta como problemática
|
||||
silence_account: Limitar conta
|
||||
suspend_account: Suspender conta
|
||||
unassigned_report: Desatribuir Denúncia
|
||||
unassigned_report: Anular atribuição desta denúncia
|
||||
unblock_email_account: Desbloquear endereço de e-mail
|
||||
unsensitive_account: Desmarcar a conta como problemática
|
||||
unsilence_account: Deixar de Silenciar Conta
|
||||
unsuspend_account: Retirar Suspensão à Conta
|
||||
unsilence_account: Deixar de silenciar conta
|
||||
unsuspend_account: Retirar suspensão da conta
|
||||
update_announcement: Atualizar comunicado
|
||||
update_custom_emoji: Atualizar Emoji Personalizado
|
||||
update_domain_block: Atualizar Bloqueio de Domínio
|
||||
update_custom_emoji: Atualizar emoji personalizado
|
||||
update_domain_block: Atualizar bloqueio de domínio
|
||||
update_ip_block: Atualizar regra de IP
|
||||
update_report: Atualizar Relatório
|
||||
update_status: Atualizar Estado
|
||||
update_user_role: Atualizar Função
|
||||
update_report: Atualizar denúncia
|
||||
update_status: Atualizar publicação
|
||||
update_user_role: Atualizar função
|
||||
actions:
|
||||
approve_appeal_html: "%{name} aprovou recurso da decisão de moderação de %{target}"
|
||||
approve_user_html: "%{name} aprovou a inscrição de %{target}"
|
||||
assigned_to_self_report_html: "%{name} atribuiu a denúncia %{target} a si próprio"
|
||||
change_email_user_html: "%{name} alterou o endereço de e-mail do utilizador %{target}"
|
||||
change_role_user_html: "%{name} alterou a função de %{target}"
|
||||
confirm_user_html: "%{name} confirmou o endereço de e-mail do utilizador %{target}"
|
||||
create_account_warning_html: "%{name} enviou um aviso para %{target}"
|
||||
create_announcement_html: "%{name} criou o novo anúncio %{target}"
|
||||
create_custom_emoji_html: "%{name} carregou o novo emoji %{target}"
|
||||
create_canonical_email_block_html: "%{name} bloqueou o e-mail com a hash %{target}"
|
||||
create_custom_emoji_html: "%{name} enviou o novo emoji %{target}"
|
||||
create_domain_allow_html: "%{name} permitiu a federação com o domínio %{target}"
|
||||
create_domain_block_html: "%{name} bloqueou o domínio %{target}"
|
||||
create_ip_block_html: "%{name} criou regra para o IP %{target}"
|
||||
create_unavailable_domain_html: "%{name} parou a entrega ao domínio %{target}"
|
||||
create_email_domain_block_html: "%{name} bloqueou o domínio de e-mail %{target}"
|
||||
create_ip_block_html: "%{name} criou uma regra para o IP %{target}"
|
||||
create_unavailable_domain_html: "%{name} parou as entregas ao domínio %{target}"
|
||||
create_user_role_html: "%{name} criou a função %{target}"
|
||||
demote_user_html: "%{name} despromoveu o utilizador %{target}"
|
||||
destroy_announcement_html: "%{name} eliminou o anúncio %{target}"
|
||||
destroy_canonical_email_block_html: "%{name} desbloqueou o e-mail com a hash %{target}"
|
||||
destroy_custom_emoji_html: "%{name} eliminou o emoji %{target}"
|
||||
destroy_domain_allow_html: "%{name} desabilitou a federação com o domínio %{target}"
|
||||
destroy_domain_allow_html: "%{name} bloqueou a federação com o domínio %{target}"
|
||||
destroy_domain_block_html: "%{name} desbloqueou o domínio %{target}"
|
||||
destroy_email_domain_block_html: "%{name} desbloqueou o domínio de e-mail %{target}"
|
||||
destroy_instance_html: "%{name} purgou o domínio %{target}"
|
||||
destroy_ip_block_html: "%{name} eliminou regra para o IP %{target}"
|
||||
destroy_ip_block_html: "%{name} eliminou a regra para o IP %{target}"
|
||||
destroy_status_html: "%{name} removeu a publicação de %{target}"
|
||||
destroy_unavailable_domain_html: "%{name} retomou a entrega ao domínio %{target}"
|
||||
destroy_unavailable_domain_html: "%{name} retomou as entregas ao domínio %{target}"
|
||||
destroy_user_role_html: "%{name} eliminou a função %{target}"
|
||||
disable_2fa_user_html: "%{name} desativou o requerimento de autenticação em dois passos para o utilizador %{target}"
|
||||
disable_custom_emoji_html: "%{name} desabilitou o emoji %{target}"
|
||||
disable_user_html: "%{name} desativou o acesso para o utilizador %{target}"
|
||||
disable_custom_emoji_html: "%{name} desativou o emoji %{target}"
|
||||
disable_sign_in_token_auth_user_html: "%{name} desativou o token de autenticação por e-mail para %{target}"
|
||||
disable_user_html: "%{name} desativou o início de sessão para o utilizador %{target}"
|
||||
enable_custom_emoji_html: "%{name} ativou o emoji %{target}"
|
||||
enable_user_html: "%{name} ativou o acesso para o utilizador %{target}"
|
||||
enable_sign_in_token_auth_user_html: "%{name} ativou o token de autenticação por e-mail para %{target}"
|
||||
enable_user_html: "%{name} ativou o início de sessão para o utilizador %{target}"
|
||||
memorialize_account_html: "%{name} transformou a conta de %{target} em um memorial"
|
||||
promote_user_html: "%{name} promoveu o utilizador %{target}"
|
||||
reject_appeal_html: "%{name} rejeitou recurso da decisão de moderação de %{target}"
|
||||
|
@ -352,7 +373,7 @@ pt-PT:
|
|||
title: Painel de controlo
|
||||
top_languages: Principais idiomas ativos
|
||||
top_servers: Servidores mais ativos
|
||||
website: Página na teia
|
||||
website: Website
|
||||
disputes:
|
||||
appeals:
|
||||
empty: Nenhum recurso encontrado.
|
||||
|
@ -669,39 +690,39 @@ pt-PT:
|
|||
privileges:
|
||||
administrator: Administrador
|
||||
administrator_description: Utilizadores com esta permissão irão contornar todas as permissões
|
||||
delete_user_data: Eliminar Dados de Utilizador
|
||||
delete_user_data: Eliminar dados de utilizador
|
||||
delete_user_data_description: Permite que os utilizadores eliminem os dados doutros utilizadores sem tempo de espera
|
||||
invite_users: Convidar Utilizadores
|
||||
invite_users: Convidar utilizadores
|
||||
invite_users_description: Permite aos utilizadores convidar pessoas novas para o servidor
|
||||
manage_announcements: Gerir comunicados
|
||||
manage_announcements_description: Permite aos utilizadores gerirem os comunicados no servidor
|
||||
manage_appeals: Gerir apelos
|
||||
manage_appeals_description: Permite aos utilizadores rever recursos de moderação
|
||||
manage_blocks: Gerir Bloqueios
|
||||
manage_custom_emojis: Gerir Emojis Personalizados
|
||||
manage_blocks: Gerir bloqueios
|
||||
manage_custom_emojis: Gerir emojis personalizados
|
||||
manage_custom_emojis_description: Permite aos utilizadores gerirem os emojis personalizados do servidor
|
||||
manage_federation: Gerir Federação
|
||||
manage_federation: Gerir federação
|
||||
manage_federation_description: Permite aos utilizadores bloquear ou permitir federação com outros domínios e controlar a entregabilidade
|
||||
manage_invites: Gerir Convites
|
||||
manage_invites: Gerir convites
|
||||
manage_invites_description: Permite aos utilizadores pesquisarem e desativarem ligações de convite
|
||||
manage_reports: Gerir Relatórios
|
||||
manage_reports_description: Permite aos utilizadores rever relatórios e executar ações de moderação contra eles
|
||||
manage_roles: Gerir Funções
|
||||
manage_reports: Gerir denúncias
|
||||
manage_reports_description: Permite aos utilizadores rever denúncias e executar ações de moderação contra eles
|
||||
manage_roles: Gerir funções
|
||||
manage_roles_description: Permite aos utilizadores a gestão e atribuição de funções abaixo dos seus
|
||||
manage_rules: Gerir Regras
|
||||
manage_rules: Gerir regras
|
||||
manage_rules_description: Permite aos utilizadores alterar as regras do servidor
|
||||
manage_settings: Gerir Configurações
|
||||
manage_settings_description: Permite aos utilizadores alterar as configurações do sítio na teia
|
||||
manage_taxonomies: Gerir Taxonomias
|
||||
manage_settings: Gerir configurações
|
||||
manage_settings_description: Permite aos utilizadores alterar as configurações do site
|
||||
manage_taxonomies: Gerir taxonomias
|
||||
manage_taxonomies_description: Permite aos utilizadores rever o conteúdo em tendência e atualizar as configurações de hashtag
|
||||
manage_user_access: Gerir Acesso de Utilizador
|
||||
manage_users: Gerir Utilizadores
|
||||
manage_user_access: Gerir acesso de utilizador
|
||||
manage_users: Gerir utilizadores
|
||||
manage_users_description: Permite aos utilizadores ver os detalhes de outros utilizadores e executar ações de moderação contra eles
|
||||
manage_webhooks: Gerir Webhooks
|
||||
manage_webhooks: Gerir webhooks
|
||||
manage_webhooks_description: Permite aos utilizadores configurar webhooks para eventos administrativos
|
||||
view_audit_log: Ver Registo de Auditoria
|
||||
view_audit_log: Ver registo de auditoria
|
||||
view_audit_log_description: Permite aos utilizadores ver um histórico de ações administrativas no servidor
|
||||
view_dashboard: Ver Painel de Controlo
|
||||
view_dashboard: Ver painel de controlo
|
||||
view_dashboard_description: Permite aos utilizadores acederem ao painel de controlo e a várias estatísticas
|
||||
view_devops: DevOps
|
||||
view_devops_description: Permite aos utilizadores aceder aos painéis de controlo do Sidekiq e pgHero
|
||||
|
@ -723,14 +744,14 @@ pt-PT:
|
|||
preamble: Personalize a interface web do Mastodon.
|
||||
title: Aspeto
|
||||
branding:
|
||||
preamble: A marca do seu servidor diferencia-a doutros servidores na rede. Essa informação pode ser exibida em vários contexos, como a interface na teia do Mastodon, aplicações nativas, visualizações de hiperligações noutros sites, em aplicações de mensagens, etc. Por esta razão, é melhor manter esta informação clara, curta e concisa.
|
||||
preamble: A marca do seu servidor diferencia-a de outros servidores na rede. Essa informação pode ser mostrada em vários ambientes, como a interface web do Mastodon, aplicações nativas, visualizações de hiperligações em outros sites e dentro de aplicações de mensagens, etc. Por esta razão, é melhor manter esta informação clara, curta e concisa.
|
||||
title: Marca
|
||||
captcha_enabled:
|
||||
desc_html: Isto depende de scripts externos da hCaptcha, o que pode ser uma preocupação de segurança e privacidade. Além disso, <strong>isto pode tornar o processo de registo menos acessível para algumas pessoas (especialmente as com limitações físicas)</strong>. Por isso, considere medidas alternativas tais como registo mediante aprovação ou sob convite.
|
||||
title: Requerer que novos utilizadores resolvam um CAPTCHA para confirmar a sua conta
|
||||
content_retention:
|
||||
danger_zone: Zona de perigo
|
||||
preamble: Controle como o conteúdo gerado pelos utilizadores é armazenado no Mastodon.
|
||||
preamble: Controle a forma como o conteúdo gerado pelo utilizador é armazenado no Mastodon.
|
||||
title: Retenção de conteúdo
|
||||
default_noindex:
|
||||
desc_html: Afeta todos os utilizadores que não alteraram esta configuração
|
||||
|
@ -1198,7 +1219,7 @@ pt-PT:
|
|||
content: Desculpe, mas algo correu mal da nossa parte.
|
||||
title: Esta página não está correta
|
||||
'503': A página não pôde ser apresentada devido a uma falha temporária do servidor.
|
||||
noscript_html: Para usar a aplicação da teia do Mastodon, por favor active o JavaScript. Em alternativa, experimenta uma das <a href="%{apps_path}">aplicações nativas</a> do Mastodon para a sua plataforma.
|
||||
noscript_html: Para usar a aplicação web do Mastodon, ative o JavaScript. Alternativamente, experimente uma das <a href="%{apps_path}">aplicações nativas</a> para o Mastodon na sua plataforma.
|
||||
existing_username_validator:
|
||||
not_found: não foi possível encontrar um utilizador local com esse nome
|
||||
not_found_multiple: não foi possível encontrar %{usernames}
|
||||
|
@ -1236,7 +1257,7 @@ pt-PT:
|
|||
statuses_hint_html: Este filtro aplica-se a publicações individuais selecionadas independentemente de estas corresponderem às palavras-chave abaixo. <a href="%{path}">Reveja ou remova publicações do filtro</a>.
|
||||
title: Editar filtros
|
||||
errors:
|
||||
deprecated_api_multiple_keywords: Estes parâmetros não podem ser alterados a partir desta aplicação porque se aplicam a mais que um filtro de palavra-chave. Use uma aplicação mais recente ou a interface na teia.
|
||||
deprecated_api_multiple_keywords: Estes parâmetros não podem ser alterados a partir desta aplicação porque se aplicam a mais de um filtro de palavra-chave. Use uma aplicação mais recente ou a interface web.
|
||||
invalid_context: Inválido ou nenhum contexto fornecido
|
||||
index:
|
||||
contexts: Filtros em %{contexts}
|
||||
|
@ -1664,7 +1685,7 @@ pt-PT:
|
|||
edited_at_html: Editado em %{date}
|
||||
errors:
|
||||
in_reply_not_found: A publicação a que está a tentar responder parece não existir.
|
||||
open_in_web: Abrir na Teia
|
||||
open_in_web: Abrir na web
|
||||
over_character_limit: limite de caracter excedeu %{max}
|
||||
pin_errors:
|
||||
direct: Publicações visíveis apenas para utilizadores mencionados não podem ser afixadas
|
||||
|
@ -1826,7 +1847,7 @@ pt-PT:
|
|||
welcome:
|
||||
apps_android_action: Baixe no Google Play
|
||||
apps_ios_action: Baixar na App Store
|
||||
apps_step: Baixe nossos aplicativos oficiais.
|
||||
apps_step: Descarregue as nossas aplicações oficiais.
|
||||
apps_title: Apps Mastodon
|
||||
checklist_subtitle: 'Vamos começar nesta nova fronteira social:'
|
||||
checklist_title: Checklist de Boas-vindas
|
||||
|
@ -1835,11 +1856,11 @@ pt-PT:
|
|||
edit_profile_title: Personalize seu perfil
|
||||
explanation: Aqui estão algumas dicas para começar
|
||||
feature_action: Mais informações
|
||||
feature_audience: Mastodon oferece uma possibilidade única de gerenciar seu público sem intermediários. O Mastodon implantado em sua própria infraestrutura permite que você siga e seja seguido de qualquer outro servidor Mastodon online e não esteja sob o controle de ninguém além do seu.
|
||||
feature_audience: O Mastodon oferece-lhe uma possibilidade única de gerir a sua audiência sem intermediários. O Mastodon implantado na sua própria infraestrutura permite-lhe seguir e ser seguido a partir de qualquer outro servidor Mastodon online e não está sob o controlo de ninguém a não ser o seu.
|
||||
feature_audience_title: Construa seu público em confiança
|
||||
feature_control: Você sabe melhor o que deseja ver no feed da sua casa. Sem algoritmos ou anúncios para desperdiçar seu tempo. Siga qualquer pessoa em qualquer servidor Mastodon a partir de uma única conta e receba suas postagens em ordem cronológica, deixando seu canto da internet um pouco mais parecido com você.
|
||||
feature_control_title: Fique no controle da sua própria linha do tempo
|
||||
feature_creativity: Mastodon suporta postagens de áudio, vídeo e imagens, descrições de acessibilidade, enquetes, avisos de conteúdo, avatares animados, emojis personalizados, controle de corte de miniaturas e muito mais, para ajudá-lo a se expressar online. Esteja você publicando sua arte, sua música ou seu podcast, o Mastodon está lá para você.
|
||||
feature_control: Você sabe melhor o que quer ver no seu feed. Não há algoritmos ou anúncios que o façam perder tempo. Siga qualquer pessoa em qualquer servidor Mastodon a partir de uma única conta e receba as suas mensagens por ordem cronológica e torne o seu canto da Internet um pouco mais parecido consigo.
|
||||
feature_control_title: Mantenha o controlo da sua própria cronologia
|
||||
feature_creativity: O Mastodon suporta publicações de áudio, vídeo e imagens, descrições de acessibilidade, sondagens, avisos de conteúdo, avatares animados, emojis personalizados, controlo de corte de miniaturas e muito mais, para o ajudar a expressar-se online. Quer esteja a publicar a sua arte, a sua música ou o seu podcast, o Mastodon está lá para si.
|
||||
feature_creativity_title: Criatividade inigualável
|
||||
feature_moderation: Mastodon coloca a tomada de decisões de volta em suas mãos. Cada servidor cria as suas próprias regras e regulamentos, que são aplicados localmente e não de cima para baixo como as redes sociais corporativas, tornando-o mais flexível na resposta às necessidades de diferentes grupos de pessoas. Junte-se a um servidor com as regras com as quais você concorda ou hospede as suas próprias.
|
||||
feature_moderation_title: Moderando como deve ser
|
||||
|
@ -1856,7 +1877,7 @@ pt-PT:
|
|||
hashtags_title: Etiquetas em tendência
|
||||
hashtags_view_more: Ver mais etiquetas em tendência
|
||||
post_action: Compor
|
||||
post_step: Diga olá para o mundo com texto, fotos, vídeos ou enquetes.
|
||||
post_step: Diga olá para o mundo com texto, fotos, vídeos ou sondagens.
|
||||
post_title: Faça a sua primeira publicação
|
||||
share_action: Compartilhar
|
||||
share_step: Diga aos seus amigos como te encontrar no Mastodon.
|
||||
|
|
|
@ -130,6 +130,7 @@ he:
|
|||
name: ניתן רק להחליף בין אותיות קטנות וגדולות, למשל כדי לשפר את הקריאות
|
||||
user:
|
||||
chosen_languages: אם פעיל, רק הודעות בשפות הנבחרות יוצגו לפידים הפומביים
|
||||
role: התפקיד שולט על אילו הרשאות יש למשתמש.
|
||||
user_role:
|
||||
color: צבע לתפקיד בממשק המשתמש, כ RGB בפורמט הקסדצימלי
|
||||
highlighted: מאפשר נראות ציבורית של התפקיד
|
||||
|
|
|
@ -101,6 +101,7 @@ lt:
|
|||
show_application: Neatsižvelgiant į tai, visada galėsi matyti, kuri programėlė paskelbė tavo įrašą.
|
||||
user:
|
||||
chosen_languages: Kai pažymėta, viešose laiko skalėse bus rodomi tik įrašai pasirinktomis kalbomis.
|
||||
role: Vaidmuo valdo, kokius leidimus naudotojas turi.
|
||||
labels:
|
||||
account:
|
||||
discoverable: Rekomenduoti profilį ir įrašus į atradimo algoritmus
|
||||
|
|
|
@ -130,6 +130,7 @@ pl:
|
|||
name: Możesz zmieniać tylko wielkość liter, np. aby były bardziej widoczne
|
||||
user:
|
||||
chosen_languages: Jeżeli zaznaczone, tylko wpisy w wybranych językach będą wyświetlane na publicznych osiach czasu
|
||||
role: Rola kontroluje uprawnienia użytkownika.
|
||||
user_role:
|
||||
color: Kolor używany dla roli w całym interfejsie użytkownika, wyrażony jako RGB w formacie szesnastkowym
|
||||
highlighted: To sprawia, że rola jest widoczna publicznie
|
||||
|
|
|
@ -77,7 +77,7 @@ pt-PT:
|
|||
warn: Ocultar o conteúdo filtrado por trás de um aviso mencionando o título do filtro
|
||||
form_admin_settings:
|
||||
activity_api_enabled: Contagem, em blocos semanais, de publicações locais, utilizadores ativos e novos registos
|
||||
app_icon: WEBP, PNG, GIF ou JPG. Substitui o ícone padrão do aplicativo em dispositivos móveis por um ícone personalizado.
|
||||
app_icon: WEBP, PNG, GIF ou JPG. Substitui o ícone padrão da aplicação em dispositivos móveis por um ícone personalizado.
|
||||
backups_retention_period: Os utilizadores têm a possibilidade de gerar arquivos das suas mensagens para descarregar mais tarde. Quando definido para um valor positivo, estes arquivos serão automaticamente eliminados do seu armazenamento após o número de dias especificado.
|
||||
bootstrap_timeline_accounts: Estas contas serão destacadas no topo das recomendações aos novos utilizadores.
|
||||
closed_registrations_message: Apresentado quando as inscrições estiverem encerradas
|
||||
|
@ -130,12 +130,13 @@ pt-PT:
|
|||
name: Só pode alterar a capitalização das letras, por exemplo, para torná-las mais legíveis
|
||||
user:
|
||||
chosen_languages: Quando selecionado, só serão mostradas nas cronologias públicas as publicações nos idiomas escolhidos
|
||||
role: A função controla as permissões que o utilizador tem.
|
||||
user_role:
|
||||
color: Cor a ser utilizada para a função em toda a interface de utilizador, como RGB no formato hexadecimal
|
||||
highlighted: Isto torna a função visível publicamente
|
||||
name: Nome público do cargo, se este estiver definido para ser apresentada com um emblema
|
||||
name: Nome público da função, se esta estiver definida para ser apresentada com um emblema
|
||||
permissions_as_keys: Utilizadores com esta função terão acesso a...
|
||||
position: Cargos mais altos decidem a resolução de conflitos em certas situações. Certas ações só podem ser executadas em cargos com uma menor prioridade
|
||||
position: Funções mais altas decidem a resolução de conflitos em certas situações. Certas ações só podem ser executadas com certas funções com uma menor prioridade
|
||||
webhook:
|
||||
events: Selecione os eventos a enviar
|
||||
template: Componha o seu próprio conteúdo JSON utilizando a interpolação de variáveis. Deixar em branco para o JSON predefinido.
|
||||
|
@ -315,7 +316,7 @@ pt-PT:
|
|||
trendable: Permitir que esta etiqueta apareça nas tendências
|
||||
usable: Permitir que as publicações usem esta hashtag localmente
|
||||
user:
|
||||
role: Cargo
|
||||
role: Função
|
||||
time_zone: Fuso horário
|
||||
user_role:
|
||||
color: Cor do emblema
|
||||
|
|
|
@ -130,6 +130,7 @@ tr:
|
|||
name: Harflerin, örneğin daha okunabilir yapmak için, sadece büyük/küçük harf durumlarını değiştirebilirsiniz
|
||||
user:
|
||||
chosen_languages: İşaretlendiğinde, yalnızca seçilen dillerdeki gönderiler genel zaman çizelgelerinde görüntülenir
|
||||
role: Rol, kullanıcıların sahip olduğu izinleri denetler.
|
||||
user_role:
|
||||
color: Arayüz boyunca rol için kullanılacak olan renk, hex biçiminde RGB
|
||||
highlighted: Bu rolü herkese açık hale getirir
|
||||
|
|
|
@ -25,7 +25,6 @@ sq:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Kryeje veprimin
|
||||
already_silenced: Kjo llogari është heshtuar tashmë.
|
||||
already_suspended: Kjo llogari është pezulluar tashmë.
|
||||
title: Kryeni veprim moderimi te %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,6 +25,7 @@ sv:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Utför åtgärd
|
||||
already_silenced: Detta konto är redan begränsat.
|
||||
title: Utför aktivitet för moderering på %{acct}
|
||||
account_moderation_notes:
|
||||
create: Lämna kommentar
|
||||
|
|
|
@ -23,7 +23,6 @@ th:
|
|||
admin:
|
||||
account_actions:
|
||||
action: ทำการกระทำ
|
||||
already_silenced: มีการทำให้บัญชีนี้เงียบไปแล้ว
|
||||
already_suspended: มีการระงับบัญชีนี้ไปแล้ว
|
||||
title: ทำการกระทำการกลั่นกรองต่อ %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -25,6 +25,8 @@ tr:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Eylemi gerçekleştir
|
||||
already_silenced: Bu hesap zaten askıya alınmış.
|
||||
already_suspended: Bu hesap zaten askıya alınmış.
|
||||
title: "%{acct} üzerinde denetleme eylemi gerçekleştir"
|
||||
account_moderation_notes:
|
||||
create: Not bırak
|
||||
|
@ -46,6 +48,7 @@ tr:
|
|||
title: "%{username} için e-postayı değiştir"
|
||||
change_role:
|
||||
changed_msg: Rol başarıyla değiştirildi!
|
||||
edit_roles: Kullanıcı rollerini yönetin
|
||||
label: Rolü değiştir
|
||||
no_role: Rol yok
|
||||
title: "%{username} için rolü değiştir"
|
||||
|
@ -602,6 +605,7 @@ tr:
|
|||
suspend_description_html: Bu hesap ve tüm içeriği erişilmez olacak ve nihayetinde silinecek ve bu hesapla etkileşim mümkün olmayacaktır. 30 gün içinde geri alınabilir. Bu hesaba yönelik tüm bildiriimleri kapatır.
|
||||
actions_description_html: Bu bildirimi çözmek için ne yapılması gerektiğine karar verin. Bildirilen hesap için ceza işlemi yaparsanız, <strong>İstenmeyen</strong> kategorisi seçilmemişse, onlara bir e-posta duyurusu gönderilecektir.
|
||||
actions_description_remote_html: Bu bildirimi çözmek için hangi eylemi yapmak istediğinize karar verin. Bu yalnızca <strong>sizin</strong> sunucunuzun bu uzak hesapla nasıl etkileşeğini ve içeriğiyle ne yapacağını etkiler.
|
||||
actions_no_posts: Bu raporun ilişkili olduğu silinecek gönderi yok
|
||||
add_to_report: Bildirime daha fazlasını ekle
|
||||
already_suspended_badges:
|
||||
local: Bu sunucuda zaten askıya alınmış
|
||||
|
|
|
@ -628,6 +628,7 @@ uk:
|
|||
suspend_description_html: Обліковий запис і весь його вміст будуть недоступними й врешті-решт видалені, і взаємодіяти з ним буде неможливо. Відновлення можливе протягом 30 днів. Закриває всі скарги на цей обліковий запис.
|
||||
actions_description_html: Визначте, які дії слід вжити для розв'язання цієї скарги. Якщо ви оберете каральні дії проти зареєстрованого облікового запису, про них буде надіслано сповіщення електронним листом, крім випадків, коли вибрано категорію <strong>Спам</strong>.
|
||||
actions_description_remote_html: Визначте, які дії слід вжити для розв'язання цього звіту. Це вплине тільки на те, як <strong>ваш</strong> сервер з'єднується з цим віддаленим обліковим записом і обробляє його вміст.
|
||||
actions_no_posts: Ця скарга не має жодних пов'язаних дописів для видалення
|
||||
add_to_report: Додати ще подробиць до скарги
|
||||
already_suspended_badges:
|
||||
local: Вже призупинено на цьому сервері
|
||||
|
|
|
@ -23,7 +23,6 @@ vi:
|
|||
admin:
|
||||
account_actions:
|
||||
action: Thực hiện hành động
|
||||
already_silenced: Tài khoản này đã bị hạn chế.
|
||||
already_suspended: Tài khoản này đã bị vô hiệu hóa.
|
||||
title: Áp đặt kiểm duyệt với %{acct}
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -23,7 +23,7 @@ zh-CN:
|
|||
admin:
|
||||
account_actions:
|
||||
action: 执行操作
|
||||
already_silenced: 此帐户已受限。
|
||||
already_silenced: 此账户已受限。
|
||||
already_suspended: 此帐户已被封禁。
|
||||
title: 在 %{acct} 上执行管理操作
|
||||
account_moderation_notes:
|
||||
|
|
|
@ -23,7 +23,7 @@ zh-TW:
|
|||
admin:
|
||||
account_actions:
|
||||
action: 執行動作
|
||||
already_silenced: 此帳號已被靜音。
|
||||
already_silenced: 此帳號已被限制。
|
||||
already_suspended: 此帳號已被停權。
|
||||
title: 對 %{acct} 執行站務動作
|
||||
account_moderation_notes:
|
||||
|
@ -1269,7 +1269,7 @@ zh-TW:
|
|||
home: 首頁時間軸
|
||||
notifications: 通知
|
||||
public: 公開時間軸
|
||||
thread: 對話
|
||||
thread: 討論串
|
||||
edit:
|
||||
add_keyword: 新增關鍵字
|
||||
keywords: 關鍵字
|
||||
|
|
|
@ -8,4 +8,134 @@ RSpec.describe FeaturedTag do
|
|||
it { is_expected.to normalize(:name).from(' #hashtag ').to('hashtag') }
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Validations' do
|
||||
context 'when account already has a featured tag' do
|
||||
subject { Fabricate.build :featured_tag, account: account }
|
||||
|
||||
before { Fabricate :featured_tag, account: account, name: 'Test' }
|
||||
|
||||
let(:account) { Fabricate :account }
|
||||
|
||||
it { is_expected.to_not allow_value('Test').for(:name) }
|
||||
|
||||
context 'when account has hit limit' do
|
||||
before { stub_const 'FeaturedTag::LIMIT', 1 }
|
||||
|
||||
context 'with a local account' do
|
||||
let(:account) { Fabricate :account, domain: nil }
|
||||
|
||||
it { is_expected.to_not allow_value(account).for(:account).against(:base).with_message(I18n.t('featured_tags.errors.limit')) }
|
||||
end
|
||||
|
||||
context 'with a remote account' do
|
||||
let(:account) { Fabricate :account, domain: 'host.example' }
|
||||
|
||||
it { is_expected.to allow_value(account).for(:account) }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Callback to set the tag' do
|
||||
context 'with no matching tag' do
|
||||
it 'creates a new tag' do
|
||||
expect { Fabricate :featured_tag, name: 'tag' }
|
||||
.to change(Tag, :count).by(1)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a matching tag' do
|
||||
it 'creates a new tag' do
|
||||
tag = Fabricate :tag, name: 'tag'
|
||||
|
||||
expect { Fabricate :featured_tag, name: 'tag' }
|
||||
.to_not change(Tag, :count)
|
||||
|
||||
expect(described_class.last.tag)
|
||||
.to eq(tag)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Callback to set the stats' do
|
||||
context 'when no statuses are relevant' do
|
||||
it 'sets values to nil' do
|
||||
featured_tag = Fabricate :featured_tag
|
||||
|
||||
expect(featured_tag)
|
||||
.to have_attributes(
|
||||
statuses_count: 0,
|
||||
last_status_at: be_nil
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when some statuses are relevant' do
|
||||
it 'sets values to nil' do
|
||||
tag = Fabricate :tag, name: 'test'
|
||||
status = Fabricate :status, visibility: :public, created_at: 10.days.ago
|
||||
status.tags << tag
|
||||
|
||||
featured_tag = Fabricate :featured_tag, name: 'test', account: status.account
|
||||
|
||||
expect(featured_tag)
|
||||
.to have_attributes(
|
||||
statuses_count: 1,
|
||||
last_status_at: be_within(0.1).of(status.created_at)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#sign?' do
|
||||
it { is_expected.to be_sign }
|
||||
end
|
||||
|
||||
describe '#display_name' do
|
||||
subject { Fabricate.build :featured_tag, name: name, tag: tag }
|
||||
|
||||
context 'with a name value present' do
|
||||
let(:name) { 'Test' }
|
||||
let(:tag) { nil }
|
||||
|
||||
it 'uses name value' do
|
||||
expect(subject.display_name).to eq('Test')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a missing name value but a present tag' do
|
||||
let(:name) { nil }
|
||||
let(:tag) { Fabricate.build :tag, name: 'Tester' }
|
||||
|
||||
it 'uses name value' do
|
||||
expect(subject.display_name).to eq('Tester')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#increment' do
|
||||
it 'increases the count and updates the last_status_at timestamp' do
|
||||
featured_tag = Fabricate :featured_tag
|
||||
timestamp = 5.days.ago
|
||||
|
||||
expect { featured_tag.increment(timestamp) }
|
||||
.to change(featured_tag, :statuses_count).from(0).to(1)
|
||||
.and change(featured_tag, :last_status_at).from(nil).to(be_within(0.1).of(timestamp))
|
||||
end
|
||||
end
|
||||
|
||||
describe '#decrement' do
|
||||
it 'decreases the count and updates the last_status_at timestamp' do
|
||||
tag = Fabricate :tag, name: 'test'
|
||||
status = Fabricate :status, visibility: :public, created_at: 10.days.ago
|
||||
status.tags << tag
|
||||
|
||||
featured_tag = Fabricate :featured_tag, name: 'test', account: status.account
|
||||
|
||||
expect { featured_tag.decrement(status.id) }
|
||||
.to change(featured_tag, :statuses_count).from(1).to(0)
|
||||
.and change(featured_tag, :last_status_at).to(nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue