mirror of
https://git.kescher.at/CatCatNya/catstodon.git
synced 2024-11-25 16:41:36 +01:00
Merge commit '85fdbd0ad53837c9209acf3fb45811d5bae41cd9' into glitch-soc/merge-upstream
This commit is contained in:
commit
bac4026d80
61 changed files with 380 additions and 205 deletions
|
@ -182,6 +182,11 @@ Style/FormatStringToken:
|
|||
AllowedMethods:
|
||||
- redirect_with_vary
|
||||
|
||||
# Reason: Prevailing style choice
|
||||
# https://docs.rubocop.org/rubocop/cops_style.html#stylehashaslastarrayitem
|
||||
Style/HashAsLastArrayItem:
|
||||
Enabled: false
|
||||
|
||||
# Reason: Enforce modern Ruby style
|
||||
# https://docs.rubocop.org/rubocop/cops_style.html#stylehashsyntax
|
||||
Style/HashSyntax:
|
||||
|
|
|
@ -128,19 +128,6 @@ Style/GuardClause:
|
|||
- 'lib/mastodon/cli/media.rb'
|
||||
- 'lib/tasks/repo.rake'
|
||||
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: braces, no_braces
|
||||
Style/HashAsLastArrayItem:
|
||||
Exclude:
|
||||
- 'app/controllers/admin/statuses_controller.rb'
|
||||
- 'app/controllers/api/v1/statuses_controller.rb'
|
||||
- 'app/models/concerns/account/counters.rb'
|
||||
- 'app/models/concerns/status/threading_concern.rb'
|
||||
- 'app/models/status.rb'
|
||||
- 'app/services/batched_remove_status_service.rb'
|
||||
- 'app/services/notify_service.rb'
|
||||
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
Style/HashTransformValues:
|
||||
Exclude:
|
||||
|
|
|
@ -1 +1 @@
|
|||
3.2.3
|
||||
3.2.4
|
||||
|
|
10
Dockerfile
10
Dockerfile
|
@ -7,15 +7,15 @@
|
|||
ARG TARGETPLATFORM=${TARGETPLATFORM}
|
||||
ARG BUILDPLATFORM=${BUILDPLATFORM}
|
||||
|
||||
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.2.3"]
|
||||
ARG RUBY_VERSION="3.2.3"
|
||||
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.2.4"]
|
||||
ARG RUBY_VERSION="3.2.4"
|
||||
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
|
||||
ARG NODE_MAJOR_VERSION="20"
|
||||
# Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"]
|
||||
ARG DEBIAN_VERSION="bookworm"
|
||||
# Node image to use for base image based on combined variables (ex: 20-bookworm-slim)
|
||||
FROM docker.io/node:${NODE_MAJOR_VERSION}-${DEBIAN_VERSION}-slim as node
|
||||
# Ruby image to use for base image based on combined variables (ex: 3.2.3-slim-bookworm)
|
||||
# Ruby image to use for base image based on combined variables (ex: 3.2.4-slim-bookworm)
|
||||
FROM docker.io/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} as ruby
|
||||
|
||||
# Resulting version string is vX.X.X-MASTODON_VERSION_PRERELEASE+MASTODON_VERSION_METADATA
|
||||
|
@ -29,7 +29,7 @@ ARG MASTODON_VERSION_METADATA=""
|
|||
# See: https://docs.joinmastodon.org/admin/config/#rails_serve_static_files
|
||||
ARG RAILS_SERVE_STATIC_FILES="true"
|
||||
# Allow to use YJIT compiler
|
||||
# See: https://github.com/ruby/ruby/blob/v3_2_3/doc/yjit/yjit.md
|
||||
# See: https://github.com/ruby/ruby/blob/v3_2_4/doc/yjit/yjit.md
|
||||
ARG RUBY_YJIT_ENABLE="1"
|
||||
# Timezone used by the Docker container and runtime, change with [--build-arg TZ=Europe/Berlin]
|
||||
ARG TZ="Etc/UTC"
|
||||
|
@ -262,4 +262,4 @@ USER mastodon
|
|||
# Expose default Puma ports
|
||||
EXPOSE 3000
|
||||
# Set container tini as default entry point
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
import PropTypes from 'prop-types';
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import { defineMessages, useIntl, FormattedMessage } from 'react-intl';
|
||||
|
||||
import classNames from 'classnames';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
|
||||
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
||||
import { EmptyAccount } from 'mastodon/components/empty_account';
|
||||
import { ShortNumber } from 'mastodon/components/short_number';
|
||||
import { VerifiedBadge } from 'mastodon/components/verified_badge';
|
||||
|
||||
import DropdownMenuContainer from '../containers/dropdown_menu_container';
|
||||
import { me } from '../initial_state';
|
||||
|
||||
import { Avatar } from './avatar';
|
||||
|
@ -30,151 +32,151 @@ const messages = defineMessages({
|
|||
unmute_notifications: { id: 'account.unmute_notifications_short', defaultMessage: 'Unmute notifications' },
|
||||
mute: { id: 'account.mute_short', defaultMessage: 'Mute' },
|
||||
block: { id: 'account.block_short', defaultMessage: 'Block' },
|
||||
more: { id: 'status.more', defaultMessage: 'More' },
|
||||
});
|
||||
|
||||
class Account extends ImmutablePureComponent {
|
||||
const Account = ({ size = 46, account, onFollow, onBlock, onMute, onMuteNotifications, hidden, minimal, defaultAction, withBio }) => {
|
||||
const intl = useIntl();
|
||||
|
||||
static propTypes = {
|
||||
size: PropTypes.number,
|
||||
account: ImmutablePropTypes.record,
|
||||
onFollow: PropTypes.func,
|
||||
onBlock: PropTypes.func,
|
||||
onMute: PropTypes.func,
|
||||
onMuteNotifications: PropTypes.func,
|
||||
intl: PropTypes.object.isRequired,
|
||||
hidden: PropTypes.bool,
|
||||
minimal: PropTypes.bool,
|
||||
defaultAction: PropTypes.string,
|
||||
withBio: PropTypes.bool,
|
||||
};
|
||||
const handleFollow = useCallback(() => {
|
||||
onFollow(account);
|
||||
}, [onFollow, account]);
|
||||
|
||||
static defaultProps = {
|
||||
size: 46,
|
||||
};
|
||||
const handleBlock = useCallback(() => {
|
||||
onBlock(account);
|
||||
}, [onBlock, account]);
|
||||
|
||||
handleFollow = () => {
|
||||
this.props.onFollow(this.props.account);
|
||||
};
|
||||
const handleMute = useCallback(() => {
|
||||
onMute(account);
|
||||
}, [onMute, account]);
|
||||
|
||||
handleBlock = () => {
|
||||
this.props.onBlock(this.props.account);
|
||||
};
|
||||
const handleMuteNotifications = useCallback(() => {
|
||||
onMuteNotifications(account, true);
|
||||
}, [onMuteNotifications, account]);
|
||||
|
||||
handleMute = () => {
|
||||
this.props.onMute(this.props.account);
|
||||
};
|
||||
const handleUnmuteNotifications = useCallback(() => {
|
||||
onMuteNotifications(account, false);
|
||||
}, [onMuteNotifications, account]);
|
||||
|
||||
handleMuteNotifications = () => {
|
||||
this.props.onMuteNotifications(this.props.account, true);
|
||||
};
|
||||
|
||||
handleUnmuteNotifications = () => {
|
||||
this.props.onMuteNotifications(this.props.account, false);
|
||||
};
|
||||
|
||||
render () {
|
||||
const { account, intl, hidden, withBio, defaultAction, size, minimal } = this.props;
|
||||
|
||||
if (!account) {
|
||||
return <EmptyAccount size={size} minimal={minimal} />;
|
||||
}
|
||||
|
||||
if (hidden) {
|
||||
return (
|
||||
<>
|
||||
{account.get('display_name')}
|
||||
{account.get('username')}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
let buttons;
|
||||
|
||||
if (account.get('id') !== me && account.get('relationship', null) !== null) {
|
||||
const following = account.getIn(['relationship', 'following']);
|
||||
const requested = account.getIn(['relationship', 'requested']);
|
||||
const blocking = account.getIn(['relationship', 'blocking']);
|
||||
const muting = account.getIn(['relationship', 'muting']);
|
||||
|
||||
if (requested) {
|
||||
buttons = <Button text={intl.formatMessage(messages.cancel_follow_request)} onClick={this.handleFollow} />;
|
||||
} else if (blocking) {
|
||||
buttons = <Button text={intl.formatMessage(messages.unblock)} onClick={this.handleBlock} />;
|
||||
} else if (muting) {
|
||||
let hidingNotificationsButton;
|
||||
|
||||
if (account.getIn(['relationship', 'muting_notifications'])) {
|
||||
hidingNotificationsButton = <Button text={intl.formatMessage(messages.unmute_notifications)} onClick={this.handleUnmuteNotifications} />;
|
||||
} else {
|
||||
hidingNotificationsButton = <Button text={intl.formatMessage(messages.mute_notifications)} onClick={this.handleMuteNotifications} />;
|
||||
}
|
||||
|
||||
buttons = (
|
||||
<>
|
||||
<Button text={intl.formatMessage(messages.unmute)} onClick={this.handleMute} />
|
||||
{hidingNotificationsButton}
|
||||
</>
|
||||
);
|
||||
} else if (defaultAction === 'mute') {
|
||||
buttons = <Button title={intl.formatMessage(messages.mute)} onClick={this.handleMute} />;
|
||||
} else if (defaultAction === 'block') {
|
||||
buttons = <Button text={intl.formatMessage(messages.block)} onClick={this.handleBlock} />;
|
||||
} else if (!account.get('suspended') && !account.get('moved') || following) {
|
||||
buttons = <Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={this.handleFollow} />;
|
||||
}
|
||||
}
|
||||
|
||||
let muteTimeRemaining;
|
||||
|
||||
if (account.get('mute_expires_at')) {
|
||||
muteTimeRemaining = <>· <RelativeTimestamp timestamp={account.get('mute_expires_at')} futureDate /></>;
|
||||
}
|
||||
|
||||
let verification;
|
||||
|
||||
const firstVerifiedField = account.get('fields').find(item => !!item.get('verified_at'));
|
||||
|
||||
if (firstVerifiedField) {
|
||||
verification = <VerifiedBadge link={firstVerifiedField.get('value')} />;
|
||||
}
|
||||
if (!account) {
|
||||
return <EmptyAccount size={size} minimal={minimal} />;
|
||||
}
|
||||
|
||||
if (hidden) {
|
||||
return (
|
||||
<div className={classNames('account', { 'account--minimal': minimal })}>
|
||||
<div className='account__wrapper'>
|
||||
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
|
||||
<div className='account__avatar-wrapper'>
|
||||
<Avatar account={account} size={size} />
|
||||
</div>
|
||||
|
||||
<div className='account__contents'>
|
||||
<DisplayName account={account} />
|
||||
{!minimal && (
|
||||
<div className='account__details'>
|
||||
<ShortNumber value={account.get('followers_count')} renderer={FollowersCounter} /> {verification} {muteTimeRemaining}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</Link>
|
||||
|
||||
{!minimal && (
|
||||
<div className='account__relationship'>
|
||||
{buttons}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{withBio && (account.get('note').length > 0 ? (
|
||||
<div
|
||||
className='account__note translate'
|
||||
dangerouslySetInnerHTML={{ __html: account.get('note_emojified') }}
|
||||
/>
|
||||
) : (
|
||||
<div className='account__note account__note--missing'><FormattedMessage id='account.no_bio' defaultMessage='No description provided.' /></div>
|
||||
))}
|
||||
</div>
|
||||
<>
|
||||
{account.get('display_name')}
|
||||
{account.get('username')}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
let buttons;
|
||||
|
||||
export default injectIntl(Account);
|
||||
if (account.get('id') !== me && account.get('relationship', null) !== null) {
|
||||
const following = account.getIn(['relationship', 'following']);
|
||||
const requested = account.getIn(['relationship', 'requested']);
|
||||
const blocking = account.getIn(['relationship', 'blocking']);
|
||||
const muting = account.getIn(['relationship', 'muting']);
|
||||
|
||||
if (requested) {
|
||||
buttons = <Button text={intl.formatMessage(messages.cancel_follow_request)} onClick={handleFollow} />;
|
||||
} else if (blocking) {
|
||||
buttons = <Button text={intl.formatMessage(messages.unblock)} onClick={handleBlock} />;
|
||||
} else if (muting) {
|
||||
let menu;
|
||||
|
||||
if (account.getIn(['relationship', 'muting_notifications'])) {
|
||||
menu = [{ text: intl.formatMessage(messages.unmute_notifications), action: handleUnmuteNotifications }];
|
||||
} else {
|
||||
menu = [{ text: intl.formatMessage(messages.mute_notifications), action: handleMuteNotifications }];
|
||||
}
|
||||
|
||||
buttons = (
|
||||
<>
|
||||
<DropdownMenuContainer
|
||||
items={menu}
|
||||
icon='ellipsis-h'
|
||||
iconComponent={MoreHorizIcon}
|
||||
direction='right'
|
||||
title={intl.formatMessage(messages.more)}
|
||||
/>
|
||||
|
||||
<Button text={intl.formatMessage(messages.unmute)} onClick={handleMute} />
|
||||
</>
|
||||
);
|
||||
} else if (defaultAction === 'mute') {
|
||||
buttons = <Button title={intl.formatMessage(messages.mute)} onClick={handleMute} />;
|
||||
} else if (defaultAction === 'block') {
|
||||
buttons = <Button text={intl.formatMessage(messages.block)} onClick={handleBlock} />;
|
||||
} else if (!account.get('suspended') && !account.get('moved') || following) {
|
||||
buttons = <Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={handleFollow} />;
|
||||
}
|
||||
}
|
||||
|
||||
let muteTimeRemaining;
|
||||
|
||||
if (account.get('mute_expires_at')) {
|
||||
muteTimeRemaining = <>· <RelativeTimestamp timestamp={account.get('mute_expires_at')} futureDate /></>;
|
||||
}
|
||||
|
||||
let verification;
|
||||
|
||||
const firstVerifiedField = account.get('fields').find(item => !!item.get('verified_at'));
|
||||
|
||||
if (firstVerifiedField) {
|
||||
verification = <VerifiedBadge link={firstVerifiedField.get('value')} />;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={classNames('account', { 'account--minimal': minimal })}>
|
||||
<div className='account__wrapper'>
|
||||
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
|
||||
<div className='account__avatar-wrapper'>
|
||||
<Avatar account={account} size={size} />
|
||||
</div>
|
||||
|
||||
<div className='account__contents'>
|
||||
<DisplayName account={account} />
|
||||
{!minimal && (
|
||||
<div className='account__details'>
|
||||
<ShortNumber value={account.get('followers_count')} renderer={FollowersCounter} /> {verification} {muteTimeRemaining}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</Link>
|
||||
|
||||
{!minimal && (
|
||||
<div className='account__relationship'>
|
||||
{buttons}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{withBio && (account.get('note').length > 0 ? (
|
||||
<div
|
||||
className='account__note translate'
|
||||
dangerouslySetInnerHTML={{ __html: account.get('note_emojified') }}
|
||||
/>
|
||||
) : (
|
||||
<div className='account__note account__note--missing'><FormattedMessage id='account.no_bio' defaultMessage='No description provided.' /></div>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
Account.propTypes = {
|
||||
size: PropTypes.number,
|
||||
account: ImmutablePropTypes.record,
|
||||
onFollow: PropTypes.func,
|
||||
onBlock: PropTypes.func,
|
||||
onMute: PropTypes.func,
|
||||
onMuteNotifications: PropTypes.func,
|
||||
intl: PropTypes.object.isRequired,
|
||||
hidden: PropTypes.bool,
|
||||
minimal: PropTypes.bool,
|
||||
defaultAction: PropTypes.string,
|
||||
withBio: PropTypes.bool,
|
||||
};
|
||||
|
||||
export default Account;
|
||||
|
|
|
@ -297,6 +297,7 @@
|
|||
"filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова",
|
||||
"filter_modal.select_filter.title": "Филтриране на публ.",
|
||||
"filter_modal.title.status": "Филтриране на публ.",
|
||||
"filtered_notifications_banner.mentions": "{count, plural, one {споменаване} other {споменавания}}",
|
||||
"filtered_notifications_banner.pending_requests": "Известията от {count, plural, =0 {никого, когото може да познавате} one {едно лице, което може да познавате} other {# души, които може да познавате}}",
|
||||
"filtered_notifications_banner.title": "Филтрирани известия",
|
||||
"firehose.all": "Всичко",
|
||||
|
|
|
@ -536,11 +536,11 @@
|
|||
"onboarding.follows.empty": "Bedauerlicherweise können aktuell keine Ergebnisse angezeigt werden. Du kannst die Suche verwenden oder den Reiter „Entdecken“ auswählen, um neue Leute zum Folgen zu finden – oder du versuchst es später erneut.",
|
||||
"onboarding.follows.lead": "Deine Startseite ist der primäre Anlaufpunkt, um Mastodon zu erleben. Je mehr Profilen du folgst, umso aktiver und interessanter wird sie. Damit du direkt loslegen kannst, gibt es hier ein paar Vorschläge:",
|
||||
"onboarding.follows.title": "Personalisiere deine Startseite",
|
||||
"onboarding.profile.discoverable": "Mein Profil auffindbar machen",
|
||||
"onboarding.profile.discoverable": "Mein Profil darf entdeckt werden",
|
||||
"onboarding.profile.discoverable_hint": "Wenn du entdeckt werden möchtest, dann können deine Beiträge in Suchergebnissen und Trends erscheinen. Dein Profil kann ebenfalls anderen mit ähnlichen Interessen vorgeschlagen werden.",
|
||||
"onboarding.profile.display_name": "Anzeigename",
|
||||
"onboarding.profile.display_name_hint": "Dein richtiger Name oder dein Fantasiename …",
|
||||
"onboarding.profile.lead": "Du kannst das später in den Einstellungen vervollständigen, wo noch mehr Anpassungsmöglichkeiten zur Verfügung stehen.",
|
||||
"onboarding.profile.lead": "Du kannst dein Profil später in den Einstellungen vervollständigen. Dort stehen weitere Anpassungsmöglichkeiten zur Verfügung.",
|
||||
"onboarding.profile.note": "Über mich",
|
||||
"onboarding.profile.note_hint": "Du kannst andere @Profile erwähnen oder #Hashtags verwenden …",
|
||||
"onboarding.profile.save_and_continue": "Speichern und fortfahren",
|
||||
|
@ -556,16 +556,16 @@
|
|||
"onboarding.start.title": "Du hast es geschafft!",
|
||||
"onboarding.steps.follow_people.body": "Interessanten Profilen zu folgen ist das, was Mastodon ausmacht.",
|
||||
"onboarding.steps.follow_people.title": "Personalisiere deine Startseite",
|
||||
"onboarding.steps.publish_status.body": "Begrüße die Welt mit Text, Fotos, Videos oder Umfragen {emoji}",
|
||||
"onboarding.steps.publish_status.body": "Begrüße die Welt mit Text, Fotos, Videos oder Umfragen. {emoji}",
|
||||
"onboarding.steps.publish_status.title": "Erstelle deinen ersten Beitrag",
|
||||
"onboarding.steps.setup_profile.body": "Mit einem vollständigen Profil interagieren andere eher mit dir.",
|
||||
"onboarding.steps.setup_profile.title": "Personalisiere dein Profil",
|
||||
"onboarding.steps.share_profile.body": "Lass deine Freund*innen wissen, wie sie dich auf Mastodon finden können",
|
||||
"onboarding.steps.share_profile.body": "Lass deine Freund*innen wissen, wie sie dich auf Mastodon finden können.",
|
||||
"onboarding.steps.share_profile.title": "Teile dein Mastodon-Profil",
|
||||
"onboarding.tips.2fa": "<strong>Wusstest du schon?</strong> Du kannst die Sicherheit deines Kontos erhöhen, indem du die Zwei-Faktor-Authentisierung in deinen Kontoeinstellungen aktivierst. Dafür ist keine Telefonnummer notwendig und es funktioniert jede beliebige TOTP-App!",
|
||||
"onboarding.tips.accounts_from_other_servers": "<strong>Wusstest du schon?</strong> Da Mastodon dezentralisiert ist, werden einige Profile, denen du begegnest, auf anderen Servern als deinem bereitgestellt. Und trotzdem kannst du uneingeschränkt mit ihnen interagieren! Der Servername befindet sich in der zweiten Hälfte ihres Profilnamens!",
|
||||
"onboarding.tips.migration": "<strong>Wusstest du schon?</strong> Wenn du das Gefühl hast, dass {domain} in Zukunft nicht die richtige Serverwahl für dich ist, kannst du auf einen anderen Mastodon-Server umziehen, ohne deine Follower zu verlieren. Du kannst sogar deinen eigenen Server betreiben!",
|
||||
"onboarding.tips.verification": "<strong>Wusstest du schon?</strong> Du kannst dein Konto verifizieren, indem du auf deiner Website auf dein Mastodon-Profil verlinkst und den Link deiner Website zu deinem Profil hinzufügst. Keine Gebühren oder Dokumente erforderlich!",
|
||||
"onboarding.tips.verification": "<strong>Wusstest du schon?</strong> Du kannst dein Konto verifizieren, indem du auf deiner Website auf dein Mastodon-Profil verlinkst und den Link deiner Website zu deinem Profil hinzufügst. Völlig kostenlos und ohne Dokumente einsenden zu müssen!",
|
||||
"password_confirmation.exceeds_maxlength": "Passwortbestätigung überschreitet die maximal erlaubte Zeichenanzahl",
|
||||
"password_confirmation.mismatching": "Passwortbestätigung stimmt nicht überein",
|
||||
"picture_in_picture.restore": "Zurücksetzen",
|
||||
|
|
|
@ -123,6 +123,7 @@
|
|||
"column.directory": "Jelajahi profil",
|
||||
"column.domain_blocks": "Domain tersembunyi",
|
||||
"column.favourites": "Favorit",
|
||||
"column.firehose": "Feed yang sedang berlangsung",
|
||||
"column.follow_requests": "Permintaan mengikuti",
|
||||
"column.home": "Beranda",
|
||||
"column.lists": "List",
|
||||
|
@ -143,7 +144,9 @@
|
|||
"community.column_settings.remote_only": "Hanya jarak jauh",
|
||||
"compose.language.change": "Ganti bahasa",
|
||||
"compose.language.search": "Telusuri bahasa...",
|
||||
"compose.published.body": "Postingan diterbitkan.",
|
||||
"compose.published.open": "Buka",
|
||||
"compose.saved.body": "Postingan tersimpan.",
|
||||
"compose_form.direct_message_warning_learn_more": "Pelajari lebih lanjut",
|
||||
"compose_form.encryption_warning": "Kiriman di Mastodon tidak dienkripsi secara end-to-end. Jangan bagikan informasi sensitif melalui Mastodon.",
|
||||
"compose_form.hashtag_warning": "Kiriman ini tidak akan didaftarkan di bawah tagar apapun selama tidak diatur ke publik. Hanya kiriman publik yang dapat dicari dengan tagar.",
|
||||
|
@ -151,11 +154,19 @@
|
|||
"compose_form.lock_disclaimer.lock": "terkunci",
|
||||
"compose_form.placeholder": "Apa yang ada di pikiran Anda?",
|
||||
"compose_form.poll.duration": "Durasi japat",
|
||||
"compose_form.poll.multiple": "Pilihan ganda",
|
||||
"compose_form.poll.option_placeholder": "Opsi {number}",
|
||||
"compose_form.poll.single": "Pilih Satu",
|
||||
"compose_form.poll.switch_to_multiple": "Ubah japat menjadi pilihan ganda",
|
||||
"compose_form.poll.switch_to_single": "Ubah japat menjadi pilihan tunggal",
|
||||
"compose_form.poll.type": "Gaya",
|
||||
"compose_form.publish": "Postingan",
|
||||
"compose_form.publish_form": "Terbitkan",
|
||||
"compose_form.reply": "Balas",
|
||||
"compose_form.save_changes": "Perbarui",
|
||||
"compose_form.spoiler.marked": "Hapus peringatan tentang isi konten",
|
||||
"compose_form.spoiler.unmarked": "Tambahkan peringatan tentang isi konten",
|
||||
"compose_form.spoiler_placeholder": "Peringatan konten (opsional)",
|
||||
"confirmation_modal.cancel": "Batal",
|
||||
"confirmations.block.confirm": "Blokir",
|
||||
"confirmations.cancel_follow_request.confirm": "Batalkan permintaan",
|
||||
|
@ -166,12 +177,15 @@
|
|||
"confirmations.delete_list.message": "Apakah Anda yakin untuk menghapus daftar ini secara permanen?",
|
||||
"confirmations.discard_edit_media.confirm": "Buang",
|
||||
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?",
|
||||
"confirmations.domain_block.confirm": "Blokir server",
|
||||
"confirmations.domain_block.message": "Apakah Anda benar-benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.",
|
||||
"confirmations.edit.confirm": "Ubah",
|
||||
"confirmations.edit.message": "Mengubah akan menimpa pesan yang sedang anda tulis. Apakah anda yakin ingin melanjutkan?",
|
||||
"confirmations.logout.confirm": "Keluar",
|
||||
"confirmations.logout.message": "Apakah Anda yakin ingin keluar?",
|
||||
"confirmations.mute.confirm": "Bisukan",
|
||||
"confirmations.redraft.confirm": "Hapus dan susun ulang",
|
||||
"confirmations.redraft.message": "Apakah anda yakin ingin menghapus postingan ini dan menyusun ulang postingan ini? Favorit dan peningkatan akan hilang, dan balasan ke postingan asli tidak akan terhubung ke postingan manapun.",
|
||||
"confirmations.reply.confirm": "Balas",
|
||||
"confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?",
|
||||
"confirmations.unfollow.confirm": "Berhenti mengikuti",
|
||||
|
@ -180,6 +194,7 @@
|
|||
"conversation.mark_as_read": "Tandai sudah dibaca",
|
||||
"conversation.open": "Lihat percakapan",
|
||||
"conversation.with": "Dengan {names}",
|
||||
"copy_icon_button.copied": "Disalin ke clipboard",
|
||||
"copypaste.copied": "Disalin",
|
||||
"copypaste.copy_to_clipboard": "Salin ke clipboard",
|
||||
"directory.federated": "Dari fediverse yang dikenal",
|
||||
|
@ -191,7 +206,27 @@
|
|||
"dismissable_banner.community_timeline": "Ini adalah kiriman publik terkini dari orang yang akunnya berada di {domain}.",
|
||||
"dismissable_banner.dismiss": "Abaikan",
|
||||
"dismissable_banner.explore_links": "Cerita berita ini sekarang sedang dibicarakan oleh orang di server ini dan lainnya dalam jaringan terdesentralisasi.",
|
||||
"dismissable_banner.explore_statuses": "Ini adalah postingan dari seluruh web sosial yang mendapatkan daya tarik saat ini. Postingan baru dengan lebih banyak peningkatan dan favorit memiliki peringkat lebih tinggi.",
|
||||
"dismissable_banner.explore_tags": "Tagar ini sekarang sedang tren di antara orang di server ini dan lainnya dalam jaringan terdesentralisasi.",
|
||||
"dismissable_banner.public_timeline": "Ini adalah postingan publik dari orang-orang di web sosial yang diikuti oleh {domain}.",
|
||||
"domain_block_modal.block": "Blokir server",
|
||||
"domain_block_modal.block_account_instead": "Blokir @{name} saja",
|
||||
"domain_block_modal.they_can_interact_with_old_posts": "Orang-orang dari server ini dapat berinteraksi dengan kiriman lama anda.",
|
||||
"domain_block_modal.they_cant_follow": "Tidak ada seorangpun dari server ini yang dapat mengikuti anda.",
|
||||
"domain_block_modal.they_wont_know": "Mereka tidak akan tahu bahwa mereka diblokir.",
|
||||
"domain_block_modal.title": "Blokir domain?",
|
||||
"domain_block_modal.you_will_lose_followers": "Semua pengikut anda dari server ini akan dihapus.",
|
||||
"domain_block_modal.you_wont_see_posts": "Anda tidak akan melihat postingan atau notifikasi dari pengguna di server ini.",
|
||||
"domain_pill.activitypub_lets_connect": "Ini memungkinkan anda terhubung dan berinteraksi dengan orang-orang tidak hanya di Mastodon, tetapi juga di berbagai aplikasi sosial.",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub seperti bahasa yang digunakan Mastodon dengan jejaring sosial lainnya.",
|
||||
"domain_pill.server": "Server",
|
||||
"domain_pill.their_handle": "Nama penggunanya:",
|
||||
"domain_pill.their_server": "Rumah digital mereka, di mana semua postingan mereka tersedia.",
|
||||
"domain_pill.their_username": "Pengenal unik mereka di server tersebut. Itu memungkinkan dapat mencari pengguna dengan nama yang sama di server lain.",
|
||||
"domain_pill.username": "Nama pengguna",
|
||||
"domain_pill.whats_in_a_handle": "Apa itu nama pengguna?",
|
||||
"domain_pill.who_they_are": "Karena nama pengguna menunjukkan siapa seseorang dan di mana server mereka berada, anda dapat berinteraksi dengan orang-orang di seluruh web sosial <button>ActivityPub-powered platforms</button>.",
|
||||
"domain_pill.your_handle": "Nama pengguna anda:",
|
||||
"embed.instructions": "Sematkan kiriman ini di situs web Anda dengan menyalin kode di bawah ini.",
|
||||
"embed.preview": "Tampilan akan seperti ini nantinya:",
|
||||
"emoji_button.activity": "Aktivitas",
|
||||
|
@ -260,6 +295,10 @@
|
|||
"follow_request.authorize": "Izinkan",
|
||||
"follow_request.reject": "Tolak",
|
||||
"follow_requests.unlocked_explanation": "Meskipun akun Anda tidak dikunci, staf {domain} menyarankan Anda untuk meninjau permintaan mengikuti dari akun-akun ini secara manual.",
|
||||
"follow_suggestions.curated_suggestion": "Pilihan staf",
|
||||
"follow_suggestions.dismiss": "Jangan tampilkan lagi",
|
||||
"follow_suggestions.hints.featured": "Profil ini telah dipilih sendiri oleh tim {domain}.",
|
||||
"follow_suggestions.hints.friends_of_friends": "Profil ini populer di kalangan orang yang anda ikuti.",
|
||||
"followed_tags": "Tagar yang diikuti",
|
||||
"footer.about": "Tentang",
|
||||
"footer.directory": "Direktori profil",
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
"column.bookmarks": "Ebenrụtụakā",
|
||||
"column.home": "Be",
|
||||
"column.lists": "Ndepụta",
|
||||
"column.notifications": "Nziọkwà",
|
||||
"column.pins": "Pinned post",
|
||||
"column_header.pin": "Gbado na profaịlụ gị",
|
||||
"column_subheading.settings": "Mwube",
|
||||
|
@ -42,17 +43,28 @@
|
|||
"confirmations.reply.confirm": "Zaa",
|
||||
"confirmations.unfollow.confirm": "Kwụsị iso",
|
||||
"conversation.delete": "Hichapụ nkata",
|
||||
"disabled_account_banner.account_settings": "Mwube akaụntụ",
|
||||
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
|
||||
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
|
||||
"domain_pill.username": "Ahaojiaru",
|
||||
"embed.instructions": "Embed this status on your website by copying the code below.",
|
||||
"emoji_button.activity": "Mmemme",
|
||||
"emoji_button.label": "Tibanye emoji",
|
||||
"emoji_button.search": "Chọọ...",
|
||||
"emoji_button.symbols": "Ọdịmara",
|
||||
"empty_column.account_timeline": "No posts found",
|
||||
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
|
||||
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
|
||||
"errors.unexpected_crash.report_issue": "Kpesa nsogbu",
|
||||
"explore.trending_links": "Akụkọ",
|
||||
"firehose.all": "Ha niine",
|
||||
"follow_request.authorize": "Nye ikike",
|
||||
"footer.privacy_policy": "Iwu nzuzu",
|
||||
"getting_started.heading": "Mbido",
|
||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
||||
"home.column_settings.show_replies": "Gosi nzaghachị",
|
||||
"home.hide_announcements": "Zoo ọkwa",
|
||||
"home.show_announcements": "Gosi ọkwa",
|
||||
"keyboard_shortcuts.back": "to navigate back",
|
||||
"keyboard_shortcuts.blocked": "to open blocked users list",
|
||||
"keyboard_shortcuts.boost": "to boost",
|
||||
|
|
|
@ -298,7 +298,7 @@
|
|||
"filter_modal.select_filter.title": "この投稿をフィルターする",
|
||||
"filter_modal.title.status": "投稿をフィルターする",
|
||||
"filtered_notifications_banner.mentions": "{count, plural, one {メンション} other {メンション}}",
|
||||
"filtered_notifications_banner.pending_requests": "{count, plural, =0 {アカウント} other {#アカウント}}からの通知がブロックされています",
|
||||
"filtered_notifications_banner.pending_requests": "{count, plural, =0 {通知がブロックされているアカウントはありません} other {#アカウントからの通知がブロックされています}}",
|
||||
"filtered_notifications_banner.title": "ブロック済みの通知",
|
||||
"firehose.all": "すべて",
|
||||
"firehose.local": "このサーバー",
|
||||
|
|
|
@ -297,6 +297,7 @@
|
|||
"filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova",
|
||||
"filter_modal.select_filter.title": "Filtrar esta publicação",
|
||||
"filter_modal.title.status": "Filtrar uma publicação",
|
||||
"filtered_notifications_banner.mentions": "{count, plural, one {menção} other {menções}}",
|
||||
"filtered_notifications_banner.pending_requests": "Notificações de {count, plural, =0 {no one} one {one person} other {# people}} que você talvez conheça",
|
||||
"filtered_notifications_banner.title": "Notificações filtradas",
|
||||
"firehose.all": "Tudo",
|
||||
|
|
|
@ -297,6 +297,7 @@
|
|||
"filter_modal.select_filter.subtitle": "Använd en befintlig kategori eller skapa en ny",
|
||||
"filter_modal.select_filter.title": "Filtrera detta inlägg",
|
||||
"filter_modal.title.status": "Filtrera ett inlägg",
|
||||
"filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}",
|
||||
"filtered_notifications_banner.pending_requests": "Aviseringar från {count, plural, =0 {ingen} one {en person} other {# personer}} du kanske känner",
|
||||
"filtered_notifications_banner.title": "Filtrerade aviseringar",
|
||||
"firehose.all": "Allt",
|
||||
|
|
|
@ -297,6 +297,7 @@
|
|||
"filter_modal.select_filter.subtitle": "使用既有類別,或創建一個新類別",
|
||||
"filter_modal.select_filter.title": "過濾此帖文",
|
||||
"filter_modal.title.status": "過濾一則帖文",
|
||||
"filtered_notifications_banner.mentions": "{count, plural, one {則提及} other {則提及}}",
|
||||
"filtered_notifications_banner.pending_requests": "來自 {count, plural, =0 {0 位} other {# 位}}你可能認識的人的通知",
|
||||
"filtered_notifications_banner.title": "已過濾之通知",
|
||||
"firehose.all": "全部",
|
||||
|
|
|
@ -2015,7 +2015,19 @@ a .account__avatar {
|
|||
white-space: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
gap: 8px;
|
||||
|
||||
.icon-button {
|
||||
border: 1px solid var(--background-border-color);
|
||||
border-radius: 4px;
|
||||
box-sizing: content-box;
|
||||
padding: 5px;
|
||||
|
||||
.icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.account-authorize {
|
||||
|
|
|
@ -156,7 +156,7 @@ class LinkDetailsExtractor
|
|||
end
|
||||
|
||||
def title
|
||||
html_entities.decode(structured_data&.headline || opengraph_tag('og:title') || document.xpath('//title').map(&:content).first)
|
||||
html_entities.decode(structured_data&.headline || opengraph_tag('og:title') || document.xpath('//title').map(&:content).first).strip
|
||||
end
|
||||
|
||||
def description
|
||||
|
|
|
@ -13,10 +13,12 @@
|
|||
#
|
||||
|
||||
class AccountModerationNote < ApplicationRecord
|
||||
CONTENT_SIZE_LIMIT = 500
|
||||
|
||||
belongs_to :account
|
||||
belongs_to :target_account, class_name: 'Account'
|
||||
|
||||
scope :latest, -> { reorder('created_at DESC') }
|
||||
|
||||
validates :content, presence: true, length: { maximum: 500 }
|
||||
validates :content, presence: true, length: { maximum: CONTENT_SIZE_LIMIT }
|
||||
end
|
||||
|
|
|
@ -14,9 +14,11 @@
|
|||
class AccountNote < ApplicationRecord
|
||||
include RelationshipCacheable
|
||||
|
||||
COMMENT_SIZE_LIMIT = 2_000
|
||||
|
||||
belongs_to :account
|
||||
belongs_to :target_account, class_name: 'Account'
|
||||
|
||||
validates :account_id, uniqueness: { scope: :target_account_id }
|
||||
validates :comment, length: { maximum: 2_000 }
|
||||
validates :comment, length: { maximum: COMMENT_SIZE_LIMIT }
|
||||
end
|
||||
|
|
|
@ -19,12 +19,14 @@
|
|||
class Invite < ApplicationRecord
|
||||
include Expireable
|
||||
|
||||
COMMENT_SIZE_LIMIT = 420
|
||||
|
||||
belongs_to :user, inverse_of: :invites
|
||||
has_many :users, inverse_of: :invite, dependent: nil
|
||||
|
||||
scope :available, -> { where(expires_at: nil).or(where('expires_at >= ?', Time.now.utc)) }
|
||||
|
||||
validates :comment, length: { maximum: 420 }
|
||||
validates :comment, length: { maximum: COMMENT_SIZE_LIMIT }
|
||||
|
||||
before_validation :set_code
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ class Report < ApplicationRecord
|
|||
include Paginable
|
||||
include RateLimitable
|
||||
|
||||
COMMENT_SIZE_LIMIT = 1_000
|
||||
|
||||
rate_limit by: :account, family: :reports
|
||||
|
||||
belongs_to :account
|
||||
|
@ -46,7 +48,7 @@ class Report < ApplicationRecord
|
|||
# A report is considered local if the reporter is local
|
||||
delegate :local?, to: :account
|
||||
|
||||
validates :comment, length: { maximum: 1_000 }, if: :local?
|
||||
validates :comment, length: { maximum: COMMENT_SIZE_LIMIT }, if: :local?
|
||||
validates :rule_ids, absence: true, if: -> { (category_changed? || rule_ids_changed?) && !violation? }
|
||||
|
||||
validate :validate_rule_ids, if: -> { (category_changed? || rule_ids_changed?) && violation? }
|
||||
|
|
|
@ -13,10 +13,12 @@
|
|||
#
|
||||
|
||||
class ReportNote < ApplicationRecord
|
||||
CONTENT_SIZE_LIMIT = 500
|
||||
|
||||
belongs_to :account
|
||||
belongs_to :report, inverse_of: :notes, touch: true
|
||||
|
||||
scope :latest, -> { reorder(created_at: :desc) }
|
||||
|
||||
validates :content, presence: true, length: { maximum: 500 }
|
||||
validates :content, presence: true, length: { maximum: CONTENT_SIZE_LIMIT }
|
||||
end
|
||||
|
|
|
@ -15,9 +15,11 @@
|
|||
class Rule < ApplicationRecord
|
||||
include Discard::Model
|
||||
|
||||
TEXT_SIZE_LIMIT = 300
|
||||
|
||||
self.discard_column = :deleted_at
|
||||
|
||||
validates :text, presence: true, length: { maximum: 300 }
|
||||
validates :text, presence: true, length: { maximum: TEXT_SIZE_LIMIT }
|
||||
|
||||
scope :ordered, -> { kept.order(priority: :asc, id: :asc) }
|
||||
end
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#
|
||||
|
||||
class UserInviteRequest < ApplicationRecord
|
||||
TEXT_SIZE_LIMIT = 420
|
||||
|
||||
belongs_to :user, inverse_of: :invite_request
|
||||
validates :text, presence: true, length: { maximum: 420 }
|
||||
validates :text, presence: true, length: { maximum: TEXT_SIZE_LIMIT }
|
||||
end
|
||||
|
|
|
@ -1046,7 +1046,7 @@ de:
|
|||
apply_for_account: Konto beantragen
|
||||
captcha_confirmation:
|
||||
help_html: Falls du Probleme beim Lösen des CAPTCHA hast, dann kannst uns über %{email} kontaktieren und wir werden versuchen, dir zu helfen.
|
||||
hint_html: Fast geschafft! Wir müssen uns vergewissern, dass du ein Mensch bist (damit wir Spam verhindern können!). Bitte löse das CAPTCHA und klicke auf „Weiter“.
|
||||
hint_html: Fast geschafft! Wir müssen uns vergewissern, dass du ein Mensch bist (damit wir Spam verhindern können!). Bitte löse das CAPTCHA und klicke auf „Fortfahren“.
|
||||
title: Sicherheitsüberprüfung
|
||||
confirmations:
|
||||
awaiting_review: Deine E-Mail-Adresse wurde bestätigt und das Team von %{domain} überprüft nun deine Registrierung. Sobald es dein Konto genehmigt, wirst du eine E-Mail erhalten.
|
||||
|
|
|
@ -25,7 +25,7 @@ de:
|
|||
explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mail-Adresse beworben. Sobald du deine E-Mail-Adresse bestätigt hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt – von dir ist keine weitere Handlung notwendig. Wenn du das nicht warst, dann kannst du diese E-Mail ignorieren.
|
||||
extra_html: Bitte beachte auch die <a href="%{terms_path}">Serverregeln</a> und <a href="%{policy_path}">unsere Datenschutzerklärung</a>.
|
||||
subject: 'Mastodon: Anleitung zum Bestätigen deines Kontos auf %{instance}'
|
||||
title: Verifiziere E-Mail-Adresse
|
||||
title: Verifiziere deine E-Mail-Adresse
|
||||
email_changed:
|
||||
explanation: 'Die E-Mail-Adresse deines Kontos wird geändert zu:'
|
||||
extra: Wenn du deine E-Mail-Adresse nicht geändert hast, ist es wahrscheinlich, dass sich jemand Zugang zu deinem Konto verschafft hat. Bitte ändere sofort dein Passwort oder kontaktiere die Administrator*innen des Servers, wenn du aus deinem Konto ausgesperrt bist.
|
||||
|
|
|
@ -12,6 +12,7 @@ eo:
|
|||
last_attempt: Vi ankoraŭ povas provi unufoje antaŭ ol via konto estos ŝlosita.
|
||||
locked: Via konto estas ŝlosita.
|
||||
not_found_in_database: Nevalida %{authentication_keys} aŭ pasvorto.
|
||||
omniauth_user_creation_failure: Eraro okazis kreinte konton por ĉi tiu identeco.
|
||||
pending: Via konto ankoraŭ estas kontrolata.
|
||||
timeout: Via seanco eksvalidiĝis. Bonvolu ensaluti denove por daŭrigi.
|
||||
unauthenticated: Vi devas ensaluti aŭ registriĝi antaŭ ol daŭrigi.
|
||||
|
@ -39,7 +40,7 @@ eo:
|
|||
explanation: Retajpu la novan adreson por ŝanĝi vian retpoŝtadreson.
|
||||
extra: Se ĉi tiu ŝanĝo ne estis komencita de vi, bonvolu ignori ĉi tiun retmesaĝon. La retadreso por la Mastodon-konto ne ŝanĝiĝos se vi ne aliras la supran ligilon.
|
||||
subject: 'Mastodon: Konfirmi retpoŝton por %{instance}'
|
||||
title: Kontrolu retpoŝtadreson
|
||||
title: Kontroli retpoŝtadreson
|
||||
reset_password_instructions:
|
||||
action: Ŝanĝi pasvorton
|
||||
explanation: Vi petis novan pasvorton por via konto.
|
||||
|
|
|
@ -174,6 +174,7 @@ bg:
|
|||
read:filters: преглед на вашите филтри
|
||||
read:follows: преглед на вашите последвания
|
||||
read:lists: преглед на вашите списъци
|
||||
read:me: четене само на основните сведения за акаунта ви
|
||||
read:mutes: преглед на вашите заглушавания
|
||||
read:notifications: преглед на вашите известия
|
||||
read:reports: преглед на вашите докладвания
|
||||
|
|
|
@ -174,6 +174,7 @@ ca:
|
|||
read:filters: mira els teus filtres
|
||||
read:follows: mira els teus seguiments
|
||||
read:lists: mira les teves llistes
|
||||
read:me: llegir només la informació bàsica del vostre compte
|
||||
read:mutes: mira els teus silenciats
|
||||
read:notifications: mira les teves notificacions
|
||||
read:reports: mira els teus informes
|
||||
|
|
|
@ -174,6 +174,7 @@ da:
|
|||
read:filters: se dine filtre
|
||||
read:follows: se dine følger
|
||||
read:lists: se dine lister
|
||||
read:me: læs kun kontoens basisoplysninger
|
||||
read:mutes: se dine tavsgørelser
|
||||
read:notifications: se dine notifikationer
|
||||
read:reports: se dine anmeldelser
|
||||
|
|
|
@ -174,6 +174,7 @@ de:
|
|||
read:filters: deine Filter einsehen
|
||||
read:follows: sehen, wem du folgst
|
||||
read:lists: deine Listen sehen
|
||||
read:me: nur deine grundlegenden Kontoinformationen lesen
|
||||
read:mutes: deine Stummschaltungen einsehen
|
||||
read:notifications: deine Benachrichtigungen sehen
|
||||
read:reports: deine Meldungen sehen
|
||||
|
|
|
@ -174,6 +174,7 @@ es-AR:
|
|||
read:filters: ver tus filtros
|
||||
read:follows: ver qué cuentas seguís
|
||||
read:lists: ver tus listas
|
||||
read:me: leer solo la información básica de tu cuenta
|
||||
read:mutes: ver qué cuentas silenciaste
|
||||
read:notifications: ver tus notificaciones
|
||||
read:reports: ver tus denuncias
|
||||
|
|
|
@ -174,6 +174,7 @@ es-MX:
|
|||
read:filters: ver tus filtros
|
||||
read:follows: ver a quién sigues
|
||||
read:lists: ver tus listas
|
||||
read:me: leer solo la información básica de tu cuenta
|
||||
read:mutes: ver a quién has silenciado
|
||||
read:notifications: ver tus notificaciones
|
||||
read:reports: ver tus informes
|
||||
|
|
|
@ -174,6 +174,7 @@ es:
|
|||
read:filters: ver tus filtros
|
||||
read:follows: ver a quién sigues
|
||||
read:lists: ver tus listas
|
||||
read:me: leer solo la información básica de tu cuenta
|
||||
read:mutes: ver a quién has silenciado
|
||||
read:notifications: ver tus notificaciones
|
||||
read:reports: ver tus informes
|
||||
|
|
|
@ -174,6 +174,7 @@ eu:
|
|||
read:filters: ikusi zure iragazkiak
|
||||
read:follows: ikusi zuk jarraitutakoak
|
||||
read:lists: ikusi zure zerrendak
|
||||
read:me: irakurri soilik zure kontuaren oinarrizko informazioa
|
||||
read:mutes: ikusi zuk mutututakoak
|
||||
read:notifications: ikusi zure jakinarazpenak
|
||||
read:reports: ikusi zure salaketak
|
||||
|
|
|
@ -174,6 +174,7 @@ fi:
|
|||
read:filters: katso suodattimiasi
|
||||
read:follows: katso seurattujasi
|
||||
read:lists: katso listojasi
|
||||
read:me: lue tilisi perustietoja
|
||||
read:mutes: katso mykistyksiäsi
|
||||
read:notifications: katso ilmoituksiasi
|
||||
read:reports: katso raporttejasi
|
||||
|
|
|
@ -174,6 +174,7 @@ fo:
|
|||
read:filters: síggja tíni filtur
|
||||
read:follows: síggja hvørji tú fylgir
|
||||
read:lists: síggja tínar listar
|
||||
read:me: les bara grundleggjandi upplýsingar av tínari kontu
|
||||
read:mutes: síggja tínar doyvingar
|
||||
read:notifications: síggja tínar fráboðanir
|
||||
read:reports: síggja tínar meldingar
|
||||
|
|
|
@ -174,6 +174,7 @@ gl:
|
|||
read:filters: ver os filtros
|
||||
read:follows: ver a quen segues
|
||||
read:lists: ver as tuas listaxes
|
||||
read:me: ler só a información básica da túa conta
|
||||
read:mutes: ver a quen tes acalado
|
||||
read:notifications: ver as notificacións
|
||||
read:reports: ver as túas denuncias
|
||||
|
|
|
@ -174,6 +174,7 @@ he:
|
|||
read:filters: צפייה במסננים
|
||||
read:follows: צפייה בנעקבים
|
||||
read:lists: צפיה ברשימותיך
|
||||
read:me: לקריאה בלבד של פרטי חשבונך הבסיסיים
|
||||
read:mutes: צפיה במושתקיך
|
||||
read:notifications: צפיה בהתראותיך
|
||||
read:reports: צפיה בדוחותיך
|
||||
|
|
|
@ -174,6 +174,7 @@ hu:
|
|||
read:filters: szűrök megtekintése
|
||||
read:follows: követések megtekintése
|
||||
read:lists: listák megtekintése
|
||||
read:me: csak a fiókod alapvető adatainak elolvasása
|
||||
read:mutes: némítások megtekintése
|
||||
read:notifications: értesítések megtekintése
|
||||
read:reports: bejelentések megtekintése
|
||||
|
|
|
@ -87,6 +87,7 @@ ia:
|
|||
read:filters: vider tu filtros
|
||||
read:follows: vider tu sequites
|
||||
read:lists: vider tu listas
|
||||
read:me: leger solmente le information basic de tu conto
|
||||
read:notifications: vider tu notificationes
|
||||
read:reports: vider tu reportos
|
||||
read:statuses: vider tote le messages
|
||||
|
|
|
@ -174,6 +174,7 @@ is:
|
|||
read:filters: skoða síurnar þínar
|
||||
read:follows: sjá hverjum þú fylgist með
|
||||
read:lists: skoða listana þína
|
||||
read:me: lesa einungis grunnupplýsingar aðgangsins þíns
|
||||
read:mutes: skoða hverja þú þaggar
|
||||
read:notifications: sjá tilkynningarnar þínar
|
||||
read:reports: skoða skýrslurnar þína
|
||||
|
|
|
@ -174,6 +174,7 @@ it:
|
|||
read:filters: visualizzare i tuoi filtri
|
||||
read:follows: visualizzare i tuoi seguiti
|
||||
read:lists: visualizzare i tuoi elenchi
|
||||
read:me: leggi solo le informazioni di base del tuo account
|
||||
read:mutes: visualizzare i tuoi silenziamenti
|
||||
read:notifications: visualizzare le tue notifiche
|
||||
read:reports: visualizzare le tue segnalazioni
|
||||
|
|
|
@ -174,6 +174,7 @@ ko:
|
|||
read:filters: 필터 보기
|
||||
read:follows: 팔로우 보기
|
||||
read:lists: 리스트 보기
|
||||
read:me: 내 계정의 기본 정보만을 읽습니다
|
||||
read:mutes: 뮤트 보기
|
||||
read:notifications: 알림 보기
|
||||
read:reports: 신고 보기
|
||||
|
|
|
@ -174,6 +174,7 @@ nl:
|
|||
read:filters: jouw filters bekijken
|
||||
read:follows: de accounts die jij volgt bekijken
|
||||
read:lists: jouw lijsten bekijken
|
||||
read:me: alleen de basisgegevens van jouw account lezen
|
||||
read:mutes: jouw genegeerde gebruikers bekijken
|
||||
read:notifications: jouw meldingen bekijken
|
||||
read:reports: jouw gerapporteerde berichten bekijken
|
||||
|
|
|
@ -174,6 +174,7 @@ nn:
|
|||
read:filters: sjå filtera dine
|
||||
read:follows: sjå fylgjarane dine
|
||||
read:lists: sjå listene dine
|
||||
read:me: les berre kontoen din sin grunnleggjande informasjon
|
||||
read:mutes: sjå kven du har målbunde
|
||||
read:notifications: sjå varsla dine
|
||||
read:reports: sjå rapportane dine
|
||||
|
|
|
@ -174,6 +174,7 @@ pl:
|
|||
read:filters: dostęp do filtrów
|
||||
read:follows: dostęp do listy obserwowanych
|
||||
read:lists: dostęp do Twoich list
|
||||
read:me: odczytaj tylko podstawowe informacje o koncie
|
||||
read:mutes: dostęp do listy wyciszonych
|
||||
read:notifications: możliwość odczytu powiadomień
|
||||
read:reports: dostęp do Twoich zgłoszeń
|
||||
|
|
|
@ -174,6 +174,7 @@ pt-BR:
|
|||
read:filters: ver seus filtros
|
||||
read:follows: ver quem você segue
|
||||
read:lists: ver suas listas
|
||||
read:me: ler só as informações básicas da sua conta
|
||||
read:mutes: ver seus silenciados
|
||||
read:notifications: ver suas notificações
|
||||
read:reports: ver suas denúncias
|
||||
|
|
|
@ -174,6 +174,7 @@ sl:
|
|||
read:filters: oglejte si svoje filtre
|
||||
read:follows: oglejte si svoje sledilce
|
||||
read:lists: oglejte si svoje sezname
|
||||
read:me: preberi le osnovne podatke računa
|
||||
read:mutes: oglejte si svoje utišane
|
||||
read:notifications: oglejte si svoja obvestila
|
||||
read:reports: oglejte si svoje prijave
|
||||
|
|
|
@ -174,6 +174,7 @@ sv:
|
|||
read:filters: se dina filter
|
||||
read:follows: se vem du följer
|
||||
read:lists: se dina listor
|
||||
read:me: läs endast den grundläggande informationen för ditt konto
|
||||
read:mutes: se dina tystningar
|
||||
read:notifications: se dina notiser
|
||||
read:reports: se dina rapporter
|
||||
|
|
|
@ -174,6 +174,7 @@ tr:
|
|||
read:filters: süzgeçlerinizi görün
|
||||
read:follows: takip ettiklerinizi görün
|
||||
read:lists: listelerinizi görün
|
||||
read:me: hesabınızın sadece temel bilgilerini okuma
|
||||
read:mutes: sessize aldıklarınızı görün
|
||||
read:notifications: bildirimlerinizi görün
|
||||
read:reports: raporlarınızı görün
|
||||
|
|
|
@ -180,6 +180,7 @@ uk:
|
|||
read:filters: бачити Ваші фільтри
|
||||
read:follows: бачити Ваші підписки
|
||||
read:lists: бачити Ваші списки
|
||||
read:me: читайте лише основну інформацію вашого облікового запису
|
||||
read:mutes: бачити ваші нехтування
|
||||
read:notifications: бачити Ваші сповіщення
|
||||
read:reports: бачити Ваші скарги
|
||||
|
|
|
@ -174,6 +174,7 @@ vi:
|
|||
read:filters: xem bộ lọc
|
||||
read:follows: xem những người theo dõi
|
||||
read:lists: xem danh sách
|
||||
read:me: chỉ đọc thông tin cơ bản tài khoản
|
||||
read:mutes: xem những người đã ẩn
|
||||
read:notifications: xem thông báo
|
||||
read:reports: xem báo cáo của bạn
|
||||
|
|
|
@ -174,6 +174,7 @@ zh-CN:
|
|||
read:filters: 查看你的过滤器
|
||||
read:follows: 查看你的关注
|
||||
read:lists: 查看你的列表
|
||||
read:me: 只读取你账户的基本信息
|
||||
read:mutes: 查看你的隐藏列表
|
||||
read:notifications: 查看你的通知
|
||||
read:reports: 查看你的举报
|
||||
|
|
|
@ -174,6 +174,7 @@ zh-HK:
|
|||
read:filters: 檢視你的過濾條件
|
||||
read:follows: 檢視你關注的人
|
||||
read:lists: 檢視你的清單
|
||||
read:me: 僅讀取帳號的基本資訊
|
||||
read:mutes: 檢視被你靜音的人
|
||||
read:notifications: 檢視你的通知
|
||||
read:reports: 檢視你的檢舉
|
||||
|
|
|
@ -174,6 +174,7 @@ zh-TW:
|
|||
read:filters: 檢視您的過濾條件
|
||||
read:follows: 檢視您跟隨之使用者
|
||||
read:lists: 檢視您的列表
|
||||
read:me: 僅讀取您的帳號基本資訊
|
||||
read:mutes: 檢視您靜音的人
|
||||
read:notifications: 檢視您的通知
|
||||
read:reports: 檢視您的檢舉
|
||||
|
|
|
@ -74,7 +74,7 @@ eo:
|
|||
follows: Sekvatoj
|
||||
header: Kapa bildo
|
||||
inbox_url: Enira URL
|
||||
invite_request_text: 가입하려는 이유
|
||||
invite_request_text: Kialoj por aliĝi
|
||||
invited_by: Invitita de
|
||||
ip: IP
|
||||
joined: Aliĝis
|
||||
|
@ -104,7 +104,7 @@ eo:
|
|||
no_role_assigned: Sen rolo
|
||||
not_subscribed: Ne abonita
|
||||
pending: Pritraktata recenzo
|
||||
perform_full_suspension: Suspendi
|
||||
perform_full_suspension: Haltigi
|
||||
previous_strikes: Antaǔaj admonoj
|
||||
previous_strikes_description_html:
|
||||
one: Ĉi tiu konto havas <strong>unu</strong> admonon.
|
||||
|
@ -121,7 +121,7 @@ eo:
|
|||
remote_suspension_reversible_hint_html: La konto estas suspendita, kaj la datumoj estos komplete forigitaj je %{date}. Ĝis tiam, la konto povas esti malsuspendita sen flankefiko. Se vi deziras tuj forigi ĉiujn datumojn de la konto, vi povas fari tion sube.
|
||||
remove_avatar: Forigi la profilbildon
|
||||
remove_header: Forigi kapan bildon
|
||||
removed_avatar_msg: La rolfiguro de %{username} estas sukcese forigita
|
||||
removed_avatar_msg: La profilbildo de %{username} estas sukcese forigita
|
||||
removed_header_msg: Kapbildo de %{username} suksece forigita
|
||||
resend_confirmation:
|
||||
already_confirmed: Ĉi tiu uzanto jam estas konfirmita
|
||||
|
@ -184,7 +184,7 @@ eo:
|
|||
create_domain_block: Krei Blokadon De Domajno
|
||||
create_email_domain_block: Krei Blokadon De Retpoŝta Domajno
|
||||
create_ip_block: Krei IP-regulon
|
||||
create_unavailable_domain: Krei nehaveblan domajnon
|
||||
create_unavailable_domain: Krei Nehaveblan Domajnon
|
||||
create_user_role: Krei Rolon
|
||||
demote_user: Malpromocii Uzanton
|
||||
destroy_announcement: Forigi Anoncon
|
||||
|
@ -193,9 +193,9 @@ eo:
|
|||
destroy_domain_allow: Forigi Domajnan Permeson
|
||||
destroy_domain_block: Forigi blokadon de domajno
|
||||
destroy_email_domain_block: Forigi blokadon de retpoŝta domajno
|
||||
destroy_instance: Forigi domajnon
|
||||
destroy_instance: Forigi Domajnon
|
||||
destroy_ip_block: Forigi IP-regulon
|
||||
destroy_status: Forigi mesaĝon
|
||||
destroy_status: Forigi Afiŝon
|
||||
destroy_unavailable_domain: Forigi Nehaveblan Domajnon
|
||||
destroy_user_role: Detrui Rolon
|
||||
disable_2fa_user: Malebligi 2FA
|
||||
|
@ -285,7 +285,7 @@ eo:
|
|||
update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}"
|
||||
update_domain_block_html: "%{name} ĝisdatigis domajnblokon por %{target}"
|
||||
update_ip_block_html: "%{name} ŝanĝis regulon por IP %{target}"
|
||||
update_status_html: "%{name} ĝisdatigis mesaĝon de %{target}"
|
||||
update_status_html: "%{name} ĝisdatigis afiŝon de %{target}"
|
||||
update_user_role_html: "%{name} ŝanĝis la rolon %{target}"
|
||||
deleted_account: forigita konto
|
||||
empty: Neniu ĵurnalo trovita.
|
||||
|
@ -567,7 +567,7 @@ eo:
|
|||
disable: Malebligi
|
||||
disabled: Malebligita
|
||||
enable: Ebligi
|
||||
enable_hint: Post ebligo, via servilo abonos ĉiujn publikajn mesaĝojn de tiu ripetilo, kaj komencos sendi publikajn mesaĝojn de la servilo al ĝi.
|
||||
enable_hint: Post ebligo, via servilo abonos ĉiujn publikajn mesaĝojn de tiu ripetilo, kaj komencos sendi publikajn afiŝojn de la servilo al ĝi.
|
||||
enabled: Ebligita
|
||||
inbox_url: URL de la ripetilo
|
||||
pending: Atendante aprobon de la ripetilo
|
||||
|
@ -587,7 +587,7 @@ eo:
|
|||
action_log: Ĵurnalo de revizo
|
||||
action_taken_by: Ago farita de
|
||||
actions:
|
||||
delete_description_html: Raportitaj mesaĝoj forigotas kaj admono rekorditas.
|
||||
delete_description_html: Raportitaj afiŝoj estos forigita kaj admono estos rekordita por helpi vin indiki estontajn afiŝojn de la sama konto kontraŭ reguloj.
|
||||
mark_as_sensitive_description_html: La audovidaĵo en la raportita mesaĝo markotas kiel sentema kaj admono rekorditas.
|
||||
other_description_html: Vidu pli da ebloj por regi la sintenon de la konto kaj por personigi la komunikadon kun la raportita konto.
|
||||
resolve_description_html: Nenio okazotas al la raportita konto kaj la raporto fermotas.
|
||||
|
@ -634,7 +634,7 @@ eo:
|
|||
resolved: Solvitaj
|
||||
resolved_msg: Signalo sukcese solvita!
|
||||
skip_to_actions: Salti al agoj
|
||||
status: Mesaĝoj
|
||||
status: Afiŝo
|
||||
statuses: Raportita enhavo
|
||||
statuses_description_html: Sentema enhavo referencitas kun la raportita konto
|
||||
summary:
|
||||
|
@ -787,6 +787,7 @@ eo:
|
|||
types:
|
||||
major: Ĉefa eldono
|
||||
minor: Neĉefa eldono
|
||||
version: Versio
|
||||
statuses:
|
||||
account: Skribanto
|
||||
application: Aplikaĵo
|
||||
|
@ -803,12 +804,12 @@ eo:
|
|||
media:
|
||||
title: Aŭdovidaĵoj
|
||||
metadata: Metadatumoj
|
||||
no_status_selected: Neniu mesaĝo estis ŝanĝita ĉar neniu estis elektita
|
||||
no_status_selected: Neniu afiŝo estis ŝanĝita ĉar neniu estis elektita
|
||||
open: Malfermi afiŝojn
|
||||
original_status: Originala afiŝo
|
||||
reblogs: Reblogaĵoj
|
||||
status_changed: Afiŝo ŝanĝiĝis
|
||||
title: Mesaĝoj de la konto
|
||||
title: Afiŝoj de la konto
|
||||
trending: Popularaĵoj
|
||||
visibility: Videbleco
|
||||
with_media: Kun aŭdovidaĵoj
|
||||
|
@ -816,7 +817,7 @@ eo:
|
|||
actions:
|
||||
delete_statuses: "%{name} forigis afiŝojn de %{target}"
|
||||
disable: "%{name} frostigis la konton de %{target}"
|
||||
mark_statuses_as_sensitive: "%{name} markis mesaĝojn de %{target} kiel sentemaj"
|
||||
mark_statuses_as_sensitive: "%{name} markis afiŝojn de %{target} kiel tiklan"
|
||||
none: "%{name} sendis averton al %{target}"
|
||||
sensitive: "%{name} markis konton de %{target} kiel sentema"
|
||||
silence: "%{name} limigis la konton de %{target}"
|
||||
|
@ -827,6 +828,8 @@ eo:
|
|||
system_checks:
|
||||
database_schema_check:
|
||||
message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite
|
||||
elasticsearch_preset:
|
||||
action: Legi dokumentaron
|
||||
elasticsearch_running_check:
|
||||
message_html: Ne eblas konekti Elasticsearch. Bonvolu kontroli ke ĝi funkcias, aǔ malŝaltu plentekstan serĉon
|
||||
elasticsearch_version_check:
|
||||
|
@ -940,7 +943,7 @@ eo:
|
|||
admin_mailer:
|
||||
new_appeal:
|
||||
actions:
|
||||
delete_statuses: por forigi iliajn mesaĝojn
|
||||
delete_statuses: por forigi iliajn afiŝojn
|
||||
disable: por frostigi ties konton
|
||||
mark_statuses_as_sensitive: por marki iliajn mesaĝojn kiel sentemaj
|
||||
none: averto
|
||||
|
@ -991,7 +994,7 @@ eo:
|
|||
unsubscribe: Malabonu
|
||||
view: 'Vidi:'
|
||||
view_profile: Vidi profilon
|
||||
view_status: Vidi mesaĝon
|
||||
view_status: Vidi afiŝon
|
||||
applications:
|
||||
created: Aplikaĵo sukcese kreita
|
||||
destroyed: Aplikaĵo sukcese forigita
|
||||
|
@ -1131,7 +1134,7 @@ eo:
|
|||
recipient: Senditas por
|
||||
reject_appeal: Malakcepti apelacion
|
||||
status: 'Afiŝo #%{id}'
|
||||
status_removed: Mesaĝo jam forigitas de sistemo
|
||||
status_removed: Afiŝo jam estas forigita de sistemo
|
||||
title: "%{action} de %{date}"
|
||||
title_actions:
|
||||
delete_statuses: Forigo de afiŝo
|
||||
|
@ -1199,8 +1202,8 @@ eo:
|
|||
edit:
|
||||
add_keyword: Aldoni ĉefvorton
|
||||
keywords: Ĉefvortoj
|
||||
statuses: Individuaj mesaĝoj
|
||||
statuses_hint_html: Ĉi tiu filtrilo kongruas kelkajn mesaĝojn. <a href="%{path}">Kontrolu mesaĝojn de la filtrilo</a>.
|
||||
statuses: Individuaj afiŝoj
|
||||
statuses_hint_html: Ĉi tiu filtrilo kongruas kelkajn afiŝojn. <a href="%{path}">Kontroli afiŝojn de la filtrilo</a>.
|
||||
title: Ŝanĝi filtrilojn
|
||||
errors:
|
||||
deprecated_api_multiple_keywords: Ĉi tiuj parametroj ne povas ŝanĝitis de ĉi tiu programaro. Uzu pli novan programaron.
|
||||
|
@ -1218,8 +1221,8 @@ eo:
|
|||
one: "%{count} afiŝo"
|
||||
other: "%{count} afiŝoj"
|
||||
statuses_long:
|
||||
one: "%{count} mesaĝo kaŝita"
|
||||
other: "%{count} mesaĝoj kaŝita"
|
||||
one: "%{count} afiŝo estas kaŝita"
|
||||
other: "%{count} afiŝoj estas kaŝitaj"
|
||||
title: Filtriloj
|
||||
new:
|
||||
save: Konservi novan filtrilon
|
||||
|
@ -1230,7 +1233,7 @@ eo:
|
|||
remove: Forigi de filtrilo
|
||||
index:
|
||||
hint: Ĉi tiu filtrilo kongruas kelkaj mesaĝoj sendepende de aliaj kriterioj.
|
||||
title: Filtritaj mesaĝoj
|
||||
title: Filtritaj afiŝoj
|
||||
generic:
|
||||
all: Ĉio
|
||||
all_items_on_page_selected_html:
|
||||
|
@ -1644,16 +1647,16 @@ eo:
|
|||
interaction_exceptions_explanation: Sciu ke estas neniu garantio ke mesaĝo estos forigita se ĝi iras sub la limo de diskonigoj aŭ stelumoj post atingi ĝin.
|
||||
keep_direct: Konservi rektajn mesaĝojn
|
||||
keep_direct_hint: Ne forigos viajn rektajn mesagôjn
|
||||
keep_media: Konservi mesaĝojn kun aŭdovidaj aldonaĵoj
|
||||
keep_media: Konservi afiŝojn kun aŭdovidaj aldonaĵoj
|
||||
keep_media_hint: Ne forigi mesaĝojn kiuj enhavas aŭdovidajn aldonaĵojn
|
||||
keep_pinned: Konservi alpinglitajn mesaĝojn
|
||||
keep_pinned: Konservi alpinglitajn afiŝojn
|
||||
keep_pinned_hint: Ne forigi viajn ajn alpinglitajn mesaĝojn
|
||||
keep_polls: Konservi enketojn
|
||||
keep_polls_hint: Ne forigi viajn ajn enketojn
|
||||
keep_self_bookmark: Konservi mesaĝojn kiun vi legsignis
|
||||
keep_self_bookmark: Konservi afiŝojn kiun vi legsignis
|
||||
keep_self_bookmark_hint: Ne forigi viajn siajn mesaĝojn se vi legsignis ilin
|
||||
keep_self_fav: Konservi mesaĝojn kiujn vi stelumis
|
||||
keep_self_fav_hint: Ne forigi proprajn mesaĝojn se vi stelumis ilin
|
||||
keep_self_fav: Konservi afiŝojn kiujn vi stelumis
|
||||
keep_self_fav_hint: Ne forigi proprajn afiŝojn se vi stelumis ilin
|
||||
min_age:
|
||||
'1209600': 2 semajnoj
|
||||
'15778476': 6 monatoj
|
||||
|
@ -1664,7 +1667,7 @@ eo:
|
|||
'63113904': 2 jaroj
|
||||
'7889238': 3 monatoj
|
||||
min_age_label: Aĝlimo
|
||||
min_favs: Konservi mesaĝojn stelumitajn almenaŭ
|
||||
min_favs: Konservi afiŝojn stelumitajn almenaŭ
|
||||
min_favs_hint: Oni ne forigas viajn afiŝojn, kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj
|
||||
min_reblogs: Konservi diskonitajn mesaĝojn almenau
|
||||
min_reblogs_hint: Oni ne forigas viajn afiŝojn kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj
|
||||
|
@ -1738,11 +1741,11 @@ eo:
|
|||
silence: Vi ankorau povas uzi vian konton, sed nur personoj kiuj jam sekvas vin vidos viajn mesaĝojn en tiu ĉi servilo, kaj vi eble estos ekskluzive el diversaj malkovrigaj funkcioj. Tamen, aliaj ankoraŭ povas permane eksekvi vin.
|
||||
suspend: Vi ne povas uzi vian konton plu, kaj via profilo kaj aliaj datumoj ne estas disponeblaj plu.
|
||||
reason: 'Kialo:'
|
||||
statuses: 'Mesaĝoj ripetitaj:'
|
||||
statuses: 'Afiŝoj citataj:'
|
||||
subject:
|
||||
delete_statuses: Viaj mesaĝoj ĉe %{acct} forigitas
|
||||
delete_statuses: Viaj afiŝoj ĉe %{acct} estas forigitaj
|
||||
disable: Via konto %{acct} estas frostigita
|
||||
mark_statuses_as_sensitive: Viaj mesaĝoj ĉe %{acct} markitas kiel sentemaj
|
||||
mark_statuses_as_sensitive: Viaj afiŝoj ĉe %{acct} estas markitaj kiel tiklemaj
|
||||
none: Averto por %{acct}
|
||||
sensitive: Viaj mesaĝoj ĉe %{acct} markitas kiel sentemaj malantau ol nun
|
||||
silence: Oni limigis vian konton %{acct}
|
||||
|
|
|
@ -15,17 +15,27 @@ ia:
|
|||
instance_actor_flash: Iste conto es un agente virtual usate pro representar le servitor mesme e non alcun usator individual. Illo es usate pro le federation e non debe esser suspendite.
|
||||
last_active: ultime activitate
|
||||
link_verified_on: Le proprietate de iste ligamine ha essite verificate le %{date}
|
||||
nothing_here: Il ha nihil ci!
|
||||
pin_errors:
|
||||
following: Tu debe primo sequer le persona que tu vole indorsar
|
||||
posts:
|
||||
one: Message
|
||||
other: Messages
|
||||
posts_tab_heading: Messages
|
||||
admin:
|
||||
account_actions:
|
||||
action: Exequer action
|
||||
title: Exequer action de moderation sur %{acct}
|
||||
account_moderation_notes:
|
||||
create: Lassar un nota
|
||||
created_msg: Nota de moderation create con successo!
|
||||
destroyed_msg: Nota de moderation destruite con successo!
|
||||
accounts:
|
||||
add_email_domain_block: Blocar dominio de e-mail
|
||||
approve: Approbar
|
||||
approved_msg: Demanda de inscription de %{username} approbate con successo
|
||||
are_you_sure: Es tu secur?
|
||||
avatar: Avatar
|
||||
by_domain: Dominio
|
||||
change_email:
|
||||
changed_msg: Email cambiate con successo!
|
||||
|
@ -34,6 +44,11 @@ ia:
|
|||
new_email: Nove e-mail
|
||||
submit: Cambiar e-mail
|
||||
title: Cambiar e-mail pro %{username}
|
||||
change_role:
|
||||
changed_msg: Rolo cambiate con successo!
|
||||
label: Cambiar rolo
|
||||
no_role: Necun rolo
|
||||
title: Cambiar rolo pro %{username}
|
||||
confirm: Confirmar
|
||||
confirmed: Confirmate
|
||||
confirming: In confirmation
|
||||
|
@ -42,25 +57,59 @@ ia:
|
|||
deleted: Delite
|
||||
demote: Degradar
|
||||
destroyed_msg: Le datos de %{username} ora es in cauda pro su imminente deletion
|
||||
disable: Gelar
|
||||
disable_sign_in_token_auth: Disactivar le authentication per token in e-mail
|
||||
disable_two_factor_authentication: Disactivar 2FA
|
||||
disabled: Gelate
|
||||
display_name: Nomine visibile
|
||||
domain: Dominio
|
||||
edit: Modificar
|
||||
email: E-mail
|
||||
email_status: Stato de e-mail
|
||||
enable: Disgelar
|
||||
enable_sign_in_token_auth: Activar le authentication per token in e-mail
|
||||
enabled: Activate
|
||||
enabled_msg: Conto de %{username} disgelate con successo
|
||||
followers: Sequitores
|
||||
follows: Sequites
|
||||
header: Capite
|
||||
inbox_url: URL de cassa de entrata
|
||||
invite_request_text: Motivos pro le inscription
|
||||
invited_by: Invitate per
|
||||
ip: IP
|
||||
joined: Inscription
|
||||
location:
|
||||
all: Toto
|
||||
local: Local
|
||||
remote: Remote
|
||||
title: Location
|
||||
login_status: Stato de session
|
||||
media_attachments: Annexos multimedial
|
||||
memorialize: Render commemorative
|
||||
memorialized: Conto commemorative
|
||||
memorialized_msg: "%{username} ha essite convertite in un conto commemorative"
|
||||
moderation:
|
||||
active: Active
|
||||
all: Toto
|
||||
disabled: Disactivate
|
||||
pending: In tractamento
|
||||
silenced: Limitate
|
||||
suspended: Suspendite
|
||||
title: Moderation
|
||||
moderation_notes: Notas de moderation
|
||||
most_recent_activity: Activitate plus recente
|
||||
most_recent_ip: IP plus recente
|
||||
no_account_selected: Necun conto ha essite cambiate perque necun ha essite seligite
|
||||
no_limits_imposed: Necun limite imponite
|
||||
no_role_assigned: Necun rolo assignate
|
||||
not_subscribed: Non subscribite
|
||||
pending: Attende revision
|
||||
perform_full_suspension: Suspender
|
||||
previous_strikes: Previe admonitiones
|
||||
promote: Promover
|
||||
protocol: Protocollo
|
||||
public: Public
|
||||
push_subscription_expires: Subscription PuSH expira le
|
||||
redownload: Actualisar profilo
|
||||
resend_confirmation:
|
||||
already_confirmed: Iste usator jam es confirmate
|
||||
|
@ -237,6 +286,9 @@ ia:
|
|||
updated_at: Actualisate
|
||||
view_profile: Vider profilo
|
||||
roles:
|
||||
assigned_users:
|
||||
one: "%{count} usator"
|
||||
other: "%{count} usatores"
|
||||
everyone: Permissiones predefinite
|
||||
privileges:
|
||||
delete_user_data: Deler le datos de usator
|
||||
|
|
|
@ -1671,6 +1671,9 @@ pt-BR:
|
|||
domain_block: Suspensão do servidor (%{target_name})
|
||||
user_domain_block: Você bloqueou %{target_name}
|
||||
lost_followers: Seguidores perdidos
|
||||
lost_follows: Seguidores perdidos
|
||||
preamble: Você poderá perder seguidores e seguidores quando bloquear um domínio ou quando os seus moderadores decidirem suspender um servidor remoto. Quando isso acontecer, você poderá baixar listas de relações desfeitas, a serem inspecionadas e possivelmente importadas para outro servidor.
|
||||
purged: As informações sobre este servidor foram eliminadas pelos administradores do seu servidor.
|
||||
type: Evento
|
||||
statuses:
|
||||
attached:
|
||||
|
@ -1765,6 +1768,7 @@ pt-BR:
|
|||
contrast: Mastodon (Alto contraste)
|
||||
default: Mastodon (Noturno)
|
||||
mastodon-light: Mastodon (Diurno)
|
||||
system: Automático (usar tema do sistema)
|
||||
time:
|
||||
formats:
|
||||
default: "%H:%M em %d de %b de %Y"
|
||||
|
|
|
@ -30,6 +30,7 @@ ia:
|
|||
defaults:
|
||||
autofollow: Invitar a sequer tu conto
|
||||
avatar: Pictura de profilo
|
||||
chosen_languages: Filtrar linguas
|
||||
confirm_new_password: Confirmar nove contrasigno
|
||||
confirm_password: Confirmar contrasigno
|
||||
current_password: Contrasigno actual
|
||||
|
@ -39,6 +40,7 @@ ia:
|
|||
new_password: Nove contrasigno
|
||||
password: Contrasigno
|
||||
setting_advanced_layout: Activar le interfacie web avantiate
|
||||
setting_always_send_emails: Sempre inviar notificationes per e-mail
|
||||
setting_default_language: Lingua de publication
|
||||
setting_display_media_default: Predefinite
|
||||
setting_display_media_hide_all: Celar toto
|
||||
|
|
|
@ -116,6 +116,7 @@ pt-BR:
|
|||
sign_up_requires_approval: Novas inscrições exigirão sua aprovação
|
||||
severity: Escolha o que acontecerá com as solicitações deste IP
|
||||
rule:
|
||||
hint: Opcional. Forneça mais detalhes sobre a regra
|
||||
text: Descreva uma regra ou requisito para os usuários neste servidor. Tente mantê-la curta e simples.
|
||||
sessions:
|
||||
otp: 'Digite o código de dois fatores gerado pelo aplicativo no seu celular ou use um dos códigos de recuperação:'
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemoveDefaultsForStatusPinsTimestamps < ActiveRecord::Migration[7.1]
|
||||
def change
|
||||
change_column_default :status_pins, :created_at, from: -> { 'CURRENT_TIMESTAMP' }, to: nil
|
||||
change_column_default :status_pins, :updated_at, from: -> { 'CURRENT_TIMESTAMP' }, to: nil
|
||||
end
|
||||
end
|
|
@ -1031,8 +1031,8 @@ ActiveRecord::Schema[7.1].define(version: 2024_03_22_161611) do
|
|||
create_table "status_pins", force: :cascade do |t|
|
||||
t.bigint "account_id", null: false
|
||||
t.bigint "status_id", null: false
|
||||
t.datetime "created_at", precision: nil, default: -> { "now()" }, null: false
|
||||
t.datetime "updated_at", precision: nil, default: -> { "now()" }, null: false
|
||||
t.datetime "created_at", precision: nil, null: false
|
||||
t.datetime "updated_at", precision: nil, null: false
|
||||
t.index ["account_id", "status_id"], name: "index_status_pins_on_account_id_and_status_id", unique: true
|
||||
t.index ["status_id"], name: "index_status_pins_on_status_id"
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue