Merge commit '85fdbd0ad53837c9209acf3fb45811d5bae41cd9' into glitch-soc/merge-upstream

This commit is contained in:
Claire 2024-05-04 15:10:54 +02:00
commit bac4026d80
61 changed files with 380 additions and 205 deletions

View file

@ -182,6 +182,11 @@ Style/FormatStringToken:
AllowedMethods: AllowedMethods:
- redirect_with_vary - 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 # Reason: Enforce modern Ruby style
# https://docs.rubocop.org/rubocop/cops_style.html#stylehashsyntax # https://docs.rubocop.org/rubocop/cops_style.html#stylehashsyntax
Style/HashSyntax: Style/HashSyntax:

View file

@ -128,19 +128,6 @@ Style/GuardClause:
- 'lib/mastodon/cli/media.rb' - 'lib/mastodon/cli/media.rb'
- 'lib/tasks/repo.rake' - '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). # This cop supports unsafe autocorrection (--autocorrect-all).
Style/HashTransformValues: Style/HashTransformValues:
Exclude: Exclude:

View file

@ -1 +1 @@
3.2.3 3.2.4

View file

@ -7,15 +7,15 @@
ARG TARGETPLATFORM=${TARGETPLATFORM} ARG TARGETPLATFORM=${TARGETPLATFORM}
ARG BUILDPLATFORM=${BUILDPLATFORM} ARG BUILDPLATFORM=${BUILDPLATFORM}
# Ruby image to use for base image, change with [--build-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.3" ARG RUBY_VERSION="3.2.4"
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"] # # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
ARG NODE_MAJOR_VERSION="20" ARG NODE_MAJOR_VERSION="20"
# Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"] # Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"]
ARG DEBIAN_VERSION="bookworm" ARG DEBIAN_VERSION="bookworm"
# Node image to use for base image based on combined variables (ex: 20-bookworm-slim) # 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 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 FROM docker.io/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} as ruby
# Resulting version string is vX.X.X-MASTODON_VERSION_PRERELEASE+MASTODON_VERSION_METADATA # 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 # See: https://docs.joinmastodon.org/admin/config/#rails_serve_static_files
ARG RAILS_SERVE_STATIC_FILES="true" ARG RAILS_SERVE_STATIC_FILES="true"
# Allow to use YJIT compiler # 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" ARG RUBY_YJIT_ENABLE="1"
# Timezone used by the Docker container and runtime, change with [--build-arg TZ=Europe/Berlin] # Timezone used by the Docker container and runtime, change with [--build-arg TZ=Europe/Berlin]
ARG TZ="Etc/UTC" ARG TZ="Etc/UTC"

View file

@ -1,17 +1,19 @@
import PropTypes from 'prop-types'; 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 classNames from 'classnames';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import ImmutablePropTypes from 'react-immutable-proptypes'; 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 { EmptyAccount } from 'mastodon/components/empty_account';
import { ShortNumber } from 'mastodon/components/short_number'; import { ShortNumber } from 'mastodon/components/short_number';
import { VerifiedBadge } from 'mastodon/components/verified_badge'; import { VerifiedBadge } from 'mastodon/components/verified_badge';
import DropdownMenuContainer from '../containers/dropdown_menu_container';
import { me } from '../initial_state'; import { me } from '../initial_state';
import { Avatar } from './avatar'; import { Avatar } from './avatar';
@ -30,50 +32,31 @@ const messages = defineMessages({
unmute_notifications: { id: 'account.unmute_notifications_short', defaultMessage: 'Unmute notifications' }, unmute_notifications: { id: 'account.unmute_notifications_short', defaultMessage: 'Unmute notifications' },
mute: { id: 'account.mute_short', defaultMessage: 'Mute' }, mute: { id: 'account.mute_short', defaultMessage: 'Mute' },
block: { id: 'account.block_short', defaultMessage: 'Block' }, 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 = { const handleFollow = useCallback(() => {
size: PropTypes.number, onFollow(account);
account: ImmutablePropTypes.record, }, [onFollow, account]);
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,
};
static defaultProps = { const handleBlock = useCallback(() => {
size: 46, onBlock(account);
}; }, [onBlock, account]);
handleFollow = () => { const handleMute = useCallback(() => {
this.props.onFollow(this.props.account); onMute(account);
}; }, [onMute, account]);
handleBlock = () => { const handleMuteNotifications = useCallback(() => {
this.props.onBlock(this.props.account); onMuteNotifications(account, true);
}; }, [onMuteNotifications, account]);
handleMute = () => { const handleUnmuteNotifications = useCallback(() => {
this.props.onMute(this.props.account); 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) { if (!account) {
return <EmptyAccount size={size} minimal={minimal} />; return <EmptyAccount size={size} minimal={minimal} />;
@ -97,30 +80,37 @@ class Account extends ImmutablePureComponent {
const muting = account.getIn(['relationship', 'muting']); const muting = account.getIn(['relationship', 'muting']);
if (requested) { if (requested) {
buttons = <Button text={intl.formatMessage(messages.cancel_follow_request)} onClick={this.handleFollow} />; buttons = <Button text={intl.formatMessage(messages.cancel_follow_request)} onClick={handleFollow} />;
} else if (blocking) { } else if (blocking) {
buttons = <Button text={intl.formatMessage(messages.unblock)} onClick={this.handleBlock} />; buttons = <Button text={intl.formatMessage(messages.unblock)} onClick={handleBlock} />;
} else if (muting) { } else if (muting) {
let hidingNotificationsButton; let menu;
if (account.getIn(['relationship', 'muting_notifications'])) { if (account.getIn(['relationship', 'muting_notifications'])) {
hidingNotificationsButton = <Button text={intl.formatMessage(messages.unmute_notifications)} onClick={this.handleUnmuteNotifications} />; menu = [{ text: intl.formatMessage(messages.unmute_notifications), action: handleUnmuteNotifications }];
} else { } else {
hidingNotificationsButton = <Button text={intl.formatMessage(messages.mute_notifications)} onClick={this.handleMuteNotifications} />; menu = [{ text: intl.formatMessage(messages.mute_notifications), action: handleMuteNotifications }];
} }
buttons = ( buttons = (
<> <>
<Button text={intl.formatMessage(messages.unmute)} onClick={this.handleMute} /> <DropdownMenuContainer
{hidingNotificationsButton} 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') { } else if (defaultAction === 'mute') {
buttons = <Button title={intl.formatMessage(messages.mute)} onClick={this.handleMute} />; buttons = <Button title={intl.formatMessage(messages.mute)} onClick={handleMute} />;
} else if (defaultAction === 'block') { } else if (defaultAction === 'block') {
buttons = <Button text={intl.formatMessage(messages.block)} onClick={this.handleBlock} />; buttons = <Button text={intl.formatMessage(messages.block)} onClick={handleBlock} />;
} else if (!account.get('suspended') && !account.get('moved') || following) { } else if (!account.get('suspended') && !account.get('moved') || following) {
buttons = <Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={this.handleFollow} />; buttons = <Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={handleFollow} />;
} }
} }
@ -173,8 +163,20 @@ class Account extends ImmutablePureComponent {
))} ))}
</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 injectIntl(Account); export default Account;

View file

@ -297,6 +297,7 @@
"filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова", "filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова",
"filter_modal.select_filter.title": "Филтриране на публ.", "filter_modal.select_filter.title": "Филтриране на публ.",
"filter_modal.title.status": "Филтриране на публ.", "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.pending_requests": "Известията от {count, plural, =0 {никого, когото може да познавате} one {едно лице, което може да познавате} other {# души, които може да познавате}}",
"filtered_notifications_banner.title": "Филтрирани известия", "filtered_notifications_banner.title": "Филтрирани известия",
"firehose.all": "Всичко", "firehose.all": "Всичко",

View file

@ -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.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.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.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.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": "Anzeigename",
"onboarding.profile.display_name_hint": "Dein richtiger Name oder dein Fantasiename …", "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": "Über mich",
"onboarding.profile.note_hint": "Du kannst andere @Profile erwähnen oder #Hashtags verwenden …", "onboarding.profile.note_hint": "Du kannst andere @Profile erwähnen oder #Hashtags verwenden …",
"onboarding.profile.save_and_continue": "Speichern und fortfahren", "onboarding.profile.save_and_continue": "Speichern und fortfahren",
@ -556,16 +556,16 @@
"onboarding.start.title": "Du hast es geschafft!", "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.body": "Interessanten Profilen zu folgen ist das, was Mastodon ausmacht.",
"onboarding.steps.follow_people.title": "Personalisiere deine Startseite", "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.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.body": "Mit einem vollständigen Profil interagieren andere eher mit dir.",
"onboarding.steps.setup_profile.title": "Personalisiere dein Profil", "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.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.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.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.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.exceeds_maxlength": "Passwortbestätigung überschreitet die maximal erlaubte Zeichenanzahl",
"password_confirmation.mismatching": "Passwortbestätigung stimmt nicht überein", "password_confirmation.mismatching": "Passwortbestätigung stimmt nicht überein",
"picture_in_picture.restore": "Zurücksetzen", "picture_in_picture.restore": "Zurücksetzen",

View file

@ -123,6 +123,7 @@
"column.directory": "Jelajahi profil", "column.directory": "Jelajahi profil",
"column.domain_blocks": "Domain tersembunyi", "column.domain_blocks": "Domain tersembunyi",
"column.favourites": "Favorit", "column.favourites": "Favorit",
"column.firehose": "Feed yang sedang berlangsung",
"column.follow_requests": "Permintaan mengikuti", "column.follow_requests": "Permintaan mengikuti",
"column.home": "Beranda", "column.home": "Beranda",
"column.lists": "List", "column.lists": "List",
@ -143,7 +144,9 @@
"community.column_settings.remote_only": "Hanya jarak jauh", "community.column_settings.remote_only": "Hanya jarak jauh",
"compose.language.change": "Ganti bahasa", "compose.language.change": "Ganti bahasa",
"compose.language.search": "Telusuri bahasa...", "compose.language.search": "Telusuri bahasa...",
"compose.published.body": "Postingan diterbitkan.",
"compose.published.open": "Buka", "compose.published.open": "Buka",
"compose.saved.body": "Postingan tersimpan.",
"compose_form.direct_message_warning_learn_more": "Pelajari lebih lanjut", "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.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.", "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.lock_disclaimer.lock": "terkunci",
"compose_form.placeholder": "Apa yang ada di pikiran Anda?", "compose_form.placeholder": "Apa yang ada di pikiran Anda?",
"compose_form.poll.duration": "Durasi japat", "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_multiple": "Ubah japat menjadi pilihan ganda",
"compose_form.poll.switch_to_single": "Ubah japat menjadi pilihan tunggal", "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.publish_form": "Terbitkan",
"compose_form.reply": "Balas",
"compose_form.save_changes": "Perbarui",
"compose_form.spoiler.marked": "Hapus peringatan tentang isi konten", "compose_form.spoiler.marked": "Hapus peringatan tentang isi konten",
"compose_form.spoiler.unmarked": "Tambahkan peringatan tentang isi konten", "compose_form.spoiler.unmarked": "Tambahkan peringatan tentang isi konten",
"compose_form.spoiler_placeholder": "Peringatan konten (opsional)",
"confirmation_modal.cancel": "Batal", "confirmation_modal.cancel": "Batal",
"confirmations.block.confirm": "Blokir", "confirmations.block.confirm": "Blokir",
"confirmations.cancel_follow_request.confirm": "Batalkan permintaan", "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.delete_list.message": "Apakah Anda yakin untuk menghapus daftar ini secara permanen?",
"confirmations.discard_edit_media.confirm": "Buang", "confirmations.discard_edit_media.confirm": "Buang",
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?", "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.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.confirm": "Ubah",
"confirmations.edit.message": "Mengubah akan menimpa pesan yang sedang anda tulis. Apakah anda yakin ingin melanjutkan?",
"confirmations.logout.confirm": "Keluar", "confirmations.logout.confirm": "Keluar",
"confirmations.logout.message": "Apakah Anda yakin ingin keluar?", "confirmations.logout.message": "Apakah Anda yakin ingin keluar?",
"confirmations.mute.confirm": "Bisukan", "confirmations.mute.confirm": "Bisukan",
"confirmations.redraft.confirm": "Hapus dan susun ulang", "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.confirm": "Balas",
"confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?", "confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?",
"confirmations.unfollow.confirm": "Berhenti mengikuti", "confirmations.unfollow.confirm": "Berhenti mengikuti",
@ -180,6 +194,7 @@
"conversation.mark_as_read": "Tandai sudah dibaca", "conversation.mark_as_read": "Tandai sudah dibaca",
"conversation.open": "Lihat percakapan", "conversation.open": "Lihat percakapan",
"conversation.with": "Dengan {names}", "conversation.with": "Dengan {names}",
"copy_icon_button.copied": "Disalin ke clipboard",
"copypaste.copied": "Disalin", "copypaste.copied": "Disalin",
"copypaste.copy_to_clipboard": "Salin ke clipboard", "copypaste.copy_to_clipboard": "Salin ke clipboard",
"directory.federated": "Dari fediverse yang dikenal", "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.community_timeline": "Ini adalah kiriman publik terkini dari orang yang akunnya berada di {domain}.",
"dismissable_banner.dismiss": "Abaikan", "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_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.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.instructions": "Sematkan kiriman ini di situs web Anda dengan menyalin kode di bawah ini.",
"embed.preview": "Tampilan akan seperti ini nantinya:", "embed.preview": "Tampilan akan seperti ini nantinya:",
"emoji_button.activity": "Aktivitas", "emoji_button.activity": "Aktivitas",
@ -260,6 +295,10 @@
"follow_request.authorize": "Izinkan", "follow_request.authorize": "Izinkan",
"follow_request.reject": "Tolak", "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_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", "followed_tags": "Tagar yang diikuti",
"footer.about": "Tentang", "footer.about": "Tentang",
"footer.directory": "Direktori profil", "footer.directory": "Direktori profil",

View file

@ -20,6 +20,7 @@
"column.bookmarks": "Ebenrụtụakā", "column.bookmarks": "Ebenrụtụakā",
"column.home": "Be", "column.home": "Be",
"column.lists": "Ndepụta", "column.lists": "Ndepụta",
"column.notifications": "Nziọkwà",
"column.pins": "Pinned post", "column.pins": "Pinned post",
"column_header.pin": "Gbado na profaịlụ gị", "column_header.pin": "Gbado na profaịlụ gị",
"column_subheading.settings": "Mwube", "column_subheading.settings": "Mwube",
@ -42,17 +43,28 @@
"confirmations.reply.confirm": "Zaa", "confirmations.reply.confirm": "Zaa",
"confirmations.unfollow.confirm": "Kwụsị iso", "confirmations.unfollow.confirm": "Kwụsị iso",
"conversation.delete": "Hichapụ nkata", "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_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.", "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.", "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.search": "Chọọ...",
"emoji_button.symbols": "Ọdịmara",
"empty_column.account_timeline": "No posts found", "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.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.", "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", "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", "footer.privacy_policy": "Iwu nzuzu",
"getting_started.heading": "Mbido", "getting_started.heading": "Mbido",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column", "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.back": "to navigate back",
"keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "to boost", "keyboard_shortcuts.boost": "to boost",

View file

@ -298,7 +298,7 @@
"filter_modal.select_filter.title": "この投稿をフィルターする", "filter_modal.select_filter.title": "この投稿をフィルターする",
"filter_modal.title.status": "投稿をフィルターする", "filter_modal.title.status": "投稿をフィルターする",
"filtered_notifications_banner.mentions": "{count, plural, one {メンション} other {メンション}}", "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": "ブロック済みの通知", "filtered_notifications_banner.title": "ブロック済みの通知",
"firehose.all": "すべて", "firehose.all": "すべて",
"firehose.local": "このサーバー", "firehose.local": "このサーバー",

View file

@ -297,6 +297,7 @@
"filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova", "filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova",
"filter_modal.select_filter.title": "Filtrar esta publicação", "filter_modal.select_filter.title": "Filtrar esta publicação",
"filter_modal.title.status": "Filtrar uma 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.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", "filtered_notifications_banner.title": "Notificações filtradas",
"firehose.all": "Tudo", "firehose.all": "Tudo",

View file

@ -297,6 +297,7 @@
"filter_modal.select_filter.subtitle": "Använd en befintlig kategori eller skapa en ny", "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.select_filter.title": "Filtrera detta inlägg",
"filter_modal.title.status": "Filtrera ett 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.pending_requests": "Aviseringar från {count, plural, =0 {ingen} one {en person} other {# personer}} du kanske känner",
"filtered_notifications_banner.title": "Filtrerade aviseringar", "filtered_notifications_banner.title": "Filtrerade aviseringar",
"firehose.all": "Allt", "firehose.all": "Allt",

View file

@ -297,6 +297,7 @@
"filter_modal.select_filter.subtitle": "使用既有類別,或創建一個新類別", "filter_modal.select_filter.subtitle": "使用既有類別,或創建一個新類別",
"filter_modal.select_filter.title": "過濾此帖文", "filter_modal.select_filter.title": "過濾此帖文",
"filter_modal.title.status": "過濾一則帖文", "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.pending_requests": "來自 {count, plural, =0 {0 位} other {# 位}}你可能認識的人的通知",
"filtered_notifications_banner.title": "已過濾之通知", "filtered_notifications_banner.title": "已過濾之通知",
"firehose.all": "全部", "firehose.all": "全部",

View file

@ -2015,7 +2015,19 @@ a .account__avatar {
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
align-items: center; 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 { .account-authorize {

View file

@ -156,7 +156,7 @@ class LinkDetailsExtractor
end end
def title 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 end
def description def description

View file

@ -13,10 +13,12 @@
# #
class AccountModerationNote < ApplicationRecord class AccountModerationNote < ApplicationRecord
CONTENT_SIZE_LIMIT = 500
belongs_to :account belongs_to :account
belongs_to :target_account, class_name: 'Account' belongs_to :target_account, class_name: 'Account'
scope :latest, -> { reorder('created_at DESC') } scope :latest, -> { reorder('created_at DESC') }
validates :content, presence: true, length: { maximum: 500 } validates :content, presence: true, length: { maximum: CONTENT_SIZE_LIMIT }
end end

View file

@ -14,9 +14,11 @@
class AccountNote < ApplicationRecord class AccountNote < ApplicationRecord
include RelationshipCacheable include RelationshipCacheable
COMMENT_SIZE_LIMIT = 2_000
belongs_to :account belongs_to :account
belongs_to :target_account, class_name: 'Account' belongs_to :target_account, class_name: 'Account'
validates :account_id, uniqueness: { scope: :target_account_id } validates :account_id, uniqueness: { scope: :target_account_id }
validates :comment, length: { maximum: 2_000 } validates :comment, length: { maximum: COMMENT_SIZE_LIMIT }
end end

View file

@ -19,12 +19,14 @@
class Invite < ApplicationRecord class Invite < ApplicationRecord
include Expireable include Expireable
COMMENT_SIZE_LIMIT = 420
belongs_to :user, inverse_of: :invites belongs_to :user, inverse_of: :invites
has_many :users, inverse_of: :invite, dependent: nil has_many :users, inverse_of: :invite, dependent: nil
scope :available, -> { where(expires_at: nil).or(where('expires_at >= ?', Time.now.utc)) } 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 before_validation :set_code

View file

@ -26,6 +26,8 @@ class Report < ApplicationRecord
include Paginable include Paginable
include RateLimitable include RateLimitable
COMMENT_SIZE_LIMIT = 1_000
rate_limit by: :account, family: :reports rate_limit by: :account, family: :reports
belongs_to :account belongs_to :account
@ -46,7 +48,7 @@ class Report < ApplicationRecord
# A report is considered local if the reporter is local # A report is considered local if the reporter is local
delegate :local?, to: :account 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? } validates :rule_ids, absence: true, if: -> { (category_changed? || rule_ids_changed?) && !violation? }
validate :validate_rule_ids, if: -> { (category_changed? || rule_ids_changed?) && violation? } validate :validate_rule_ids, if: -> { (category_changed? || rule_ids_changed?) && violation? }

View file

@ -13,10 +13,12 @@
# #
class ReportNote < ApplicationRecord class ReportNote < ApplicationRecord
CONTENT_SIZE_LIMIT = 500
belongs_to :account belongs_to :account
belongs_to :report, inverse_of: :notes, touch: true belongs_to :report, inverse_of: :notes, touch: true
scope :latest, -> { reorder(created_at: :desc) } scope :latest, -> { reorder(created_at: :desc) }
validates :content, presence: true, length: { maximum: 500 } validates :content, presence: true, length: { maximum: CONTENT_SIZE_LIMIT }
end end

View file

@ -15,9 +15,11 @@
class Rule < ApplicationRecord class Rule < ApplicationRecord
include Discard::Model include Discard::Model
TEXT_SIZE_LIMIT = 300
self.discard_column = :deleted_at 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) } scope :ordered, -> { kept.order(priority: :asc, id: :asc) }
end end

View file

@ -12,6 +12,8 @@
# #
class UserInviteRequest < ApplicationRecord class UserInviteRequest < ApplicationRecord
TEXT_SIZE_LIMIT = 420
belongs_to :user, inverse_of: :invite_request belongs_to :user, inverse_of: :invite_request
validates :text, presence: true, length: { maximum: 420 } validates :text, presence: true, length: { maximum: TEXT_SIZE_LIMIT }
end end

View file

@ -1046,7 +1046,7 @@ de:
apply_for_account: Konto beantragen apply_for_account: Konto beantragen
captcha_confirmation: 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. 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 title: Sicherheitsüberprüfung
confirmations: 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. 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.

View file

@ -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. 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>. 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}' subject: 'Mastodon: Anleitung zum Bestätigen deines Kontos auf %{instance}'
title: Verifiziere E-Mail-Adresse title: Verifiziere deine E-Mail-Adresse
email_changed: email_changed:
explanation: 'Die E-Mail-Adresse deines Kontos wird geändert zu:' 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. 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.

View file

@ -12,6 +12,7 @@ eo:
last_attempt: Vi ankoraŭ povas provi unufoje antaŭ ol via konto estos ŝlosita. last_attempt: Vi ankoraŭ povas provi unufoje antaŭ ol via konto estos ŝlosita.
locked: Via konto estas ŝlosita. locked: Via konto estas ŝlosita.
not_found_in_database: Nevalida %{authentication_keys} aŭ pasvorto. 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. pending: Via konto ankoraŭ estas kontrolata.
timeout: Via seanco eksvalidiĝis. Bonvolu ensaluti denove por daŭrigi. timeout: Via seanco eksvalidiĝis. Bonvolu ensaluti denove por daŭrigi.
unauthenticated: Vi devas ensaluti aŭ registriĝi antaŭ ol 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. 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. 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}' subject: 'Mastodon: Konfirmi retpoŝton por %{instance}'
title: Kontrolu retpoŝtadreson title: Kontroli retpoŝtadreson
reset_password_instructions: reset_password_instructions:
action: Ŝanĝi pasvorton action: Ŝanĝi pasvorton
explanation: Vi petis novan pasvorton por via konto. explanation: Vi petis novan pasvorton por via konto.

View file

@ -174,6 +174,7 @@ bg:
read:filters: преглед на вашите филтри read:filters: преглед на вашите филтри
read:follows: преглед на вашите последвания read:follows: преглед на вашите последвания
read:lists: преглед на вашите списъци read:lists: преглед на вашите списъци
read:me: четене само на основните сведения за акаунта ви
read:mutes: преглед на вашите заглушавания read:mutes: преглед на вашите заглушавания
read:notifications: преглед на вашите известия read:notifications: преглед на вашите известия
read:reports: преглед на вашите докладвания read:reports: преглед на вашите докладвания

View file

@ -174,6 +174,7 @@ ca:
read:filters: mira els teus filtres read:filters: mira els teus filtres
read:follows: mira els teus seguiments read:follows: mira els teus seguiments
read:lists: mira les teves llistes 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:mutes: mira els teus silenciats
read:notifications: mira les teves notificacions read:notifications: mira les teves notificacions
read:reports: mira els teus informes read:reports: mira els teus informes

View file

@ -174,6 +174,7 @@ da:
read:filters: se dine filtre read:filters: se dine filtre
read:follows: se dine følger read:follows: se dine følger
read:lists: se dine lister read:lists: se dine lister
read:me: læs kun kontoens basisoplysninger
read:mutes: se dine tavsgørelser read:mutes: se dine tavsgørelser
read:notifications: se dine notifikationer read:notifications: se dine notifikationer
read:reports: se dine anmeldelser read:reports: se dine anmeldelser

View file

@ -174,6 +174,7 @@ de:
read:filters: deine Filter einsehen read:filters: deine Filter einsehen
read:follows: sehen, wem du folgst read:follows: sehen, wem du folgst
read:lists: deine Listen sehen read:lists: deine Listen sehen
read:me: nur deine grundlegenden Kontoinformationen lesen
read:mutes: deine Stummschaltungen einsehen read:mutes: deine Stummschaltungen einsehen
read:notifications: deine Benachrichtigungen sehen read:notifications: deine Benachrichtigungen sehen
read:reports: deine Meldungen sehen read:reports: deine Meldungen sehen

View file

@ -174,6 +174,7 @@ es-AR:
read:filters: ver tus filtros read:filters: ver tus filtros
read:follows: ver qué cuentas seguís read:follows: ver qué cuentas seguís
read:lists: ver tus listas read:lists: ver tus listas
read:me: leer solo la información básica de tu cuenta
read:mutes: ver qué cuentas silenciaste read:mutes: ver qué cuentas silenciaste
read:notifications: ver tus notificaciones read:notifications: ver tus notificaciones
read:reports: ver tus denuncias read:reports: ver tus denuncias

View file

@ -174,6 +174,7 @@ es-MX:
read:filters: ver tus filtros read:filters: ver tus filtros
read:follows: ver a quién sigues read:follows: ver a quién sigues
read:lists: ver tus listas 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:mutes: ver a quién has silenciado
read:notifications: ver tus notificaciones read:notifications: ver tus notificaciones
read:reports: ver tus informes read:reports: ver tus informes

View file

@ -174,6 +174,7 @@ es:
read:filters: ver tus filtros read:filters: ver tus filtros
read:follows: ver a quién sigues read:follows: ver a quién sigues
read:lists: ver tus listas 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:mutes: ver a quién has silenciado
read:notifications: ver tus notificaciones read:notifications: ver tus notificaciones
read:reports: ver tus informes read:reports: ver tus informes

View file

@ -174,6 +174,7 @@ eu:
read:filters: ikusi zure iragazkiak read:filters: ikusi zure iragazkiak
read:follows: ikusi zuk jarraitutakoak read:follows: ikusi zuk jarraitutakoak
read:lists: ikusi zure zerrendak read:lists: ikusi zure zerrendak
read:me: irakurri soilik zure kontuaren oinarrizko informazioa
read:mutes: ikusi zuk mutututakoak read:mutes: ikusi zuk mutututakoak
read:notifications: ikusi zure jakinarazpenak read:notifications: ikusi zure jakinarazpenak
read:reports: ikusi zure salaketak read:reports: ikusi zure salaketak

View file

@ -174,6 +174,7 @@ fi:
read:filters: katso suodattimiasi read:filters: katso suodattimiasi
read:follows: katso seurattujasi read:follows: katso seurattujasi
read:lists: katso listojasi read:lists: katso listojasi
read:me: lue tilisi perustietoja
read:mutes: katso mykistyksiäsi read:mutes: katso mykistyksiäsi
read:notifications: katso ilmoituksiasi read:notifications: katso ilmoituksiasi
read:reports: katso raporttejasi read:reports: katso raporttejasi

View file

@ -174,6 +174,7 @@ fo:
read:filters: síggja tíni filtur read:filters: síggja tíni filtur
read:follows: síggja hvørji tú fylgir read:follows: síggja hvørji tú fylgir
read:lists: síggja tínar listar 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:mutes: síggja tínar doyvingar
read:notifications: síggja tínar fráboðanir read:notifications: síggja tínar fráboðanir
read:reports: síggja tínar meldingar read:reports: síggja tínar meldingar

View file

@ -174,6 +174,7 @@ gl:
read:filters: ver os filtros read:filters: ver os filtros
read:follows: ver a quen segues read:follows: ver a quen segues
read:lists: ver as tuas listaxes 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:mutes: ver a quen tes acalado
read:notifications: ver as notificacións read:notifications: ver as notificacións
read:reports: ver as túas denuncias read:reports: ver as túas denuncias

View file

@ -174,6 +174,7 @@ he:
read:filters: צפייה במסננים read:filters: צפייה במסננים
read:follows: צפייה בנעקבים read:follows: צפייה בנעקבים
read:lists: צפיה ברשימותיך read:lists: צפיה ברשימותיך
read:me: לקריאה בלבד של פרטי חשבונך הבסיסיים
read:mutes: צפיה במושתקיך read:mutes: צפיה במושתקיך
read:notifications: צפיה בהתראותיך read:notifications: צפיה בהתראותיך
read:reports: צפיה בדוחותיך read:reports: צפיה בדוחותיך

View file

@ -174,6 +174,7 @@ hu:
read:filters: szűrök megtekintése read:filters: szűrök megtekintése
read:follows: követések megtekintése read:follows: követések megtekintése
read:lists: listák 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:mutes: némítások megtekintése
read:notifications: értesítések megtekintése read:notifications: értesítések megtekintése
read:reports: bejelentések megtekintése read:reports: bejelentések megtekintése

View file

@ -87,6 +87,7 @@ ia:
read:filters: vider tu filtros read:filters: vider tu filtros
read:follows: vider tu sequites read:follows: vider tu sequites
read:lists: vider tu listas read:lists: vider tu listas
read:me: leger solmente le information basic de tu conto
read:notifications: vider tu notificationes read:notifications: vider tu notificationes
read:reports: vider tu reportos read:reports: vider tu reportos
read:statuses: vider tote le messages read:statuses: vider tote le messages

View file

@ -174,6 +174,7 @@ is:
read:filters: skoða síurnar þínar read:filters: skoða síurnar þínar
read:follows: sjá hverjum þú fylgist með read:follows: sjá hverjum þú fylgist með
read:lists: skoða listana þína read:lists: skoða listana þína
read:me: lesa einungis grunnupplýsingar aðgangsins þíns
read:mutes: skoða hverja þú þaggar read:mutes: skoða hverja þú þaggar
read:notifications: sjá tilkynningarnar þínar read:notifications: sjá tilkynningarnar þínar
read:reports: skoða skýrslurnar þína read:reports: skoða skýrslurnar þína

View file

@ -174,6 +174,7 @@ it:
read:filters: visualizzare i tuoi filtri read:filters: visualizzare i tuoi filtri
read:follows: visualizzare i tuoi seguiti read:follows: visualizzare i tuoi seguiti
read:lists: visualizzare i tuoi elenchi read:lists: visualizzare i tuoi elenchi
read:me: leggi solo le informazioni di base del tuo account
read:mutes: visualizzare i tuoi silenziamenti read:mutes: visualizzare i tuoi silenziamenti
read:notifications: visualizzare le tue notifiche read:notifications: visualizzare le tue notifiche
read:reports: visualizzare le tue segnalazioni read:reports: visualizzare le tue segnalazioni

View file

@ -174,6 +174,7 @@ ko:
read:filters: 필터 보기 read:filters: 필터 보기
read:follows: 팔로우 보기 read:follows: 팔로우 보기
read:lists: 리스트 보기 read:lists: 리스트 보기
read:me: 내 계정의 기본 정보만을 읽습니다
read:mutes: 뮤트 보기 read:mutes: 뮤트 보기
read:notifications: 알림 보기 read:notifications: 알림 보기
read:reports: 신고 보기 read:reports: 신고 보기

View file

@ -174,6 +174,7 @@ nl:
read:filters: jouw filters bekijken read:filters: jouw filters bekijken
read:follows: de accounts die jij volgt bekijken read:follows: de accounts die jij volgt bekijken
read:lists: jouw lijsten bekijken read:lists: jouw lijsten bekijken
read:me: alleen de basisgegevens van jouw account lezen
read:mutes: jouw genegeerde gebruikers bekijken read:mutes: jouw genegeerde gebruikers bekijken
read:notifications: jouw meldingen bekijken read:notifications: jouw meldingen bekijken
read:reports: jouw gerapporteerde berichten bekijken read:reports: jouw gerapporteerde berichten bekijken

View file

@ -174,6 +174,7 @@ nn:
read:filters: sjå filtera dine read:filters: sjå filtera dine
read:follows: sjå fylgjarane dine read:follows: sjå fylgjarane dine
read:lists: sjå listene dine read:lists: sjå listene dine
read:me: les berre kontoen din sin grunnleggjande informasjon
read:mutes: sjå kven du har målbunde read:mutes: sjå kven du har målbunde
read:notifications: sjå varsla dine read:notifications: sjå varsla dine
read:reports: sjå rapportane dine read:reports: sjå rapportane dine

View file

@ -174,6 +174,7 @@ pl:
read:filters: dostęp do filtrów read:filters: dostęp do filtrów
read:follows: dostęp do listy obserwowanych read:follows: dostęp do listy obserwowanych
read:lists: dostęp do Twoich list read:lists: dostęp do Twoich list
read:me: odczytaj tylko podstawowe informacje o koncie
read:mutes: dostęp do listy wyciszonych read:mutes: dostęp do listy wyciszonych
read:notifications: możliwość odczytu powiadomień read:notifications: możliwość odczytu powiadomień
read:reports: dostęp do Twoich zgłoszeń read:reports: dostęp do Twoich zgłoszeń

View file

@ -174,6 +174,7 @@ pt-BR:
read:filters: ver seus filtros read:filters: ver seus filtros
read:follows: ver quem você segue read:follows: ver quem você segue
read:lists: ver suas listas read:lists: ver suas listas
read:me: ler só as informações básicas da sua conta
read:mutes: ver seus silenciados read:mutes: ver seus silenciados
read:notifications: ver suas notificações read:notifications: ver suas notificações
read:reports: ver suas denúncias read:reports: ver suas denúncias

View file

@ -174,6 +174,7 @@ sl:
read:filters: oglejte si svoje filtre read:filters: oglejte si svoje filtre
read:follows: oglejte si svoje sledilce read:follows: oglejte si svoje sledilce
read:lists: oglejte si svoje sezname read:lists: oglejte si svoje sezname
read:me: preberi le osnovne podatke računa
read:mutes: oglejte si svoje utišane read:mutes: oglejte si svoje utišane
read:notifications: oglejte si svoja obvestila read:notifications: oglejte si svoja obvestila
read:reports: oglejte si svoje prijave read:reports: oglejte si svoje prijave

View file

@ -174,6 +174,7 @@ sv:
read:filters: se dina filter read:filters: se dina filter
read:follows: se vem du följer read:follows: se vem du följer
read:lists: se dina listor read:lists: se dina listor
read:me: läs endast den grundläggande informationen för ditt konto
read:mutes: se dina tystningar read:mutes: se dina tystningar
read:notifications: se dina notiser read:notifications: se dina notiser
read:reports: se dina rapporter read:reports: se dina rapporter

View file

@ -174,6 +174,7 @@ tr:
read:filters: süzgeçlerinizi görün read:filters: süzgeçlerinizi görün
read:follows: takip ettiklerinizi görün read:follows: takip ettiklerinizi görün
read:lists: listelerinizi 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:mutes: sessize aldıklarınızı görün
read:notifications: bildirimlerinizi görün read:notifications: bildirimlerinizi görün
read:reports: raporlarınızı görün read:reports: raporlarınızı görün

View file

@ -180,6 +180,7 @@ uk:
read:filters: бачити Ваші фільтри read:filters: бачити Ваші фільтри
read:follows: бачити Ваші підписки read:follows: бачити Ваші підписки
read:lists: бачити Ваші списки read:lists: бачити Ваші списки
read:me: читайте лише основну інформацію вашого облікового запису
read:mutes: бачити ваші нехтування read:mutes: бачити ваші нехтування
read:notifications: бачити Ваші сповіщення read:notifications: бачити Ваші сповіщення
read:reports: бачити Ваші скарги read:reports: бачити Ваші скарги

View file

@ -174,6 +174,7 @@ vi:
read:filters: xem bộ lọc read:filters: xem bộ lọc
read:follows: xem những người theo dõi read:follows: xem những người theo dõi
read:lists: xem danh sách 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:mutes: xem những người đã ẩn
read:notifications: xem thông báo read:notifications: xem thông báo
read:reports: xem báo cáo của bạn read:reports: xem báo cáo của bạn

View file

@ -174,6 +174,7 @@ zh-CN:
read:filters: 查看你的过滤器 read:filters: 查看你的过滤器
read:follows: 查看你的关注 read:follows: 查看你的关注
read:lists: 查看你的列表 read:lists: 查看你的列表
read:me: 只读取你账户的基本信息
read:mutes: 查看你的隐藏列表 read:mutes: 查看你的隐藏列表
read:notifications: 查看你的通知 read:notifications: 查看你的通知
read:reports: 查看你的举报 read:reports: 查看你的举报

View file

@ -174,6 +174,7 @@ zh-HK:
read:filters: 檢視你的過濾條件 read:filters: 檢視你的過濾條件
read:follows: 檢視你關注的人 read:follows: 檢視你關注的人
read:lists: 檢視你的清單 read:lists: 檢視你的清單
read:me: 僅讀取帳號的基本資訊
read:mutes: 檢視被你靜音的人 read:mutes: 檢視被你靜音的人
read:notifications: 檢視你的通知 read:notifications: 檢視你的通知
read:reports: 檢視你的檢舉 read:reports: 檢視你的檢舉

View file

@ -174,6 +174,7 @@ zh-TW:
read:filters: 檢視您的過濾條件 read:filters: 檢視您的過濾條件
read:follows: 檢視您跟隨之使用者 read:follows: 檢視您跟隨之使用者
read:lists: 檢視您的列表 read:lists: 檢視您的列表
read:me: 僅讀取您的帳號基本資訊
read:mutes: 檢視您靜音的人 read:mutes: 檢視您靜音的人
read:notifications: 檢視您的通知 read:notifications: 檢視您的通知
read:reports: 檢視您的檢舉 read:reports: 檢視您的檢舉

View file

@ -74,7 +74,7 @@ eo:
follows: Sekvatoj follows: Sekvatoj
header: Kapa bildo header: Kapa bildo
inbox_url: Enira URL inbox_url: Enira URL
invite_request_text: 가입하려는 이유 invite_request_text: Kialoj por aliĝi
invited_by: Invitita de invited_by: Invitita de
ip: IP ip: IP
joined: Aliĝis joined: Aliĝis
@ -104,7 +104,7 @@ eo:
no_role_assigned: Sen rolo no_role_assigned: Sen rolo
not_subscribed: Ne abonita not_subscribed: Ne abonita
pending: Pritraktata recenzo pending: Pritraktata recenzo
perform_full_suspension: Suspendi perform_full_suspension: Haltigi
previous_strikes: Antaǔaj admonoj previous_strikes: Antaǔaj admonoj
previous_strikes_description_html: previous_strikes_description_html:
one: Ĉi tiu konto havas <strong>unu</strong> admonon. 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. 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_avatar: Forigi la profilbildon
remove_header: Forigi kapan bildon 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 removed_header_msg: Kapbildo de %{username} suksece forigita
resend_confirmation: resend_confirmation:
already_confirmed: Ĉi tiu uzanto jam estas konfirmita already_confirmed: Ĉi tiu uzanto jam estas konfirmita
@ -184,7 +184,7 @@ eo:
create_domain_block: Krei Blokadon De Domajno create_domain_block: Krei Blokadon De Domajno
create_email_domain_block: Krei Blokadon De Retpoŝta Domajno create_email_domain_block: Krei Blokadon De Retpoŝta Domajno
create_ip_block: Krei IP-regulon create_ip_block: Krei IP-regulon
create_unavailable_domain: Krei nehaveblan domajnon create_unavailable_domain: Krei Nehaveblan Domajnon
create_user_role: Krei Rolon create_user_role: Krei Rolon
demote_user: Malpromocii Uzanton demote_user: Malpromocii Uzanton
destroy_announcement: Forigi Anoncon destroy_announcement: Forigi Anoncon
@ -193,9 +193,9 @@ eo:
destroy_domain_allow: Forigi Domajnan Permeson destroy_domain_allow: Forigi Domajnan Permeson
destroy_domain_block: Forigi blokadon de domajno destroy_domain_block: Forigi blokadon de domajno
destroy_email_domain_block: Forigi blokadon de retpoŝta 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_ip_block: Forigi IP-regulon
destroy_status: Forigi mesaĝon destroy_status: Forigi Afiŝon
destroy_unavailable_domain: Forigi Nehaveblan Domajnon destroy_unavailable_domain: Forigi Nehaveblan Domajnon
destroy_user_role: Detrui Rolon destroy_user_role: Detrui Rolon
disable_2fa_user: Malebligi 2FA disable_2fa_user: Malebligi 2FA
@ -285,7 +285,7 @@ eo:
update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}" update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}"
update_domain_block_html: "%{name} ĝisdatigis domajnblokon por %{target}" update_domain_block_html: "%{name} ĝisdatigis domajnblokon por %{target}"
update_ip_block_html: "%{name} ŝanĝis regulon por IP %{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}" update_user_role_html: "%{name} ŝanĝis la rolon %{target}"
deleted_account: forigita konto deleted_account: forigita konto
empty: Neniu ĵurnalo trovita. empty: Neniu ĵurnalo trovita.
@ -567,7 +567,7 @@ eo:
disable: Malebligi disable: Malebligi
disabled: Malebligita disabled: Malebligita
enable: Ebligi 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 enabled: Ebligita
inbox_url: URL de la ripetilo inbox_url: URL de la ripetilo
pending: Atendante aprobon de la ripetilo pending: Atendante aprobon de la ripetilo
@ -587,7 +587,7 @@ eo:
action_log: Ĵurnalo de revizo action_log: Ĵurnalo de revizo
action_taken_by: Ago farita de action_taken_by: Ago farita de
actions: 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. 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. 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. resolve_description_html: Nenio okazotas al la raportita konto kaj la raporto fermotas.
@ -634,7 +634,7 @@ eo:
resolved: Solvitaj resolved: Solvitaj
resolved_msg: Signalo sukcese solvita! resolved_msg: Signalo sukcese solvita!
skip_to_actions: Salti al agoj skip_to_actions: Salti al agoj
status: Mesaĝoj status: Afiŝo
statuses: Raportita enhavo statuses: Raportita enhavo
statuses_description_html: Sentema enhavo referencitas kun la raportita konto statuses_description_html: Sentema enhavo referencitas kun la raportita konto
summary: summary:
@ -787,6 +787,7 @@ eo:
types: types:
major: Ĉefa eldono major: Ĉefa eldono
minor: Neĉefa eldono minor: Neĉefa eldono
version: Versio
statuses: statuses:
account: Skribanto account: Skribanto
application: Aplikaĵo application: Aplikaĵo
@ -803,12 +804,12 @@ eo:
media: media:
title: Aŭdovidaĵoj title: Aŭdovidaĵoj
metadata: Metadatumoj 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 open: Malfermi afiŝojn
original_status: Originala afiŝo original_status: Originala afiŝo
reblogs: Reblogaĵoj reblogs: Reblogaĵoj
status_changed: Afiŝo ŝanĝiĝis status_changed: Afiŝo ŝanĝiĝis
title: Mesaĝoj de la konto title: Afiŝoj de la konto
trending: Popularaĵoj trending: Popularaĵoj
visibility: Videbleco visibility: Videbleco
with_media: Kun aŭdovidaĵoj with_media: Kun aŭdovidaĵoj
@ -816,7 +817,7 @@ eo:
actions: actions:
delete_statuses: "%{name} forigis afiŝojn de %{target}" delete_statuses: "%{name} forigis afiŝojn de %{target}"
disable: "%{name} frostigis la konton 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}" none: "%{name} sendis averton al %{target}"
sensitive: "%{name} markis konton de %{target} kiel sentema" sensitive: "%{name} markis konton de %{target} kiel sentema"
silence: "%{name} limigis la konton de %{target}" silence: "%{name} limigis la konton de %{target}"
@ -827,6 +828,8 @@ eo:
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite 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: elasticsearch_running_check:
message_html: Ne eblas konekti Elasticsearch. Bonvolu kontroli ke ĝi funkcias, aǔ malŝaltu plentekstan serĉon message_html: Ne eblas konekti Elasticsearch. Bonvolu kontroli ke ĝi funkcias, aǔ malŝaltu plentekstan serĉon
elasticsearch_version_check: elasticsearch_version_check:
@ -940,7 +943,7 @@ eo:
admin_mailer: admin_mailer:
new_appeal: new_appeal:
actions: actions:
delete_statuses: por forigi iliajn mesaĝojn delete_statuses: por forigi iliajn afiŝojn
disable: por frostigi ties konton disable: por frostigi ties konton
mark_statuses_as_sensitive: por marki iliajn mesaĝojn kiel sentemaj mark_statuses_as_sensitive: por marki iliajn mesaĝojn kiel sentemaj
none: averto none: averto
@ -991,7 +994,7 @@ eo:
unsubscribe: Malabonu unsubscribe: Malabonu
view: 'Vidi:' view: 'Vidi:'
view_profile: Vidi profilon view_profile: Vidi profilon
view_status: Vidi mesaĝon view_status: Vidi afiŝon
applications: applications:
created: Aplikaĵo sukcese kreita created: Aplikaĵo sukcese kreita
destroyed: Aplikaĵo sukcese forigita destroyed: Aplikaĵo sukcese forigita
@ -1131,7 +1134,7 @@ eo:
recipient: Senditas por recipient: Senditas por
reject_appeal: Malakcepti apelacion reject_appeal: Malakcepti apelacion
status: 'Afiŝo #%{id}' 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: "%{action} de %{date}"
title_actions: title_actions:
delete_statuses: Forigo de afiŝo delete_statuses: Forigo de afiŝo
@ -1199,8 +1202,8 @@ eo:
edit: edit:
add_keyword: Aldoni ĉefvorton add_keyword: Aldoni ĉefvorton
keywords: Ĉefvortoj keywords: Ĉefvortoj
statuses: Individuaj mesaĝoj statuses: Individuaj afiŝoj
statuses_hint_html: Ĉi tiu filtrilo kongruas kelkajn mesaĝojn. <a href="%{path}">Kontrolu mesaĝojn de la filtrilo</a>. statuses_hint_html: Ĉi tiu filtrilo kongruas kelkajn afiŝojn. <a href="%{path}">Kontroli afiŝojn de la filtrilo</a>.
title: Ŝanĝi filtrilojn title: Ŝanĝi filtrilojn
errors: errors:
deprecated_api_multiple_keywords: Ĉi tiuj parametroj ne povas ŝanĝitis de ĉi tiu programaro. Uzu pli novan programaron. 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" one: "%{count} afiŝo"
other: "%{count} afiŝoj" other: "%{count} afiŝoj"
statuses_long: statuses_long:
one: "%{count} mesaĝo kaŝita" one: "%{count} afiŝo estas kaŝita"
other: "%{count} mesaĝoj kaŝita" other: "%{count} afiŝoj estas kaŝitaj"
title: Filtriloj title: Filtriloj
new: new:
save: Konservi novan filtrilon save: Konservi novan filtrilon
@ -1230,7 +1233,7 @@ eo:
remove: Forigi de filtrilo remove: Forigi de filtrilo
index: index:
hint: Ĉi tiu filtrilo kongruas kelkaj mesaĝoj sendepende de aliaj kriterioj. hint: Ĉi tiu filtrilo kongruas kelkaj mesaĝoj sendepende de aliaj kriterioj.
title: Filtritaj mesaĝoj title: Filtritaj afiŝoj
generic: generic:
all: Ĉio all: Ĉio
all_items_on_page_selected_html: 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. 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: Konservi rektajn mesaĝojn
keep_direct_hint: Ne forigos viajn rektajn mesagôjn 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_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_pinned_hint: Ne forigi viajn ajn alpinglitajn mesaĝojn
keep_polls: Konservi enketojn keep_polls: Konservi enketojn
keep_polls_hint: Ne forigi viajn ajn 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_bookmark_hint: Ne forigi viajn siajn mesaĝojn se vi legsignis ilin
keep_self_fav: Konservi mesaĝojn kiujn vi stelumis keep_self_fav: Konservi afiŝojn kiujn vi stelumis
keep_self_fav_hint: Ne forigi proprajn mesaĝojn se vi stelumis ilin keep_self_fav_hint: Ne forigi proprajn afiŝojn se vi stelumis ilin
min_age: min_age:
'1209600': 2 semajnoj '1209600': 2 semajnoj
'15778476': 6 monatoj '15778476': 6 monatoj
@ -1664,7 +1667,7 @@ eo:
'63113904': 2 jaroj '63113904': 2 jaroj
'7889238': 3 monatoj '7889238': 3 monatoj
min_age_label: Aĝlimo 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_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: 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 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. 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. suspend: Vi ne povas uzi vian konton plu, kaj via profilo kaj aliaj datumoj ne estas disponeblaj plu.
reason: 'Kialo:' reason: 'Kialo:'
statuses: 'Mesaĝoj ripetitaj:' statuses: 'Afiŝoj citataj:'
subject: subject:
delete_statuses: Viaj mesaĝoj ĉe %{acct} forigitas delete_statuses: Viaj afiŝoj ĉe %{acct} estas forigitaj
disable: Via konto %{acct} estas frostigita 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} none: Averto por %{acct}
sensitive: Viaj mesaĝoj ĉe %{acct} markitas kiel sentemaj malantau ol nun sensitive: Viaj mesaĝoj ĉe %{acct} markitas kiel sentemaj malantau ol nun
silence: Oni limigis vian konton %{acct} silence: Oni limigis vian konton %{acct}

View file

@ -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. 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 last_active: ultime activitate
link_verified_on: Le proprietate de iste ligamine ha essite verificate le %{date} 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: posts:
one: Message one: Message
other: Messages other: Messages
posts_tab_heading: Messages posts_tab_heading: Messages
admin: admin:
account_actions:
action: Exequer action
title: Exequer action de moderation sur %{acct}
account_moderation_notes: account_moderation_notes:
create: Lassar un nota create: Lassar un nota
created_msg: Nota de moderation create con successo! created_msg: Nota de moderation create con successo!
destroyed_msg: Nota de moderation destruite con successo!
accounts: accounts:
add_email_domain_block: Blocar dominio de e-mail 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? are_you_sure: Es tu secur?
avatar: Avatar
by_domain: Dominio by_domain: Dominio
change_email: change_email:
changed_msg: Email cambiate con successo! changed_msg: Email cambiate con successo!
@ -34,6 +44,11 @@ ia:
new_email: Nove e-mail new_email: Nove e-mail
submit: Cambiar e-mail submit: Cambiar e-mail
title: Cambiar e-mail pro %{username} 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 confirm: Confirmar
confirmed: Confirmate confirmed: Confirmate
confirming: In confirmation confirming: In confirmation
@ -42,25 +57,59 @@ ia:
deleted: Delite deleted: Delite
demote: Degradar demote: Degradar
destroyed_msg: Le datos de %{username} ora es in cauda pro su imminente deletion 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 disable_two_factor_authentication: Disactivar 2FA
disabled: Gelate
display_name: Nomine visibile display_name: Nomine visibile
domain: Dominio domain: Dominio
edit: Modificar edit: Modificar
email: E-mail email: E-mail
email_status: Stato de 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: Activate
enabled_msg: Conto de %{username} disgelate con successo
followers: Sequitores 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: location:
all: Toto all: Toto
local: Local
remote: Remote
title: Location 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: moderation:
active: Active active: Active
all: Toto all: Toto
disabled: Disactivate disabled: Disactivate
pending: In tractamento
silenced: Limitate
suspended: Suspendite
title: Moderation
moderation_notes: Notas de moderation moderation_notes: Notas de moderation
most_recent_activity: Activitate plus recente most_recent_activity: Activitate plus recente
most_recent_ip: IP 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 public: Public
push_subscription_expires: Subscription PuSH expira le
redownload: Actualisar profilo redownload: Actualisar profilo
resend_confirmation: resend_confirmation:
already_confirmed: Iste usator jam es confirmate already_confirmed: Iste usator jam es confirmate
@ -237,6 +286,9 @@ ia:
updated_at: Actualisate updated_at: Actualisate
view_profile: Vider profilo view_profile: Vider profilo
roles: roles:
assigned_users:
one: "%{count} usator"
other: "%{count} usatores"
everyone: Permissiones predefinite everyone: Permissiones predefinite
privileges: privileges:
delete_user_data: Deler le datos de usator delete_user_data: Deler le datos de usator

View file

@ -1671,6 +1671,9 @@ pt-BR:
domain_block: Suspensão do servidor (%{target_name}) domain_block: Suspensão do servidor (%{target_name})
user_domain_block: Você bloqueou %{target_name} user_domain_block: Você bloqueou %{target_name}
lost_followers: Seguidores perdidos 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 type: Evento
statuses: statuses:
attached: attached:
@ -1765,6 +1768,7 @@ pt-BR:
contrast: Mastodon (Alto contraste) contrast: Mastodon (Alto contraste)
default: Mastodon (Noturno) default: Mastodon (Noturno)
mastodon-light: Mastodon (Diurno) mastodon-light: Mastodon (Diurno)
system: Automático (usar tema do sistema)
time: time:
formats: formats:
default: "%H:%M em %d de %b de %Y" default: "%H:%M em %d de %b de %Y"

View file

@ -30,6 +30,7 @@ ia:
defaults: defaults:
autofollow: Invitar a sequer tu conto autofollow: Invitar a sequer tu conto
avatar: Pictura de profilo avatar: Pictura de profilo
chosen_languages: Filtrar linguas
confirm_new_password: Confirmar nove contrasigno confirm_new_password: Confirmar nove contrasigno
confirm_password: Confirmar contrasigno confirm_password: Confirmar contrasigno
current_password: Contrasigno actual current_password: Contrasigno actual
@ -39,6 +40,7 @@ ia:
new_password: Nove contrasigno new_password: Nove contrasigno
password: Contrasigno password: Contrasigno
setting_advanced_layout: Activar le interfacie web avantiate 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_default_language: Lingua de publication
setting_display_media_default: Predefinite setting_display_media_default: Predefinite
setting_display_media_hide_all: Celar toto setting_display_media_hide_all: Celar toto

View file

@ -116,6 +116,7 @@ pt-BR:
sign_up_requires_approval: Novas inscrições exigirão sua aprovação sign_up_requires_approval: Novas inscrições exigirão sua aprovação
severity: Escolha o que acontecerá com as solicitações deste IP severity: Escolha o que acontecerá com as solicitações deste IP
rule: 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. text: Descreva uma regra ou requisito para os usuários neste servidor. Tente mantê-la curta e simples.
sessions: sessions:
otp: 'Digite o código de dois fatores gerado pelo aplicativo no seu celular ou use um dos códigos de recuperação:' otp: 'Digite o código de dois fatores gerado pelo aplicativo no seu celular ou use um dos códigos de recuperação:'

View file

@ -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

View file

@ -1031,8 +1031,8 @@ ActiveRecord::Schema[7.1].define(version: 2024_03_22_161611) do
create_table "status_pins", force: :cascade do |t| create_table "status_pins", force: :cascade do |t|
t.bigint "account_id", null: false t.bigint "account_id", null: false
t.bigint "status_id", null: false t.bigint "status_id", null: false
t.datetime "created_at", precision: nil, default: -> { "now()" }, null: false t.datetime "created_at", precision: nil, null: false
t.datetime "updated_at", precision: nil, default: -> { "now()" }, 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 ["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" t.index ["status_id"], name: "index_status_pins_on_status_id"
end end