Merge commit '9d5e10a70e006c1c0bc61e7f591b1078c7be6ab4' into glitch-soc/merge-upstream

This commit is contained in:
Claire 2026-03-26 18:23:45 +01:00
commit 2ac493ee8e
155 changed files with 1849 additions and 872 deletions

View File

@ -12,29 +12,29 @@ GEM
specs:
action_text-trix (2.1.17)
railties
actioncable (8.1.2.1)
actionpack (= 8.1.2.1)
activesupport (= 8.1.2.1)
actioncable (8.1.3)
actionpack (= 8.1.3)
activesupport (= 8.1.3)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (8.1.2.1)
actionpack (= 8.1.2.1)
activejob (= 8.1.2.1)
activerecord (= 8.1.2.1)
activestorage (= 8.1.2.1)
activesupport (= 8.1.2.1)
actionmailbox (8.1.3)
actionpack (= 8.1.3)
activejob (= 8.1.3)
activerecord (= 8.1.3)
activestorage (= 8.1.3)
activesupport (= 8.1.3)
mail (>= 2.8.0)
actionmailer (8.1.2.1)
actionpack (= 8.1.2.1)
actionview (= 8.1.2.1)
activejob (= 8.1.2.1)
activesupport (= 8.1.2.1)
actionmailer (8.1.3)
actionpack (= 8.1.3)
actionview (= 8.1.3)
activejob (= 8.1.3)
activesupport (= 8.1.3)
mail (>= 2.8.0)
rails-dom-testing (~> 2.2)
actionpack (8.1.2.1)
actionview (= 8.1.2.1)
activesupport (= 8.1.2.1)
actionpack (8.1.3)
actionview (= 8.1.3)
activesupport (= 8.1.3)
nokogiri (>= 1.8.5)
rack (>= 2.2.4)
rack-session (>= 1.0.1)
@ -42,16 +42,16 @@ GEM
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
useragent (~> 0.16)
actiontext (8.1.2.1)
actiontext (8.1.3)
action_text-trix (~> 2.1.15)
actionpack (= 8.1.2.1)
activerecord (= 8.1.2.1)
activestorage (= 8.1.2.1)
activesupport (= 8.1.2.1)
actionpack (= 8.1.3)
activerecord (= 8.1.3)
activestorage (= 8.1.3)
activesupport (= 8.1.3)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (8.1.2.1)
activesupport (= 8.1.2.1)
actionview (8.1.3)
activesupport (= 8.1.3)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
@ -61,22 +61,22 @@ GEM
activemodel (>= 4.1)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (8.1.2.1)
activesupport (= 8.1.2.1)
activejob (8.1.3)
activesupport (= 8.1.3)
globalid (>= 0.3.6)
activemodel (8.1.2.1)
activesupport (= 8.1.2.1)
activerecord (8.1.2.1)
activemodel (= 8.1.2.1)
activesupport (= 8.1.2.1)
activemodel (8.1.3)
activesupport (= 8.1.3)
activerecord (8.1.3)
activemodel (= 8.1.3)
activesupport (= 8.1.3)
timeout (>= 0.4.0)
activestorage (8.1.2.1)
actionpack (= 8.1.2.1)
activejob (= 8.1.2.1)
activerecord (= 8.1.2.1)
activesupport (= 8.1.2.1)
activestorage (8.1.3)
actionpack (= 8.1.3)
activejob (= 8.1.3)
activerecord (= 8.1.3)
activesupport (= 8.1.3)
marcel (~> 1.0)
activesupport (8.1.2.1)
activesupport (8.1.3)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
@ -354,7 +354,7 @@ GEM
azure-blob (~> 0.5.2)
hashie (~> 5.0)
jmespath (1.6.2)
json (2.19.2)
json (2.19.3)
json-canonicalization (1.0.0)
json-jwt (1.17.0)
activesupport (>= 4.2)
@ -657,20 +657,20 @@ GEM
rack (>= 1.3)
rackup (2.3.1)
rack (>= 3)
rails (8.1.2.1)
actioncable (= 8.1.2.1)
actionmailbox (= 8.1.2.1)
actionmailer (= 8.1.2.1)
actionpack (= 8.1.2.1)
actiontext (= 8.1.2.1)
actionview (= 8.1.2.1)
activejob (= 8.1.2.1)
activemodel (= 8.1.2.1)
activerecord (= 8.1.2.1)
activestorage (= 8.1.2.1)
activesupport (= 8.1.2.1)
rails (8.1.3)
actioncable (= 8.1.3)
actionmailbox (= 8.1.3)
actionmailer (= 8.1.3)
actionpack (= 8.1.3)
actiontext (= 8.1.3)
actionview (= 8.1.3)
activejob (= 8.1.3)
activemodel (= 8.1.3)
activerecord (= 8.1.3)
activestorage (= 8.1.3)
activesupport (= 8.1.3)
bundler (>= 1.15.0)
railties (= 8.1.2.1)
railties (= 8.1.3)
rails-dom-testing (2.3.0)
activesupport (>= 5.0.0)
minitest
@ -681,9 +681,9 @@ GEM
rails-i18n (8.1.0)
i18n (>= 0.7, < 2)
railties (>= 8.0.0, < 9)
railties (8.1.2.1)
actionpack (= 8.1.2.1)
activesupport (= 8.1.2.1)
railties (8.1.3)
actionpack (= 8.1.3)
activesupport (= 8.1.3)
irb (~> 1.13)
rackup (>= 1.0.0)
rake (>= 12.2)

View File

@ -0,0 +1,15 @@
# frozen_string_literal: true
class Api::V1::Instances::TermsOfServiceController < Api::V1::Instances::BaseController
before_action :cache_even_if_authenticated!
def index
@terms_of_service = TermsOfService.current || raise(ActiveRecord::RecordNotFound)
render json: @terms_of_service, serializer: REST::TermsOfServiceSerializer
end
def show
@terms_of_service = TermsOfService.published.find_by!(effective_date: params[:date])
render json: @terms_of_service, serializer: REST::TermsOfServiceSerializer
end
end

View File

@ -1,23 +0,0 @@
# frozen_string_literal: true
class Api::V1::Instances::TermsOfServicesController < Api::V1::Instances::BaseController
before_action :set_terms_of_service
def show
cache_even_if_authenticated!
render json: @terms_of_service, serializer: REST::TermsOfServiceSerializer
end
private
def set_terms_of_service
@terms_of_service = begin
if params[:date].present?
TermsOfService.published.find_by!(effective_date: params[:date])
else
TermsOfService.current
end
end
not_found if @terms_of_service.nil?
end
end

View File

@ -18,23 +18,7 @@ module WellKnown
private
def set_account
username = username_from_resource
@account = begin
if username == Rails.configuration.x.local_domain || username == Rails.configuration.x.web_domain
Account.representative
else
Account.find_local!(username)
end
end
end
def username_from_resource
resource_user = resource_param
username, domain = resource_user.split('@')
resource_user = "#{username}@#{Rails.configuration.x.local_domain}" if Rails.configuration.x.alternate_domains.include?(domain)
WebfingerResource.new(resource_user).username
@account = WebfingerResource.new(resource_param).account
end
def resource_param

View File

@ -4,6 +4,7 @@ module ContextHelper
NAMED_CONTEXT_MAP = {
activitystreams: 'https://www.w3.org/ns/activitystreams',
security: 'https://w3id.org/security/v1',
webfinger: 'https://purl.archive.org/socialweb/webfinger',
}.freeze
CONTEXT_EXTENSION_MAP = {

View File

@ -95,7 +95,7 @@ export const Avatar: React.FC<Props> = ({
};
export const AvatarById: React.FC<
{ accountId: string } & Omit<Props, 'account'>
{ accountId: string | undefined } & Omit<Props, 'account'>
> = ({ accountId, ...otherProps }) => {
const account = useAccount(accountId);
return <Avatar account={account} {...otherProps} />;

View File

@ -31,7 +31,7 @@ export const Badge: FC<BadgeProps> = ({
data-account-role-id={roleId}
>
{icon}
{label}
<span>{label}</span>
{domain && <span className='account-role__domain'>{domain}</span>}
</div>
);

View File

@ -6,10 +6,11 @@ import { Skeleton } from '../skeleton';
import type { DisplayNameProps } from './index';
import { DisplayNameWithoutDomain } from './no-domain';
export const DisplayNameDefault: FC<
Omit<DisplayNameProps, 'variant'> & ComponentPropsWithoutRef<'span'>
> = ({ account, localDomain, className, ...props }) => {
const username = useMemo(() => {
export function useAccountHandle(
account: DisplayNameProps['account'],
localDomain: DisplayNameProps['localDomain'],
) {
return useMemo(() => {
if (!account) {
return null;
}
@ -20,6 +21,12 @@ export const DisplayNameDefault: FC<
}
return `@${acct}`;
}, [account, localDomain]);
}
export const DisplayNameDefault: FC<
Omit<DisplayNameProps, 'variant'> & ComponentPropsWithoutRef<'span'>
> = ({ account, localDomain, className, ...props }) => {
const username = useAccountHandle(account, localDomain);
return (
<DisplayNameWithoutDomain

View File

@ -6,16 +6,12 @@ import { AuthorLink } from 'mastodon/features/explore/components/author_link';
export const MoreFromAuthor: React.FC<{ accountId: string }> = ({
accountId,
}) => (
<FormattedMessage
id='link_preview.more_from_author'
defaultMessage='More from {name}'
values={{ name: <AuthorLink accountId={accountId} /> }}
>
{(chunks) => (
<div className='more-from-author'>
<IconLogo />
{chunks}
</div>
)}
</FormattedMessage>
<div className='more-from-author'>
<IconLogo />
<FormattedMessage
id='link_preview.more_from_author'
defaultMessage='More from {name}'
values={{ name: <AuthorLink accountId={accountId} /> }}
/>
</div>
);

View File

@ -6,6 +6,7 @@ export const NotSignedInIndicator: React.FC = () => (
<FormattedMessage
id='not_signed_in_indicator.not_signed_in'
defaultMessage='You need to login to access this resource.'
tagName='span'
/>
</div>
</div>

View File

@ -20,6 +20,7 @@ export const RegenerationIndicator: React.FC = () => (
<FormattedMessage
id='regeneration_indicator.please_stand_by'
defaultMessage='Please stand by.'
tagName='span'
/>
</div>
</div>

View File

@ -37,7 +37,11 @@ export const ItemList = forwardRef<
}
>(({ isLoading, emptyMessage, className, children, ...otherProps }, ref) => {
if (!isLoading && Children.count(children) === 0 && emptyMessage) {
return <div className='empty-column-indicator'>{emptyMessage}</div>;
return (
<div className='empty-column-indicator'>
<span>{emptyMessage}</span>
</div>
);
}
return (

View File

@ -385,7 +385,7 @@ class ScrollableList extends PureComponent {
{alwaysPrepend && prepend}
<div className='empty-column-indicator'>
{emptyMessage}
<span>{emptyMessage}</span>
</div>
{footer}

View File

@ -435,7 +435,7 @@ class Status extends ImmutablePureComponent {
prepend = (
<div className='status__prepend'>
<div className='status__prepend__icon'><Icon id='retweet' icon={RepeatIcon} /></div>
<FormattedMessage id='status.reblogged_by' defaultMessage='{name} boosted' values={{ name }} />
<FormattedMessage id='status.reblogged_by' defaultMessage='{name} boosted' values={{ name }} tagName='span' />
</div>
);
@ -447,7 +447,7 @@ class Status extends ImmutablePureComponent {
prepend = (
<div className='status__prepend'>
<div className='status__prepend__icon'><Icon id='at' icon={AlternateEmailIcon} /></div>
<FormattedMessage id='status.direct_indicator' defaultMessage='Private mention' />
<FormattedMessage id='status.direct_indicator' defaultMessage='Private mention' tagName='span' />
</div>
);
} else if (showThread && status.get('in_reply_to_id')) {

View File

@ -51,7 +51,7 @@ export const StatusThreadLabel: React.FC<{
<div className='status__prepend__icon'>
<Icon id='reply' icon={ReplyIcon} />
</div>
{label}
<span>{label}</span>
</div>
);
};

View File

@ -65,5 +65,9 @@ export const EmptyMessage: React.FC<EmptyMessageProps> = ({
);
}
return <div className='empty-column-indicator'>{message}</div>;
return (
<div className='empty-column-indicator'>
<span>{message}</span>
</div>
);
};

View File

@ -154,6 +154,7 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({
key={item.id}
collection={item}
withoutBorder={index === listedCollections.length - 1}
withAuthorHandle={false}
positionInList={index + 1}
listSize={listedCollections.length}
/>

View File

@ -9,6 +9,11 @@
.barWrapper {
border-bottom: none;
padding-inline: 24px;
@container (width < 500px) {
padding-inline: 16px;
}
}
.avatarWrapper {
@ -125,7 +130,7 @@ $button-fallback-breakpoint: $button-breakpoint + 55px;
position: sticky;
bottom: var(--mobile-bottom-nav-height);
padding: 12px 16px;
margin: 0 -20px;
margin: 0 -16px;
@container (width >= #{$button-breakpoint}) {
display: none;
@ -388,7 +393,7 @@ svg.badgeIcon {
padding: 0 24px;
@container (width < 500px) {
padding: 0 12px;
padding: 0 16px;
a {
flex: 1 1 0px;

View File

@ -78,6 +78,7 @@ export const TagSuggestions: FC = () => {
values={{
link: (chunks) => <Link to='/profile/featured_tags'>{chunks}</Link>,
}}
tagName='span'
/>
</Callout>
);
@ -122,6 +123,7 @@ export const TagSuggestions: FC = () => {
/>
),
}}
tagName='span'
/>
</Callout>
);

View File

@ -1,8 +1,9 @@
.wrapper {
display: flex;
align-items: center;
align-items: start;
margin-inline: 24px;
padding-block: 12px;
gap: 16px;
padding-inline: 16px;
&:not(.wrapperWithoutBorder) {
border-bottom: 1px solid var(--color-border-primary);
@ -12,12 +13,42 @@
.content {
position: relative;
flex-grow: 1;
padding-block: 15px;
display: flex;
align-items: center;
column-gap: 12px;
}
.avatarGrid {
position: relative;
display: grid;
grid-template-columns: repeat(2, min-content);
gap: 2px;
&.avatarGridSensitive {
.avatar {
filter: blur(4px);
}
}
}
.avatar {
background: var(--color-bg-brand-softest);
}
.avatarSensitiveBadge {
position: absolute;
inset: 0;
margin: auto;
padding: 3px;
width: 18px;
height: 18px;
border-radius: 8px;
color: var(--color-text-primary);
background: var(--color-bg-warning-softest);
}
.link {
display: block;
margin-bottom: 2px;
font-size: 15px;
font-weight: 500;
text-decoration: none;
@ -40,15 +71,12 @@
color: var(--color-text-secondary);
}
.metaList {
--gap: 0.75ch;
.menuButton {
padding: 4px;
margin-top: -2px;
display: flex;
flex-wrap: wrap;
gap: var(--gap);
& > li:not(:last-child)::after {
content: '·';
margin-inline-start: var(--gap);
svg {
width: 20px;
height: 20px;
}
}

View File

@ -5,70 +5,65 @@ import { FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import { Link } from 'react-router-dom';
import WarningIcon from '@/material-icons/400-24px/warning.svg?react';
import type { ApiCollectionJSON } from 'mastodon/api_types/collections';
import { AvatarById } from 'mastodon/components/avatar';
import { useAccountHandle } from 'mastodon/components/display_name/default';
import { RelativeTimestamp } from 'mastodon/components/relative_timestamp';
import { Article } from 'mastodon/components/scrollable_list/components';
import { useAccount } from 'mastodon/hooks/useAccount';
import { domain } from 'mastodon/initial_state';
import classes from './collection_list_item.module.scss';
import { CollectionMenu } from './collection_menu';
export const CollectionMetaData: React.FC<{
collection: ApiCollectionJSON;
extended?: boolean;
className?: string;
}> = ({ collection, extended, className }) => {
export const AvatarGrid: React.FC<{
accountIds: (string | undefined)[];
sensitive?: boolean;
}> = ({ accountIds: ids, sensitive }) => {
const avatarIds = [ids[0], ids[1], ids[2], ids[3]];
return (
<ul className={classNames(classes.metaList, className)}>
<FormattedMessage
id='collections.account_count'
defaultMessage='{count, plural, one {# account} other {# accounts}}'
values={{ count: collection.item_count }}
tagName='li'
/>
{extended && (
<>
{collection.discoverable ? (
<FormattedMessage
id='collections.visibility_public'
defaultMessage='Public'
tagName='li'
/>
) : (
<FormattedMessage
id='collections.visibility_unlisted'
defaultMessage='Unlisted'
tagName='li'
/>
)}
{collection.sensitive && (
<FormattedMessage
id='collections.sensitive'
defaultMessage='Sensitive'
tagName='li'
/>
)}
</>
<div
className={classNames(
classes.avatarGrid,
sensitive ? classes.avatarGridSensitive : null,
)}
<FormattedMessage
id='collections.last_updated_at'
defaultMessage='Last updated: {date}'
values={{
date: <RelativeTimestamp timestamp={collection.updated_at} long />,
}}
tagName='li'
/>
</ul>
>
{avatarIds.map((id) => (
<AvatarById
animate={false}
key={id}
accountId={id}
className={classes.avatar}
size={25}
/>
))}
{sensitive && <WarningIcon className={classes.avatarSensitiveBadge} />}
</div>
);
};
export const CollectionListItem: React.FC<{
collection: ApiCollectionJSON;
withoutBorder?: boolean;
withAuthorHandle?: boolean;
withTimestamp?: boolean;
positionInList: number;
listSize: number;
}> = ({ collection, withoutBorder, positionInList, listSize }) => {
}> = ({
collection,
withoutBorder,
withAuthorHandle = true,
withTimestamp,
positionInList,
listSize,
}) => {
const { id, name } = collection;
const linkId = useId();
const uniqueId = useId();
const linkId = `${uniqueId}-link`;
const infoId = `${uniqueId}-info`;
const authorAccount = useAccount(collection.account_id);
const authorHandle = useAccountHandle(authorAccount, domain);
return (
<Article
@ -78,19 +73,67 @@ export const CollectionListItem: React.FC<{
withoutBorder && classes.wrapperWithoutBorder,
)}
aria-labelledby={linkId}
aria-describedby={infoId}
aria-posinset={positionInList}
aria-setsize={listSize}
>
<div className={classes.content}>
<h2 id={linkId}>
<Link to={`/collections/${id}`} className={classes.link}>
{name}
</Link>
</h2>
<CollectionMetaData collection={collection} className={classes.info} />
<AvatarGrid
accountIds={collection.items.map((item) => item.account_id)}
sensitive={collection.sensitive}
/>
<div>
<h2 id={linkId}>
<Link to={`/collections/${id}`} className={classes.link}>
{name}
</Link>
</h2>
<ul className={classes.info} id={infoId}>
{collection.sensitive && (
<li className='sr-only'>
<FormattedMessage
id='collections.sensitive'
defaultMessage='Sensitive'
/>
</li>
)}
{withAuthorHandle && authorAccount && (
<FormattedMessage
id='collections.by_account'
defaultMessage='by {account_handle}'
values={{
account_handle: authorHandle,
}}
tagName='li'
/>
)}
<FormattedMessage
id='collections.account_count'
defaultMessage='{count, plural, one {# account} other {# accounts}}'
values={{ count: collection.item_count }}
tagName='li'
/>
{withTimestamp && (
<FormattedMessage
id='collections.last_updated_at'
defaultMessage='Last updated: {date}'
values={{
date: (
<RelativeTimestamp timestamp={collection.updated_at} long />
),
}}
tagName='li'
/>
)}
</ul>
</div>
</div>
<CollectionMenu context='list' collection={collection} />
<CollectionMenu
context='list'
collection={collection}
className={classes.menuButton}
/>
</Article>
);
};

View File

@ -6,6 +6,7 @@ import { Helmet } from 'react-helmet';
import { useHistory, useLocation, useParams } from 'react-router';
import { openModal } from '@/mastodon/actions/modal';
import { RelativeTimestamp } from '@/mastodon/components/relative_timestamp';
import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';
import ShareIcon from '@/material-icons/400-24px/share.svg?react';
import type { ApiCollectionJSON } from 'mastodon/api_types/collections';
@ -25,7 +26,6 @@ import { fetchCollection } from 'mastodon/reducers/slices/collections';
import { useAppDispatch, useAppSelector } from 'mastodon/store';
import { CollectionAccountsList } from './accounts_list';
import { CollectionMetaData } from './collection_list_item';
import { CollectionMenu } from './collection_menu';
import classes from './styles.module.scss';
@ -40,6 +40,54 @@ const messages = defineMessages({
},
});
const CollectionMetaData: React.FC<{
collection: ApiCollectionJSON;
extended?: boolean;
}> = ({ collection, extended }) => {
return (
<ul className={classes.metaList}>
<FormattedMessage
id='collections.account_count'
defaultMessage='{count, plural, one {# account} other {# accounts}}'
values={{ count: collection.item_count }}
tagName='li'
/>
{extended && (
<>
{collection.discoverable ? (
<FormattedMessage
id='collections.visibility_public'
defaultMessage='Public'
tagName='li'
/>
) : (
<FormattedMessage
id='collections.visibility_unlisted'
defaultMessage='Unlisted'
tagName='li'
/>
)}
{collection.sensitive && (
<FormattedMessage
id='collections.sensitive'
defaultMessage='Sensitive'
tagName='li'
/>
)}
</>
)}
<FormattedMessage
id='collections.last_updated_at'
defaultMessage='Last updated: {date}'
values={{
date: <RelativeTimestamp timestamp={collection.updated_at} long />,
}}
tagName='li'
/>
</ul>
);
};
export const AuthorNote: React.FC<{ id: string; previewMode?: boolean }> = ({
id,
// When previewMode is enabled, your own display name
@ -137,7 +185,6 @@ const CollectionHeader: React.FC<{ collection: ApiCollectionJSON }> = ({
<CollectionMetaData
extended={account_id === me}
collection={collection}
className={classes.metaData}
/>
</div>
);

View File

@ -52,9 +52,19 @@
font-size: 13px;
}
.metaData {
.metaList {
--gap: 0.75ch;
display: flex;
flex-wrap: wrap;
margin-top: 16px;
gap: var(--gap);
font-size: 15px;
& > li:not(:last-child)::after {
content: '·';
margin-inline-start: var(--gap);
}
}
.columnSubheading {

View File

@ -47,6 +47,7 @@ export const Collections: React.FC<{
<FormattedMessage
id='collections.error_loading_collections'
defaultMessage='There was an error when trying to load your collections.'
tagName='span'
/>
) : (
<>
@ -92,6 +93,8 @@ export const Collections: React.FC<{
<ItemList emptyMessage={emptyMessage} isLoading={status === 'loading'}>
{collections.map((item, index) => (
<CollectionListItem
withTimestamp
withAuthorHandle={false}
key={item.id}
collection={item}
positionInList={index + 1}

View File

@ -30,17 +30,19 @@ export const UploadProgress: React.FC<UploadProgressProps> = ({
<Icon id='upload' icon={UploadFileIcon} />
<div className='upload-progress__message'>
{isProcessing ? (
<FormattedMessage
id='upload_progress.processing'
defaultMessage='Processing…'
/>
) : (
<FormattedMessage
id='upload_progress.label'
defaultMessage='Uploading…'
/>
)}
<span>
{isProcessing ? (
<FormattedMessage
id='upload_progress.processing'
defaultMessage='Processing…'
/>
) : (
<FormattedMessage
id='upload_progress.label'
defaultMessage='Uploading…'
/>
)}
</span>
<div className='upload-progress__backdrop'>
<animated.div className='upload-progress__tracker' style={styles} />

View File

@ -47,7 +47,7 @@ class Links extends PureComponent {
return (
<div className='explore__links scrollable scrollable--flex'>
<div className='empty-column-indicator'>
<FormattedMessage id='empty_column.explore_statuses' defaultMessage='Nothing is trending right now. Check back later!' />
<FormattedMessage id='empty_column.explore_statuses' defaultMessage='Nothing is trending right now. Check back later!' tagName='span' />
</div>
</div>
);

View File

@ -45,7 +45,7 @@ class Suggestions extends PureComponent {
return (
<div className='explore__suggestions scrollable scrollable--flex'>
<div className='empty-column-indicator'>
<FormattedMessage id='empty_column.explore_statuses' defaultMessage='Nothing is trending right now. Check back later!' />
<FormattedMessage id='empty_column.explore_statuses' defaultMessage='Nothing is trending right now. Check back later!' tagName='span' />
</div>
</div>
);

View File

@ -46,7 +46,7 @@ class Tags extends PureComponent {
return (
<div className='explore__links scrollable scrollable--flex'>
<div className='empty-column-indicator'>
<FormattedMessage id='empty_column.explore_statuses' defaultMessage='Nothing is trending right now. Check back later!' />
<FormattedMessage id='empty_column.explore_statuses' defaultMessage='Nothing is trending right now. Check back later!' tagName='span' />
</div>
</div>
);

View File

@ -63,6 +63,7 @@ const Followers: FC = () => {
<FormattedMessage
id='followers.hide_other_followers'
defaultMessage='This user has chosen to not make their other followers visible'
tagName='span'
/>
</div>
);

View File

@ -65,6 +65,7 @@ const Followers: FC = () => {
<FormattedMessage
id='following.hide_other_following'
defaultMessage='This user has chosen to not make the rest of who they follow visible'
tagName='span'
/>
</div>
);

View File

@ -115,7 +115,7 @@ const Source: React.FC<{ id: ApiSuggestionSourceJSON }> = ({ id }) => {
title={hint}
>
<Icon id='' icon={InfoIcon} />
{label}
<span>{label}</span>
</div>
);
};

View File

@ -285,6 +285,7 @@ const ListMembers: React.FC<{
<FormattedMessage
id='lists.no_results_found'
defaultMessage='No results found.'
tagName='span'
/>
)
}

View File

@ -126,7 +126,7 @@ export const NotificationGroupWithStatus: React.FC<{
</div>
<div className='notification-group__main__header__label'>
{label}
<span>{label}</span>
{timestamp && (
<>
<span className='notification-group__main__header__label-separator'>

View File

@ -194,6 +194,7 @@ const Comment: React.FC<Props> = ({
id='report.forward'
defaultMessage='Forward to {target}'
values={{ target: domain }}
tagName='span'
/>
</label>
))}

View File

@ -406,6 +406,7 @@ export const DetailedStatus: React.FC<{
<FormattedMessage
id='status.direct_indicator'
defaultMessage='Private mention'
tagName='span'
/>
</div>
)}

View File

@ -141,8 +141,8 @@
"account.unmute": "Не ігнараваць @{name}",
"account.unmute_notifications_short": "Апавяшчаць",
"account.unmute_short": "Не ігнараваць",
"account_edit.bio.add_label": "Апісаць сябе",
"account_edit.bio.edit_label": "Змяніць апісанне",
"account_edit.bio.label": "хто я",
"account_edit.bio.placeholder": "Коратка апішыце сябе, каб дапамагчы іншым пазнаць Вас.",
"account_edit.bio.title": "Хто я",
"account_edit.bio_modal.add_title": "Апісаць сябе",

View File

@ -141,8 +141,8 @@
"account.unmute": "Vis @{name} igen",
"account.unmute_notifications_short": "Vis notifikationer igen",
"account.unmute_short": "Vis igen",
"account_edit.bio.add_label": "Tilføj bio",
"account_edit.bio.edit_label": "Rediger bio",
"account_edit.bio.label": "bio",
"account_edit.bio.placeholder": "Tilføj en kort introduktion, så andre kan få et indtryk af, hvem du er.",
"account_edit.bio.title": "Bio",
"account_edit.bio_modal.add_title": "Tilføj bio",

View File

@ -141,8 +141,8 @@
"account.unmute": "Stummschaltung von @{name} aufheben",
"account.unmute_notifications_short": "Stummschaltung der Benachrichtigungen aufheben",
"account.unmute_short": "Stummschaltung aufheben",
"account_edit.bio.add_label": "Biografie hinzufügen",
"account_edit.bio.edit_label": "Biografie bearbeiten",
"account_edit.bio.label": "Biografie",
"account_edit.bio.placeholder": "Gib anderen einen Einblick über dich, damit sie wissen, wer du bist.",
"account_edit.bio.title": "Über mich",
"account_edit.bio_modal.add_title": "Biografie hinzufügen",

View File

@ -141,8 +141,8 @@
"account.unmute": "Άρση σίγασης @{name}",
"account.unmute_notifications_short": "Σίγαση ειδοποιήσεων",
"account.unmute_short": "Κατάργηση σίγασης",
"account_edit.bio.add_label": "Προσθήκη βιογραφικού",
"account_edit.bio.edit_label": "Επεξεργασία βιογραφικού",
"account_edit.bio.label": "βιογραφικό",
"account_edit.bio.placeholder": "Προσθέστε μια σύντομη εισαγωγή για να βοηθήσετε άλλους να σας αναγνωρίσουν.",
"account_edit.bio.title": "Βιογραφικό",
"account_edit.bio_modal.add_title": "Προσθήκη βιογραφικού",

View File

@ -359,6 +359,7 @@
"collections.account_count": "{count, plural, one {# account} other {# accounts}}",
"collections.accounts.empty_description": "Add up to {count} accounts you follow",
"collections.accounts.empty_title": "This collection is empty",
"collections.by_account": "by {account_handle}",
"collections.collection_description": "Description",
"collections.collection_language": "Language",
"collections.collection_language_none": "None",

View File

@ -141,8 +141,8 @@
"account.unmute": "Dejar de silenciar a @{name}",
"account.unmute_notifications_short": "Dejar de silenciar notificaciones",
"account.unmute_short": "Dejar de silenciar",
"account_edit.bio.add_label": "Agregar biografía",
"account_edit.bio.edit_label": "Editar biografía",
"account_edit.bio.label": "biografía",
"account_edit.bio.placeholder": "Agregá una breve introducción para ayudar a otras personas a identificarte.",
"account_edit.bio.title": "Biografía",
"account_edit.bio_modal.add_title": "Agregar biografía",

View File

@ -141,8 +141,8 @@
"account.unmute": "Dejar de silenciar a @{name}",
"account.unmute_notifications_short": "Dejar de silenciar notificaciones",
"account.unmute_short": "Dejar de silenciar",
"account_edit.bio.add_label": "Añadir biografía",
"account_edit.bio.edit_label": "Editar biografía",
"account_edit.bio.label": "biografía",
"account_edit.bio.placeholder": "Añade una breve introducción para ayudar a los demás a identificarte.",
"account_edit.bio.title": "Biografía",
"account_edit.bio_modal.add_title": "Añadir biografía",

View File

@ -141,27 +141,39 @@
"account.unmute": "Dejar de silenciar a @{name}",
"account.unmute_notifications_short": "Dejar de silenciar notificaciones",
"account.unmute_short": "Dejar de silenciar",
"account_edit.bio.add_label": "Añadir biografía",
"account_edit.bio.edit_label": "Editar biografía",
"account_edit.bio.placeholder": "Añade una breve introducción para ayudar a los demás a identificarte.",
"account_edit.bio.title": "Biografía",
"account_edit.bio_modal.add_title": "Añadir biografía",
"account_edit.bio_modal.edit_title": "Editar biografía",
"account_edit.column_button": "Hecho",
"account_edit.column_title": "Editar perfil",
"account_edit.custom_fields.add_label": "Añadir campo",
"account_edit.custom_fields.edit_label": "Editar campo",
"account_edit.custom_fields.placeholder": "Añade tus pronombres, enlaces externos o cualquier otra cosa que quieras compartir.",
"account_edit.custom_fields.reorder_button": "Reordenar campos",
"account_edit.custom_fields.tip_content": "Puedes añadir credibilidad fácilmente a tu cuenta de Mastodon verificando los enlaces a tus propias webs.",
"account_edit.custom_fields.tip_title": "Consejo: Añade enlaces verificados",
"account_edit.custom_fields.title": "Campos personalizados",
"account_edit.custom_fields.verified_hint": "¿Cómo añado un enlace verificado?",
"account_edit.display_name.add_label": "Añadir nombre para mostrar",
"account_edit.display_name.edit_label": "Editar nombre para mostrar",
"account_edit.display_name.placeholder": "Tu nombre de usuario es el nombre que aparece en tu perfil y en las cronologías.",
"account_edit.display_name.title": "Nombre para mostrar",
"account_edit.featured_hashtags.edit_label": "Añadir etiquetas",
"account_edit.featured_hashtags.placeholder": "Ayuda a otros a identificar tus temas favoritos y a acceder rápidamente a ellos.",
"account_edit.featured_hashtags.title": "Etiquetas destacadas",
"account_edit.field_actions.delete": "Eliminar campo",
"account_edit.field_actions.edit": "Editar campo",
"account_edit.field_delete_modal.confirm": "¿Estás seguro de que quieres borrar este campo personalizado? La acción no se puede deshacer.",
"account_edit.field_delete_modal.delete_button": "Borrar",
"account_edit.field_delete_modal.title": "¿Borrar campo personalizado?",
"account_edit.field_edit_modal.add_title": "Añadir campo personalizado",
"account_edit.field_edit_modal.discard_confirm": "Descartar",
"account_edit.field_edit_modal.discard_message": "Tiene cambios no guardados. ¿Seguro que quieres descartarlos?",
"account_edit.field_edit_modal.edit_title": "Editar campo personalizado",
"account_edit.field_edit_modal.limit_warning": "Se ha superado el límite recomendado de caracteres. Es posible que los usuarios móviles no vean el campo completo.",
"account_edit.field_edit_modal.link_emoji_warning": "Recomendamos no usar emojis personalizados combinados con enlaces. Los campos personalizados que contengan ambos solo se mostrarán como texto en vez de un enlace, para evitar confusiones.",
"account_edit.field_edit_modal.name_hint": "Ej. \"Web personal\"",
"account_edit.field_edit_modal.name_label": "Etiqueta",
@ -190,6 +202,8 @@
"account_edit.image_edit.alt_edit_button": "Editar texto alternativo",
"account_edit.image_edit.remove_button": "Quitar imagen",
"account_edit.image_edit.replace_button": "Sustituir imagen",
"account_edit.item_list.delete": "Eliminar {name}",
"account_edit.item_list.edit": "Editar {name}",
"account_edit.name_modal.add_title": "Añadir nombre para mostrar",
"account_edit.name_modal.edit_title": "Editar nombre para mostrar",
"account_edit.profile_tab.button_label": "Personalizar",
@ -212,6 +226,10 @@
"account_edit.upload_modal.step_upload.dragging": "Suelta para subir",
"account_edit.upload_modal.step_upload.header": "Elige una imagen",
"account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, hasta {limit}MB.{br}La imagen será escalada a {width}x{height}px.",
"account_edit.upload_modal.title_add.avatar": "Añadir foto de perfil",
"account_edit.upload_modal.title_add.header": "Añadir foto de portada",
"account_edit.upload_modal.title_replace.avatar": "Reemplazar foto de perfil",
"account_edit.upload_modal.title_replace.header": "Reemplazar foto de portada",
"account_edit.verified_modal.details": "Añade credibilidad a tu perfil de Mastodon verificando enlaces a tus webs personales. Así es como funciona:",
"account_edit.verified_modal.invisible_link.details": "Añade el enlace en el encabezado. La parte importante es rel=\"me\", que evita la suplantación de identidad en webs con contenido generado por usuarios. Incluso puedes utilizar un enlace con etiqueta en el encabezado de la página en vez de {tag}, pero el HTML debe ser accesible sin ejecutar JavaScript.",
"account_edit.verified_modal.invisible_link.summary": "¿Cómo puedo hacer el enlace invisible?",
@ -220,10 +238,13 @@
"account_edit.verified_modal.step2.header": "Añade tu web como un campo personalizado",
"account_edit.verified_modal.title": "Cómo añadir un enlace verificado",
"account_edit_tags.add_tag": "Agregar #{tagName}",
"account_edit_tags.column_title": "Editar Etiquetas",
"account_edit_tags.help_text": "Las etiquetas destacadas ayudan a los usuarios a descubrir e interactuar con tu perfil. Aparecen como filtros en la vista de actividad de tu página de perfil.",
"account_edit_tags.max_tags_reached": "Has alcanzado el número máximo de etiquetas destacadas.",
"account_edit_tags.search_placeholder": "Introduce una etiqueta…",
"account_edit_tags.suggestions": "Sugerencias:",
"account_edit_tags.tag_status_count": "{count, plural, one {# publicación} other {# publicaciones}}",
"account_list.total": "{total, plural, one {# cuenta} other {# cuentas}}",
"account_note.placeholder": "Haz clic para añadir nota",
"admin.dashboard.daily_retention": "Tasa de retención de usuarios por día después del registro",
"admin.dashboard.monthly_retention": "Tasa de retención de usuarios por mes después del registro",
@ -339,6 +360,8 @@
"collections.accounts.empty_description": "Añade hasta {count} cuentas que sigas",
"collections.accounts.empty_title": "Esta colección está vacía",
"collections.collection_description": "Descripción",
"collections.collection_language": "Idioma",
"collections.collection_language_none": "Ninguno",
"collections.collection_name": "Nombre",
"collections.collection_topic": "Tema",
"collections.confirm_account_removal": "¿Estás seguro de que quieres eliminar esta cuenta de la colección?",
@ -662,7 +685,9 @@
"follow_suggestions.who_to_follow": "A quién seguir",
"followed_tags": "Etiquetas seguidas",
"followers.hide_other_followers": "Este usuario ha elegido no hacer visible sus otros seguidores",
"followers.title": "Siguiendo a {name}",
"following.hide_other_following": "Este usuario ha elegido no hacer visible a quién más sigue",
"following.title": "Seguido por {name}",
"footer.about": "Acerca de",
"footer.about_mastodon": "Acerca de Mastodon",
"footer.about_server": "Acerca de {domain}",

View File

@ -142,7 +142,6 @@
"account.unmute_notifications_short": "Kumoa ilmoitusten mykistys",
"account.unmute_short": "Kumoa mykistys",
"account_edit.bio.edit_label": "Muokkaa elämäkertaa",
"account_edit.bio.label": "elämäkerta",
"account_edit.bio.placeholder": "Lisää lyhyt esittely, joka auttaa muita tunnistamaan sinut.",
"account_edit.bio.title": "Elämäkerta",
"account_edit.bio_modal.add_title": "Lisää elämäkerta",

View File

@ -141,27 +141,39 @@
"account.unmute": "Ne plus masquer @{name}",
"account.unmute_notifications_short": "Ne plus masquer les notifications",
"account.unmute_short": "Ne plus masquer",
"account_edit.bio.add_label": "Ajouter une présentation",
"account_edit.bio.edit_label": "Modifier la présentation",
"account_edit.bio.placeholder": "Ajouter une courte introduction pour aider les autres à vous connaître.",
"account_edit.bio.title": "Présentation",
"account_edit.bio_modal.add_title": "Ajouter une présentation",
"account_edit.bio_modal.edit_title": "Modifier la présentation",
"account_edit.column_button": "Terminé",
"account_edit.column_title": "Modifier le profil",
"account_edit.custom_fields.add_label": "Ajouter un champ",
"account_edit.custom_fields.edit_label": "Modifier le champ",
"account_edit.custom_fields.placeholder": "Ajouter vos pronoms, vos sites, ou tout ce que vous voulez partager.",
"account_edit.custom_fields.reorder_button": "Réorganiser les champs",
"account_edit.custom_fields.tip_content": "Vous pouvez facilement ajouter de la crédibilité à votre compte Mastodon en vérifiant les liens vers tous les sites Web que vous possédez.",
"account_edit.custom_fields.tip_title": "Astuce : ajout de liens vérifiés",
"account_edit.custom_fields.title": "Champs personnalisés",
"account_edit.custom_fields.verified_hint": "Comment ajouter un lien vérifié ?",
"account_edit.display_name.add_label": "Ajouter un nom public",
"account_edit.display_name.edit_label": "Modifier le nom public",
"account_edit.display_name.placeholder": "Votre nom public est le nom qui apparaît sur votre profil et dans les fils d'actualités.",
"account_edit.display_name.title": "Nom public",
"account_edit.featured_hashtags.edit_label": "Ajouter des hashtags",
"account_edit.featured_hashtags.placeholder": "Aider les autres à identifier et à accéder rapidement à vos sujets préférés.",
"account_edit.featured_hashtags.title": "Hashtags mis en avant",
"account_edit.field_actions.delete": "Supprimer le champ",
"account_edit.field_actions.edit": "Modifier le champ",
"account_edit.field_delete_modal.confirm": "Voulez-vous vraiment supprimer ce champ personnalisé ? Cette action ne peut pas être annulée.",
"account_edit.field_delete_modal.delete_button": "Supprimer",
"account_edit.field_delete_modal.title": "Supprimer le champ personnalisé ?",
"account_edit.field_edit_modal.add_title": "Ajouter un champ personnalisé",
"account_edit.field_edit_modal.discard_confirm": "Abandonner",
"account_edit.field_edit_modal.discard_message": "Vos modifications nont pas été enregistrées. Voulez-vous vraiment les abandonner ?",
"account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé",
"account_edit.field_edit_modal.limit_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.",
"account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.",
"account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »",
"account_edit.field_edit_modal.name_label": "Libellé",
@ -190,6 +202,8 @@
"account_edit.image_edit.alt_edit_button": "Modifier le texte alternatif",
"account_edit.image_edit.remove_button": "Supprimer limage",
"account_edit.image_edit.replace_button": "Remplacer l'image",
"account_edit.item_list.delete": "Supprimer {name}",
"account_edit.item_list.edit": "Modifier {name}",
"account_edit.name_modal.add_title": "Ajouter un nom public",
"account_edit.name_modal.edit_title": "Modifier le nom public",
"account_edit.profile_tab.button_label": "Personnaliser",
@ -212,6 +226,10 @@
"account_edit.upload_modal.step_upload.dragging": "Déposer pour téléverser",
"account_edit.upload_modal.step_upload.header": "Choisir une image",
"account_edit.upload_modal.step_upload.hint": "Format WebP, PNG, GIF ou JPEG, jusqu'à {limit} Mo.{br}L'image sera redimensionnée à {width} × {height} px.",
"account_edit.upload_modal.title_add.avatar": "Ajouter une photo de profil",
"account_edit.upload_modal.title_add.header": "Ajouter une photo de couverture",
"account_edit.upload_modal.title_replace.avatar": "Remplacer la photo de profil",
"account_edit.upload_modal.title_replace.header": "Remplacer la photo de couverture",
"account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :",
"account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.",
"account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?",
@ -220,7 +238,9 @@
"account_edit.verified_modal.step2.header": "Ajouter votre site Web en tant que champ personnalisé",
"account_edit.verified_modal.title": "Comment ajouter un lien vérifié?",
"account_edit_tags.add_tag": "Ajouter #{tagName}",
"account_edit_tags.column_title": "Modifier les hashtags",
"account_edit_tags.help_text": "Les hashtags mis en avant aident les personnes à découvrir et interagir avec votre profil. Ils apparaissent comme des filtres dans la vue « Activité » de votre profil.",
"account_edit_tags.max_tags_reached": "Vous avez atteint le nombre maximum de hashtags mis en avant.",
"account_edit_tags.search_placeholder": "Saisir un hashtag…",
"account_edit_tags.suggestions": "Suggestions :",
"account_edit_tags.tag_status_count": "{count, plural, one {# message} other {# messages}}",
@ -996,7 +1016,7 @@
"onboarding.profile.note_hint": "Vous pouvez @mentionner d'autres personnes ou #hashtags…",
"onboarding.profile.title": "Configuration du profil",
"onboarding.profile.upload_avatar": "Importer une photo de profil",
"onboarding.profile.upload_header": "Importer un entête de profil",
"onboarding.profile.upload_header": "Importer une image de couverture",
"password_confirmation.exceeds_maxlength": "La confirmation du mot de passe dépasse la longueur maximale du mot de passe",
"password_confirmation.mismatching": "Les deux mots de passe ne correspondent pas",
"picture_in_picture.restore": "Remettre en place",

View File

@ -141,27 +141,39 @@
"account.unmute": "Ne plus masquer @{name}",
"account.unmute_notifications_short": "Réactiver les notifications",
"account.unmute_short": "Ne plus masquer",
"account_edit.bio.add_label": "Ajouter une présentation",
"account_edit.bio.edit_label": "Modifier la présentation",
"account_edit.bio.placeholder": "Ajouter une courte introduction pour aider les autres à vous connaître.",
"account_edit.bio.title": "Présentation",
"account_edit.bio_modal.add_title": "Ajouter une présentation",
"account_edit.bio_modal.edit_title": "Modifier la présentation",
"account_edit.column_button": "Terminé",
"account_edit.column_title": "Modifier le profil",
"account_edit.custom_fields.add_label": "Ajouter un champ",
"account_edit.custom_fields.edit_label": "Modifier le champ",
"account_edit.custom_fields.placeholder": "Ajouter vos pronoms, vos sites, ou tout ce que vous voulez partager.",
"account_edit.custom_fields.reorder_button": "Réorganiser les champs",
"account_edit.custom_fields.tip_content": "Vous pouvez facilement ajouter de la crédibilité à votre compte Mastodon en vérifiant les liens vers tous les sites Web que vous possédez.",
"account_edit.custom_fields.tip_title": "Astuce : ajout de liens vérifiés",
"account_edit.custom_fields.title": "Champs personnalisés",
"account_edit.custom_fields.verified_hint": "Comment ajouter un lien vérifié ?",
"account_edit.display_name.add_label": "Ajouter un nom public",
"account_edit.display_name.edit_label": "Modifier le nom public",
"account_edit.display_name.placeholder": "Votre nom public est le nom qui apparaît sur votre profil et dans les fils d'actualités.",
"account_edit.display_name.title": "Nom public",
"account_edit.featured_hashtags.edit_label": "Ajouter des hashtags",
"account_edit.featured_hashtags.placeholder": "Aider les autres à identifier et à accéder rapidement à vos sujets préférés.",
"account_edit.featured_hashtags.title": "Hashtags mis en avant",
"account_edit.field_actions.delete": "Supprimer le champ",
"account_edit.field_actions.edit": "Modifier le champ",
"account_edit.field_delete_modal.confirm": "Voulez-vous vraiment supprimer ce champ personnalisé ? Cette action ne peut pas être annulée.",
"account_edit.field_delete_modal.delete_button": "Supprimer",
"account_edit.field_delete_modal.title": "Supprimer le champ personnalisé ?",
"account_edit.field_edit_modal.add_title": "Ajouter un champ personnalisé",
"account_edit.field_edit_modal.discard_confirm": "Abandonner",
"account_edit.field_edit_modal.discard_message": "Vos modifications nont pas été enregistrées. Voulez-vous vraiment les abandonner ?",
"account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé",
"account_edit.field_edit_modal.limit_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.",
"account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.",
"account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »",
"account_edit.field_edit_modal.name_label": "Libellé",
@ -190,6 +202,8 @@
"account_edit.image_edit.alt_edit_button": "Modifier le texte alternatif",
"account_edit.image_edit.remove_button": "Supprimer limage",
"account_edit.image_edit.replace_button": "Remplacer l'image",
"account_edit.item_list.delete": "Supprimer {name}",
"account_edit.item_list.edit": "Modifier {name}",
"account_edit.name_modal.add_title": "Ajouter un nom public",
"account_edit.name_modal.edit_title": "Modifier le nom public",
"account_edit.profile_tab.button_label": "Personnaliser",
@ -212,6 +226,10 @@
"account_edit.upload_modal.step_upload.dragging": "Déposer pour téléverser",
"account_edit.upload_modal.step_upload.header": "Choisir une image",
"account_edit.upload_modal.step_upload.hint": "Format WebP, PNG, GIF ou JPEG, jusqu'à {limit} Mo.{br}L'image sera redimensionnée à {width} × {height} px.",
"account_edit.upload_modal.title_add.avatar": "Ajouter une photo de profil",
"account_edit.upload_modal.title_add.header": "Ajouter une photo de couverture",
"account_edit.upload_modal.title_replace.avatar": "Remplacer la photo de profil",
"account_edit.upload_modal.title_replace.header": "Remplacer la photo de couverture",
"account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :",
"account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.",
"account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?",
@ -220,7 +238,9 @@
"account_edit.verified_modal.step2.header": "Ajouter votre site Web en tant que champ personnalisé",
"account_edit.verified_modal.title": "Comment ajouter un lien vérifié?",
"account_edit_tags.add_tag": "Ajouter #{tagName}",
"account_edit_tags.column_title": "Modifier les hashtags",
"account_edit_tags.help_text": "Les hashtags mis en avant aident les personnes à découvrir et interagir avec votre profil. Ils apparaissent comme des filtres dans la vue « Activité » de votre profil.",
"account_edit_tags.max_tags_reached": "Vous avez atteint le nombre maximum de hashtags mis en avant.",
"account_edit_tags.search_placeholder": "Saisir un hashtag…",
"account_edit_tags.suggestions": "Suggestions :",
"account_edit_tags.tag_status_count": "{count, plural, one {# message} other {# messages}}",
@ -996,7 +1016,7 @@
"onboarding.profile.note_hint": "Vous pouvez @mentionner d'autres personnes ou #hashtags…",
"onboarding.profile.title": "Configuration du profil",
"onboarding.profile.upload_avatar": "Importer une photo de profil",
"onboarding.profile.upload_header": "Importer un entête de profil",
"onboarding.profile.upload_header": "Importer une image de couverture",
"password_confirmation.exceeds_maxlength": "La confirmation du mot de passe dépasse la longueur du mot de passe",
"password_confirmation.mismatching": "Les deux mots de passe ne correspondent pas",
"picture_in_picture.restore": "Remettre en place",

View File

@ -141,8 +141,8 @@
"account.unmute": "Díbhalbhaigh @{name}",
"account.unmute_notifications_short": "Díbhalbhaigh fógraí",
"account.unmute_short": "Díbhalbhaigh",
"account_edit.bio.add_label": "Cuir beathaisnéis leis",
"account_edit.bio.edit_label": "Cuir beathaisnéis in eagar",
"account_edit.bio.label": "beathaisnéis",
"account_edit.bio.placeholder": "Cuir réamhrá gearr leis chun cabhrú le daoine eile tú a aithint.",
"account_edit.bio.title": "Beathaisnéis",
"account_edit.bio_modal.add_title": "Cuir beathaisnéis leis",

View File

@ -141,8 +141,8 @@
"account.unmute": "Deixar de silenciar a @{name}",
"account.unmute_notifications_short": "Reactivar notificacións",
"account.unmute_short": "Non silenciar",
"account_edit.bio.add_label": "Engadir biografía",
"account_edit.bio.edit_label": "Editar biografía",
"account_edit.bio.label": "sobre ti",
"account_edit.bio.placeholder": "Escribe unha breve presentación para que te coñezan mellor.",
"account_edit.bio.title": "Sobre ti",
"account_edit.bio_modal.add_title": "Engadir biografía",
@ -171,7 +171,9 @@
"account_edit.field_delete_modal.title": "Eliminar campo persoal?",
"account_edit.field_edit_modal.add_title": "Engadir campo persoal",
"account_edit.field_edit_modal.discard_confirm": "Desbotar",
"account_edit.field_edit_modal.discard_message": "Tes cambios sen gardar. Tes certeza de querer desbotalos?",
"account_edit.field_edit_modal.edit_title": "Editar campo persoal",
"account_edit.field_edit_modal.limit_warning": "Superouse o límite de caracteres recomendado. Nos móbiles podería non verse a información completa.",
"account_edit.field_edit_modal.link_emoji_warning": "Non recomendamos o uso de emojis persoais combinados con URLs. Os campos persoais que conteñen ambos móstranse só como texto e non como unha ligazón, para evitar a confusión de quen os lea.",
"account_edit.field_edit_modal.name_hint": "Ex. \"Páxina web persoal\"",
"account_edit.field_edit_modal.name_label": "Etiqueta",
@ -200,6 +202,8 @@
"account_edit.image_edit.alt_edit_button": "Editar descrición",
"account_edit.image_edit.remove_button": "Retirar a imaxe",
"account_edit.image_edit.replace_button": "Substituír a imaxe",
"account_edit.item_list.delete": "Eliminar {name}",
"account_edit.item_list.edit": "Editar {name}",
"account_edit.name_modal.add_title": "Engadir nome público",
"account_edit.name_modal.edit_title": "Editar o nome público",
"account_edit.profile_tab.button_label": "Personalizar",
@ -222,6 +226,10 @@
"account_edit.upload_modal.step_upload.dragging": "Solta aquí para subir",
"account_edit.upload_modal.step_upload.header": "Escoller unha imaxe",
"account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF ou JPG, ata {limit}MB.{br}A imaxe será comprimida a {width}x{height}px.",
"account_edit.upload_modal.title_add.avatar": "Engadir foto do perfil",
"account_edit.upload_modal.title_add.header": "Engadir foto da cabeceira",
"account_edit.upload_modal.title_replace.avatar": "Substituír foto do perfil",
"account_edit.upload_modal.title_replace.header": "Substituír foto da cabeceira",
"account_edit.verified_modal.details": "Engade maior credibilidade ao teu perfil Mastodon verificando as ligazóns ás túas páxinas web persoais. Funciona así:",
"account_edit.verified_modal.invisible_link.details": "Engade a ligazón ao «header» da páxina web. A parte importante é rel=\"me\", que evita a suplantación en sitios web con contido creado polas usuarias. Tamén podes usar a etiqueta «link» na cabeceira da páxina no lugar de {tag}, pero o HTML ten que ser accesible sen usar JavaScript.",
"account_edit.verified_modal.invisible_link.summary": "Como fago visible a ligazón?",
@ -230,10 +238,13 @@
"account_edit.verified_modal.step2.header": "Engade a túa páxina como campo persoal",
"account_edit.verified_modal.title": "Como engadir unha ligazón verificada",
"account_edit_tags.add_tag": "Engadir #{tagName}",
"account_edit_tags.column_title": "Editar etiquetas",
"account_edit_tags.help_text": "Os cancelos destacados axúdanlle ás usuarias a atopar e interactuar co teu perfil. Aparecen como filtros na túa páxina de perfil na vista Actividade.",
"account_edit_tags.max_tags_reached": "Acadaches o número máximo de cancelos destacados.",
"account_edit_tags.search_placeholder": "Escribe un cancelo…",
"account_edit_tags.suggestions": "Suxestións:",
"account_edit_tags.tag_status_count": "{count, plural, one {# publicación} other {# publicacións}}",
"account_list.total": "{total, plural, one {# conta} other {# contas}}",
"account_note.placeholder": "Preme para engadir nota",
"admin.dashboard.daily_retention": "Ratio de retención de usuarias diaria após rexistrarse",
"admin.dashboard.monthly_retention": "Ratio de retención de usuarias mensual após o rexistro",
@ -674,7 +685,9 @@
"follow_suggestions.who_to_follow": "A quen seguir",
"followed_tags": "Cancelos seguidos",
"followers.hide_other_followers": "Esta usuaria escolleu non mostrar as outras persoas que a seguen",
"followers.title": "Seguindo a {name}",
"following.hide_other_following": "Esta usuaria escolleu non mostrar as outras persoas que segue",
"following.title": "Seguida por {name}",
"footer.about": "Sobre",
"footer.about_mastodon": "Sobre Mastodon",
"footer.about_server": "Sobre {domain}",

View File

@ -141,27 +141,38 @@
"account.unmute": "הפסקת השתקת @{name}",
"account.unmute_notifications_short": "הפעלת הודעות",
"account.unmute_short": "ביטול השתקה",
"account_edit.bio.edit_label": "עריכת ביוגרפיה",
"account_edit.bio.placeholder": "הוסיפו הצגה קצרה כדי לעזור לאחרים לזהות אותך.",
"account_edit.bio.title": "ביוגרפיה",
"account_edit.bio_modal.add_title": "הוסיפו ביוגרפיה",
"account_edit.bio_modal.edit_title": "עריכת ביוגרפיה",
"account_edit.column_button": "סיום",
"account_edit.column_title": "עריכת הפרופיל",
"account_edit.custom_fields.add_label": "הוספת שדה",
"account_edit.custom_fields.edit_label": "עריכת שדה",
"account_edit.custom_fields.placeholder": "הוסיפו צורת פניה, קישורים חיצוניים וכל דבר שתרצו לשתף.",
"account_edit.custom_fields.reorder_button": "הגדרת סדר השדות",
"account_edit.custom_fields.tip_content": "ניתן להוסיף אמינות לחשבון המסטודון שלך על ידי וידוא קישורים לאתרים שבבעלותך.",
"account_edit.custom_fields.tip_title": "טיפ: הוספת קישורים מוודאים",
"account_edit.custom_fields.title": "שדות בהתאמה אישית",
"account_edit.custom_fields.verified_hint": "כיצד תוסיפו קישורים מוודאים?",
"account_edit.display_name.add_label": "הוספת שם תצוגה",
"account_edit.display_name.edit_label": "עריכת שם תצוגה",
"account_edit.display_name.placeholder": "שם התצוגה שלכן הוא איך שהשם יופיע בפרופיל ובצירי הזמנים.",
"account_edit.display_name.title": "שם תצוגה",
"account_edit.featured_hashtags.edit_label": "הוספת תגיות",
"account_edit.featured_hashtags.placeholder": "עזרו לאחרים לזהות ולגשת בקלות לנושאים החביבים עליכם.",
"account_edit.featured_hashtags.title": "תגיות נבחרות",
"account_edit.field_actions.delete": "מחיקת שדה",
"account_edit.field_actions.edit": "עריכת שדה",
"account_edit.field_delete_modal.confirm": "האם אתם בטוחיםות שברצונכן למחוק את השדה המיוחד הזה? פעולה זו לא ניתנת לביטול.",
"account_edit.field_delete_modal.delete_button": "מחק",
"account_edit.field_delete_modal.title": "מחיקת שדה מתואם אישית?",
"account_edit.field_edit_modal.add_title": "הוסף שדה מותאם אישית",
"account_edit.field_edit_modal.discard_confirm": "השלך",
"account_edit.field_edit_modal.discard_message": "יש שינויים שלא נשמרו. לסלק אותם?",
"account_edit.field_edit_modal.edit_title": "עריכת שדה מותאם אישית",
"account_edit.field_edit_modal.limit_warning": "עברת את מספר התווים המירבי המומלץ. משתמשים בנייד עלולים שלא לראות את השדה המלא.",
"account_edit.field_edit_modal.link_emoji_warning": "אנו ממליצים נגד שימוש באמוג'י ייחודיים ביחד עם URL. שדות מיוחדים שמכילים את שניהם יופיעו כמלל בלבד ולא כקישור, כדי למנוע בלבול משתמשים.",
"account_edit.field_edit_modal.name_hint": "למשל \"אתר אישי\"",
"account_edit.field_edit_modal.name_label": "תווית",
@ -190,6 +201,8 @@
"account_edit.image_edit.alt_edit_button": "עריכת מלל חלופי",
"account_edit.image_edit.remove_button": "הסרת תמונה",
"account_edit.image_edit.replace_button": "החלפת תמונה",
"account_edit.item_list.delete": "מחיקת {name}",
"account_edit.item_list.edit": "עריכת {name}",
"account_edit.name_modal.add_title": "הוספת שם תצוגה",
"account_edit.name_modal.edit_title": "עריכת שם תצוגה",
"account_edit.profile_tab.button_label": "התאמה אישית",
@ -212,6 +225,10 @@
"account_edit.upload_modal.step_upload.dragging": "גרור להעלאה",
"account_edit.upload_modal.step_upload.header": "בחר/י תמונה",
"account_edit.upload_modal.step_upload.hint": "תכנים בתקן WEBP, PNG, GIF או JPG, עד לגודל {limit} מ\"ב.{br}התמונה תתוקן לגודל {width} על {height} פיקסלים.",
"account_edit.upload_modal.title_add.avatar": "הוספת תמונת פרופיל",
"account_edit.upload_modal.title_add.header": "הוספת תמונת מסגרת",
"account_edit.upload_modal.title_replace.avatar": "החלפת תמונת פרופיל",
"account_edit.upload_modal.title_replace.header": "החלפת תמונת מסגרת",
"account_edit.verified_modal.details": "הוספת אמינות לחשבון המסטודון על ידי הוספת קישורים מוודאים לאתרים אישיים. כך זה עובד:",
"account_edit.verified_modal.invisible_link.details": "הוסיפו את הקישור בכותרת. החלק החשוב הוא rel=\"me\" שמונע התחזות על אתרים עם תוכן משתמשים. ניתן גם ליצור תגית link בכותרת העמוד במקום קישור {tag} אבל קוד ה־HTML חייב להופיע שם ללא הרצה של ג'אווהסקריפט.",
"account_edit.verified_modal.invisible_link.summary": "כיצד לגרום לקישור להיות בלתי נראה?",
@ -220,7 +237,9 @@
"account_edit.verified_modal.step2.header": "הוסיפו את אתרכן בשדה המיוחד",
"account_edit.verified_modal.title": "כיצד תוסיפו קישורים מוודאים",
"account_edit_tags.add_tag": "הוספת #{tagName}",
"account_edit_tags.column_title": "עריכת תגיות",
"account_edit_tags.help_text": "תגיות נבחרות עוזרות למשתמשים לגלות ולהשתמש בפרופיל שלך. הן יופיעו כסננים במבט הפעילויות על עמוד הפרופיל שלך.",
"account_edit_tags.max_tags_reached": "הגעת למספר התגיות הנבחרות המירבי.",
"account_edit_tags.search_placeholder": "הזנת תגית…",
"account_edit_tags.suggestions": "הצעות:",
"account_edit_tags.tag_status_count": "{count, plural, one {הודעה אחת} two {הודעותיים} other {# הודעות}}",

View File

@ -142,7 +142,6 @@
"account.unmute_notifications_short": "Értesítések némításának feloldása",
"account.unmute_short": "Némitás feloldása",
"account_edit.bio.edit_label": "Bemutatkozás szerkesztése",
"account_edit.bio.label": "bemutatkozás",
"account_edit.bio.placeholder": "Adj meg egy rövid bemutatkozást, hogy mások könnyebben megtaláljanak.",
"account_edit.bio.title": "Bemutatkozás",
"account_edit.bio_modal.add_title": "Bemutatkozás hozzáadása",

View File

@ -141,8 +141,8 @@
"account.unmute": "Hætta að þagga niður í @{name}",
"account.unmute_notifications_short": "Hætta að þagga í tilkynningum",
"account.unmute_short": "Hætta að þagga niður",
"account_edit.bio.add_label": "Bættu við æviágripi",
"account_edit.bio.edit_label": "Breyta æviágripi",
"account_edit.bio.label": "æviágrip",
"account_edit.bio.placeholder": "Settu inn stutta kynningu á þér svo aðrir eigi betur með að auðkenna þig.",
"account_edit.bio.title": "Æviágrip",
"account_edit.bio_modal.add_title": "Bættu við æviágripi",

View File

@ -141,8 +141,8 @@
"account.unmute": "Riattiva @{name}",
"account.unmute_notifications_short": "Riattiva notifiche",
"account.unmute_short": "Attiva audio",
"account_edit.bio.add_label": "Aggiungi biografia",
"account_edit.bio.edit_label": "Modifica la biografia",
"account_edit.bio.label": "biografia",
"account_edit.bio.placeholder": "Aggiungi una breve introduzione per aiutare gli altri a identificarti.",
"account_edit.bio.title": "Biografia",
"account_edit.bio_modal.add_title": "Aggiungi biografia",

View File

@ -141,27 +141,38 @@
"account.unmute": "@{name} niet langer negeren",
"account.unmute_notifications_short": "Meldingen niet langer negeren",
"account.unmute_short": "Niet langer negeren",
"account_edit.bio.edit_label": "Biografie bewerken",
"account_edit.bio.placeholder": "Vertel iets over jezelf, zodat anderen inzicht krijgen in wat voor persoon je bent.",
"account_edit.bio.title": "Biografie",
"account_edit.bio_modal.add_title": "Biografie toevoegen",
"account_edit.bio_modal.edit_title": "Biografie bewerken",
"account_edit.column_button": "Klaar",
"account_edit.column_title": "Profiel bewerken",
"account_edit.custom_fields.add_label": "Veld toevoegen",
"account_edit.custom_fields.edit_label": "Veld bewerken",
"account_edit.custom_fields.placeholder": "Voeg je voornaamwoorden, externe links of iets anders toe dat je wilt delen.",
"account_edit.custom_fields.reorder_button": "Velden opnieuw ordenen",
"account_edit.custom_fields.tip_content": "Je kunt gemakkelijk je Mastodon-account geloofwaardig maken door links naar websites die van jou zijn te laten verifiëren.",
"account_edit.custom_fields.tip_title": "Tip: Geverifieerde links toevoegen",
"account_edit.custom_fields.title": "Extra velden",
"account_edit.custom_fields.verified_hint": "Hoe voeg ik een geverifieerde link toe?",
"account_edit.display_name.add_label": "Weergavenaam toevoegen",
"account_edit.display_name.edit_label": "Weergavenaam bewerken",
"account_edit.display_name.placeholder": "Je weergavenaam wordt op jouw profiel en op tijdlijnen weergegeven.",
"account_edit.display_name.title": "Weergavenaam",
"account_edit.featured_hashtags.edit_label": "Hashtags toevoegen",
"account_edit.featured_hashtags.placeholder": "Geef anderen een overzicht van en snel toegang tot je favoriete onderwerpen.",
"account_edit.featured_hashtags.title": "Uitgelichte hashtags",
"account_edit.field_actions.delete": "Veld verwijderen",
"account_edit.field_actions.edit": "Veld bewerken",
"account_edit.field_delete_modal.confirm": "Weet je zeker dat je dit aangepaste veld wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
"account_edit.field_delete_modal.delete_button": "Verwijderen",
"account_edit.field_delete_modal.title": "Aangepast veld verwijderen?",
"account_edit.field_edit_modal.add_title": "Aangepast veld toevoegen",
"account_edit.field_edit_modal.discard_confirm": "Weggooien",
"account_edit.field_edit_modal.discard_message": "U heeft niet-opgeslagen wijzigingen. Weet u zeker dat u ze wilt weggooien?",
"account_edit.field_edit_modal.edit_title": "Aangepast veld bewerken",
"account_edit.field_edit_modal.limit_warning": "Aanbevolen tekenlimiet overschreden. Mobiele gebruikers zien mogelijk uw veld niet volledig.",
"account_edit.field_edit_modal.link_emoji_warning": "We raden aan om geen lokale emoji in combinatie met URL's te gebruiken. Aangepaste velden die beide bevatten worden alleen als tekst weergegeven, in plaats van als een link. Dit om verwarring voor de gebruiker te voorkomen.",
"account_edit.field_edit_modal.name_hint": "Bijv. \"Persoonlijke website\"",
"account_edit.field_edit_modal.name_label": "Label",
@ -190,6 +201,8 @@
"account_edit.image_edit.alt_edit_button": "Alt-tekst bewerken",
"account_edit.image_edit.remove_button": "Afbeelding verwijderen",
"account_edit.image_edit.replace_button": "Afbeelding vervangen",
"account_edit.item_list.delete": "{name} verwijderen",
"account_edit.item_list.edit": "{name} bewerken",
"account_edit.name_modal.add_title": "Weergavenaam toevoegen",
"account_edit.name_modal.edit_title": "Weergavenaam bewerken",
"account_edit.profile_tab.button_label": "Aanpassen",
@ -212,6 +225,10 @@
"account_edit.upload_modal.step_upload.dragging": "Hierheen slepen om te uploaden",
"account_edit.upload_modal.step_upload.header": "Kies een afbeelding",
"account_edit.upload_modal.step_upload.hint": "WEBP-, PNG-, GIF- of JPG-formaat, tot max. {limit}MB.{br}Afbeelding wordt geschaald naar {width}x{height}px.",
"account_edit.upload_modal.title_add.avatar": "Profielfoto toevoegen",
"account_edit.upload_modal.title_add.header": "Omslagfoto toevoegen",
"account_edit.upload_modal.title_replace.avatar": "Profielfoto vervangen",
"account_edit.upload_modal.title_replace.header": "Omslagfoto vervangen",
"account_edit.verified_modal.details": "Maak je Mastodonprofiel geloofwaardig door links naar persoonlijke websites te verifiëren. Zo werkt het:",
"account_edit.verified_modal.invisible_link.details": "Voeg de link aan de HTML van je website toe. Het belangrijkste onderdeel is rel=\"me\", waarmee wordt voorkomen dat websites met user-generated content geïmpersoneerd kunnen worden. Je kunt zelfs een <link>-tag gebruiken binnen de <head>-tag van je website in plaats van {tag}, maar de HTML moet zonder JavaScript toegankelijk zijn.",
"account_edit.verified_modal.invisible_link.summary": "Hoe maak ik de link onzichtbaar?",
@ -220,10 +237,13 @@
"account_edit.verified_modal.step2.header": "Voeg je website toe als een aangepast veld",
"account_edit.verified_modal.title": "Hoe voeg je een geverifieerde link toe",
"account_edit_tags.add_tag": "#{tagName} toevoegen",
"account_edit_tags.column_title": "Labels bewerken",
"account_edit_tags.help_text": "Uitgelichte hashtags helpen gebruikers je profiel te ontdekken en om er interactie mee te communiceren. Ze verschijnen als filters op je Profielpagina onder het tabblad Activiteit.",
"account_edit_tags.max_tags_reached": "Maximum aantal uitgelichte hashtags bereikt.",
"account_edit_tags.search_placeholder": "Voer een hashtag in…",
"account_edit_tags.suggestions": "Suggesties:",
"account_edit_tags.tag_status_count": "{count, plural, one {# bericht} other {# berichten}}",
"account_list.total": "{total, plural, one {# account} other {# accounts}}",
"account_note.placeholder": "Klik om een opmerking toe te voegen",
"admin.dashboard.daily_retention": "Retentiegraad van gebruikers per dag, vanaf registratie",
"admin.dashboard.monthly_retention": "Retentiegraad van gebruikers per maand, vanaf registratie",
@ -618,6 +638,10 @@
"featured_carousel.header": "{count, plural, one {Vastgezet bericht} other {Vastgezette berichten}}",
"featured_carousel.slide": "Bericht {current, number} van {max, number}",
"featured_tags.more_items": "+{count}",
"featured_tags.suggestions": "De laatste tijd heb over {items} gepost. Deze toevoegen als uitgelichte hashtags?",
"featured_tags.suggestions.add": "Toevoegen",
"featured_tags.suggestions.added": "Je kunt je uitgelichte hashtags beheren onder <link>Profiel bewerken > Uitgelichte hashtags</link>.",
"featured_tags.suggestions.dismiss": "Nee, bedankt",
"filter_modal.added.context_mismatch_explanation": "Deze filtercategorie is niet van toepassing op de context waarin je dit bericht hebt benaderd. Als je wilt dat het bericht ook in deze context wordt gefilterd, moet je het filter bewerken.",
"filter_modal.added.context_mismatch_title": "Context komt niet overeen!",
"filter_modal.added.expired_explanation": "Deze filtercategorie is verlopen. Je moet de vervaldatum wijzigen om de categorie toe te kunnen passen.",
@ -660,7 +684,9 @@
"follow_suggestions.who_to_follow": "Wie te volgen",
"followed_tags": "Gevolgde hashtags",
"followers.hide_other_followers": "Deze gebruiker heeft ervoor gekozen diens andere volgers niet zichtbaar te maken",
"followers.title": "{name} volgen",
"following.hide_other_following": "Deze gebruiker heeft ervoor gekozen de rest van diens gevolgde accounts niet zichtbaar te maken",
"following.title": "Gevolgd door {name}",
"footer.about": "Over",
"footer.about_mastodon": "Over Mastodon",
"footer.about_server": "Over {domain}",

View File

@ -14,9 +14,16 @@
"about.powered_by": "Zdecentralizowane media społecznościowe napędzane przez {mastodon}",
"about.rules": "Regulamin serwera",
"account.account_note_header": "Notatka",
"account.activity": "Aktywność",
"account.add_note": "Dodaj osobistą notkę",
"account.add_or_remove_from_list": "Dodaj lub usuń z list",
"account.badges.admin": "Admin",
"account.badges.blocked": "Zablokowane",
"account.badges.bot": "Bot",
"account.badges.domain_blocked": "Zablokowana domena",
"account.badges.group": "Grupa",
"account.badges.muted": "Wyciszone",
"account.badges.muted_until": "Wyciszone do {until}",
"account.block": "Blokuj @{name}",
"account.block_domain": "Blokuj wszystko z {domain}",
"account.block_short": "Zablokuj",
@ -27,6 +34,7 @@
"account.direct": "Napisz bezpośrednio do @{name}",
"account.disable_notifications": "Przestań powiadamiać mnie o wpisach @{name}",
"account.domain_blocking": "Blokowanie domeny",
"account.edit_note": "Edytuj osobistą notkę",
"account.edit_profile": "Edytuj profil",
"account.edit_profile_short": "Edytuj",
"account.enable_notifications": "Powiadamiaj mnie o wpisach @{name}",
@ -36,9 +44,17 @@
"account.familiar_followers_two": "To konto jest obserwowane przez {name1} i {name2}",
"account.featured": "Wyróżnione",
"account.featured.accounts": "Profile",
"account.featured.collections": "Kolekcje",
"account.featured.hashtags": "Tagi",
"account.featured_tags.last_status_at": "Ostatni post {date}",
"account.featured_tags.last_status_never": "Brak postów",
"account.field_overflow": "Pokaż całą zawartość",
"account.filters.all": "Wszystkie aktywności",
"account.filters.boosts_toggle": "Pokaż ulepszenia",
"account.filters.posts_boosts": "Posty i ulepszenia",
"account.filters.posts_only": "Posty",
"account.filters.posts_replies": "Posty i odpowiedzi",
"account.filters.replies_toggle": "Pokaż odpowiedzi",
"account.follow": "Obserwuj",
"account.follow_back": "Również obserwuj",
"account.follow_back_short": "Również obserwuj",
@ -63,6 +79,24 @@
"account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go obserwować.",
"account.media": "Multimedia",
"account.mention": "Wspomnij o @{name}",
"account.menu.add_to_list": "Dodaj do listy…",
"account.menu.block": "Zablokuj konto",
"account.menu.block_domain": "Zablokuj {domain}",
"account.menu.copied": "Skopiowano link do konta do schowka",
"account.menu.copy": "Skopiuj link",
"account.menu.direct": "Prywatna wzmianka",
"account.menu.hide_reblogs": "Ukryj ulepszenia na osi czasu",
"account.menu.mention": "Wzmianka",
"account.menu.mute": "Wycisz konta",
"account.menu.note.description": "Widoczne tylko dla Ciebie",
"account.menu.open_original_page": "Zobacz na {domain}",
"account.menu.remove_follower": "Usuń obserwującego",
"account.menu.report": "Zgłoś konto",
"account.menu.share": "Udostępnij...",
"account.menu.show_reblogs": "Pokaż ulepszenia na osi czasu",
"account.menu.unblock": "Odblokuj konto",
"account.menu.unblock_domain": "Odblokuj {domain}",
"account.menu.unmute": "Odcisz konto",
"account.moved_to": "{name} jako swoje nowe konto wskazał/a:",
"account.mute": "Wycisz @{name}",
"account.mute_notifications_short": "Wycisz powiadomienia",
@ -90,6 +124,35 @@
"account.unmute": "Nie wyciszaj @{name}",
"account.unmute_notifications_short": "Nie wyciszaj powiadomień",
"account.unmute_short": "Nie wyciszaj",
"account_edit.bio_modal.add_title": "Szczegóły profilu",
"account_edit.bio_modal.edit_title": "Edytuj szczegóły profilu",
"account_edit.column_button": "Gotowe",
"account_edit.column_title": "Edytuj profil",
"account_edit.custom_fields.add_label": "Dodaj pole",
"account_edit.custom_fields.edit_label": "Edytuj pole",
"account_edit.custom_fields.placeholder": "Dodaj swoje zaimki, linki zewnętrzne lub cokolwiek innego, które chcesz udostępnić.",
"account_edit.custom_fields.reorder_button": "Zmień kolejność pól",
"account_edit.custom_fields.tip_content": "Możesz z łatwością zwiększyć wiarygodność swojego konta Mastodon poprzez weryfikację linków do wszelkich stron internetowych, które posiadasz.",
"account_edit.custom_fields.tip_title": "Wskazówka: Dodawanie zweryfikowanych linków",
"account_edit.custom_fields.title": "Pola niestandardowe",
"account_edit.custom_fields.verified_hint": "Jak dodać zweryfikowany link?",
"account_edit.display_name.add_label": "Dodaj nazwę wyświetlaną",
"account_edit.display_name.edit_label": "Edytuj nazwę wyświetlaną",
"account_edit.display_name.placeholder": "Twoja nazwa wyświetlana jest jak Twoja nazwa pojawia się na Twoim profilu i na osi czasu.",
"account_edit.display_name.title": "Wyświetlana nazwa",
"account_edit.featured_hashtags.edit_label": "Dodaj hashtagi",
"account_edit.featured_hashtags.placeholder": "Pomóż innym zidentyfikować i mieć szybki dostęp do Twoich ulubionych tematów.",
"account_edit.featured_hashtags.title": "Wyróżnione hashtagi",
"account_edit.field_actions.delete": "Usuń pole",
"account_edit.field_actions.edit": "Edytuj pole",
"account_edit.field_delete_modal.confirm": "Czy na pewno chcesz usunąć to pole niestandardowe? Tej czynności nie można cofnąć.",
"account_edit.field_delete_modal.delete_button": "Usuń",
"account_edit.field_delete_modal.title": "Usuń pole niestandardowe ",
"account_edit.field_edit_modal.add_title": "Dodaj pole niestandardowe",
"account_edit.field_edit_modal.discard_confirm": "Odrzuć",
"account_edit.field_edit_modal.discard_message": "Masz niezapisane zmiany. Czy na pewno chcesz je odrzucić?",
"account_edit.field_edit_modal.edit_title": "Edytuj dodatkowe pole",
"account_edit.field_edit_modal.limit_warning": "Przekroczono limit zalecanych znaków. Użytkownicy mobilni mogą nie widzieć Twojego pola w całości.",
"account_note.placeholder": "Kliknij, aby dodać notatkę",
"admin.dashboard.daily_retention": "Wskaźnik utrzymania użytkowników według dni od rejestracji",
"admin.dashboard.monthly_retention": "Wskaźnik utrzymania użytkowników według miesięcy od rejestracji",

View File

@ -142,7 +142,6 @@
"account.unmute_notifications_short": "Ativar som de notificações",
"account.unmute_short": "Desativar silêncio",
"account_edit.bio.edit_label": "Editar Biografia",
"account_edit.bio.label": "biografia",
"account_edit.bio.placeholder": "Insira uma breve introdução para ajudar os outros a lhe identificar.",
"account_edit.bio.title": "Bio",
"account_edit.bio_modal.add_title": "Adicionar biografia",

View File

@ -141,12 +141,16 @@
"account.unmute": "Desocultar @{name}",
"account.unmute_notifications_short": "Desocultar notificações",
"account.unmute_short": "Desocultar",
"account_edit.bio.add_label": "Adicionar biografia",
"account_edit.bio.edit_label": "Editar biografia",
"account_edit.bio.placeholder": "Adicione uma breve apresentação para ajudar os outros a identificá-lo.",
"account_edit.bio.title": "Bio",
"account_edit.bio_modal.add_title": "Adicionar biografia",
"account_edit.bio_modal.edit_title": "Editar biografia",
"account_edit.column_button": "Concluído",
"account_edit.column_title": "Editar Perfil",
"account_edit.custom_fields.add_label": "Adicionar campo",
"account_edit.custom_fields.edit_label": "Editar campo",
"account_edit.custom_fields.placeholder": "Adicione os seus pronomes, hiperligações externas ou qualquer outra coisa que queira partilhar.",
"account_edit.custom_fields.reorder_button": "Reordenar campos",
"account_edit.custom_fields.tip_content": "Pode adicionar facilmente credibilidade à sua conta Mastodon, verificando ligações para qualquer website que possua.",
@ -157,10 +161,13 @@
"account_edit.display_name.title": "Nome a mostrar",
"account_edit.featured_hashtags.placeholder": "Ajude à sua identificação por outros e tenha acesso rápido aos seus tópicos favoritos.",
"account_edit.featured_hashtags.title": "Etiquetas em destaque",
"account_edit.field_actions.delete": "Eliminar campo",
"account_edit.field_actions.edit": "Editar campo",
"account_edit.field_delete_modal.confirm": "Tem certeza de que deseja excluir este campo personalizado? Esta ação não pode ser desfeita.",
"account_edit.field_delete_modal.delete_button": "Excluir",
"account_edit.field_delete_modal.title": "Excluir campo personalizado?",
"account_edit.field_edit_modal.add_title": "Adicionar campo personalizado",
"account_edit.field_edit_modal.discard_confirm": "Descartar",
"account_edit.field_edit_modal.edit_title": "Editar campo personalizado",
"account_edit.field_edit_modal.link_emoji_warning": "Não recomendamos o uso de emojis personalizados em combinação com URLs. Campos personalizados que contenham ambos serão exibidos apenas como texto, em vez de como hiperligação, para evitar confusão aos utilizadores.",
"account_edit.field_edit_modal.name_hint": "Ex.: \"Site pessoal\"",

View File

@ -141,8 +141,8 @@
"account.unmute": "Ktheji zërin @{name}",
"account.unmute_notifications_short": "Shfaqi njoftimet",
"account.unmute_short": "Çheshtoje",
"account_edit.bio.add_label": "Shtoni jetëshkrim",
"account_edit.bio.edit_label": "Përpunoni jetëshkrim",
"account_edit.bio.label": "jetëshkrim",
"account_edit.bio.placeholder": "Shtoni një hyrje të shkurtër për të ndihmuar të tjerët tju identifikojnë.",
"account_edit.bio.title": "Jetëshkrim",
"account_edit.bio_modal.add_title": "Shtoni jetëshkrim",

View File

@ -134,6 +134,7 @@
"account.unmute": "Sluta tysta @{name}",
"account.unmute_notifications_short": "Aktivera aviseringsljud",
"account.unmute_short": "Avtysta",
"account_edit.bio.add_label": "Lägg till biografi",
"account_edit.bio.placeholder": "Lägg till en kort introduktion för att hjälpa andra att identifiera dig.",
"account_edit.bio.title": "Biografi",
"account_edit.bio_modal.add_title": "Lägg till biografi",

View File

@ -141,27 +141,39 @@
"account.unmute": "@{name} adlı kişinin sesini aç",
"account.unmute_notifications_short": "Bildirimlerin sesini aç",
"account.unmute_short": "Susturmayı kaldır",
"account_edit.bio.add_label": "Kişisel bilgi ekle",
"account_edit.bio.edit_label": "Kişisel bilgiyi düzenle",
"account_edit.bio.placeholder": "Diğerlerinin sizi tanımasına yardımcı olmak için kısa bir tanıtım ekleyin.",
"account_edit.bio.title": "Kişisel bilgiler",
"account_edit.bio_modal.add_title": "Kişisel bilgi ekle",
"account_edit.bio_modal.edit_title": "Kişisel bilgiyi düzenle",
"account_edit.column_button": "Tamamlandı",
"account_edit.column_title": "Profili Düzenle",
"account_edit.custom_fields.add_label": "Alan ekle",
"account_edit.custom_fields.edit_label": "Alanı düzenle",
"account_edit.custom_fields.placeholder": "Zamirlerinizi, harici bağlantılarınızı veya paylaşmak istediğiniz diğer bilgileri ekleyin.",
"account_edit.custom_fields.reorder_button": "Alanları yeniden sırala",
"account_edit.custom_fields.tip_content": "Sahip olduğunuz web sitelerine bağlantıları doğrulayarak Mastodon hesabınıza kolayca güvenilirlik katabilirsiniz.",
"account_edit.custom_fields.tip_title": "İpucu: Doğrulanmış bağlantılar ekleme",
"account_edit.custom_fields.title": "Özel alanlar",
"account_edit.custom_fields.verified_hint": "Doğrulanmış bir bağlantı nasıl eklerim?",
"account_edit.display_name.add_label": "Görüntülenecek ad ekle",
"account_edit.display_name.edit_label": "Görüntülenecek adı düzenle",
"account_edit.display_name.placeholder": "Görünen adınız profilinizde ve zaman akışlarında adınızın nasıl göründüğüdür.",
"account_edit.display_name.title": "Görünen ad",
"account_edit.featured_hashtags.edit_label": "Etiket ekle",
"account_edit.featured_hashtags.placeholder": "Başkalarının favori konularınızı tanımlamasına ve bunlara hızlı bir şekilde erişmesine yardımcı olun.",
"account_edit.featured_hashtags.title": "Öne çıkan etiketler",
"account_edit.field_actions.delete": "Alanı sil",
"account_edit.field_actions.edit": "Alanı düzenle",
"account_edit.field_delete_modal.confirm": "Bu özel alanı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
"account_edit.field_delete_modal.delete_button": "Sil",
"account_edit.field_delete_modal.title": "Özel alanı sil?",
"account_edit.field_edit_modal.add_title": "Özel alan ekle",
"account_edit.field_edit_modal.discard_confirm": "Yoksay",
"account_edit.field_edit_modal.discard_message": "Kaydedilmemiş değişiklikleriniz var. Bunları silmek istediğinizden emin misiniz?",
"account_edit.field_edit_modal.edit_title": "Özel alanı düzenle",
"account_edit.field_edit_modal.limit_warning": "Önerilen karakter sınırııldı. Mobil kullanıcılar sahayı tam olarak görmeyebilirler.",
"account_edit.field_edit_modal.link_emoji_warning": "Url'lerle birlikte özel emoji kullanmamanızı öneririz. Her ikisini de içeren özel alanlar, kullanıcıların kafasını karıştırmamak için bağlantı yerine yalnızca metin olarak görüntülenir.",
"account_edit.field_edit_modal.name_hint": "Örn. \"Kişisel web sitesi\"",
"account_edit.field_edit_modal.name_label": "Etiket",
@ -190,6 +202,8 @@
"account_edit.image_edit.alt_edit_button": "Alternatif metni düzenle",
"account_edit.image_edit.remove_button": "Görseli kaldır",
"account_edit.image_edit.replace_button": "Görseli değiştir",
"account_edit.item_list.delete": "{name} sil",
"account_edit.item_list.edit": "{name} düzenle",
"account_edit.name_modal.add_title": "Görünen ad ekle",
"account_edit.name_modal.edit_title": "Görünen adı düzenle",
"account_edit.profile_tab.button_label": "Özelleştir",
@ -212,6 +226,10 @@
"account_edit.upload_modal.step_upload.dragging": "Yüklemek için bırakın",
"account_edit.upload_modal.step_upload.header": "Bir resim seç",
"account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF veya JPG formatında, en fazla {limit} MB.{br}Görsel {width}x{height} piksel boyutuna getirilir.",
"account_edit.upload_modal.title_add.avatar": "Profil fotoğrafı ekle",
"account_edit.upload_modal.title_add.header": "Kapak fotoğrafı ekle",
"account_edit.upload_modal.title_replace.avatar": "Profil fotoğrafını değiştir",
"account_edit.upload_modal.title_replace.header": "Kapak fotoğrafını değiştirin",
"account_edit.verified_modal.details": "Kişisel web sitelerine bağlantıları doğrulayarak Mastodon profilinize güvenilirlik katın. İşte böyle çalışıyor:",
"account_edit.verified_modal.invisible_link.details": "Bağlantıyı başlığınıza ekleyin. Önemli olan kısım, kullanıcı tarafından oluşturulan içeriğe sahip web sitelerinde kimlik sahtekarlığını önleyen rel=\"me\" özniteliğidir. {tag} yerine sayfanın başlığında bir bağlantı etiketi bile kullanabilirsiniz, ancak HTML, JavaScript çalıştırılmadan erişilebilir olmalıdır.",
"account_edit.verified_modal.invisible_link.summary": "Bağlantıyı nasıl görünmez hale getirebilirim?",
@ -220,7 +238,9 @@
"account_edit.verified_modal.step2.header": "Web sitenizi özel bir alan olarak ekleyin",
"account_edit.verified_modal.title": "Doğrulanmış bir bağlantı nasıl eklenir",
"account_edit_tags.add_tag": "#{tagName} ekle",
"account_edit_tags.column_title": "Etiketleri Düzenle",
"account_edit_tags.help_text": "Öne çıkan etiketler kullanıcıların profilinizi keşfetmesine ve etkileşim kurmasına yardımcı olur. Profil sayfanızın Etkinlik görünümünde filtreler olarak görünürler.",
"account_edit_tags.max_tags_reached": "Azami öne çıkan etiket sayısına ulaştınız.",
"account_edit_tags.search_placeholder": "Bir etiket girin…",
"account_edit_tags.suggestions": "Öneriler:",
"account_edit_tags.tag_status_count": "{count, plural, one {# gönderi} other {# gönderi}}",

View File

@ -141,8 +141,8 @@
"account.unmute": "Bỏ phớt lờ @{name}",
"account.unmute_notifications_short": "Bỏ phớt lờ thông báo",
"account.unmute_short": "Bỏ phớt lờ",
"account_edit.bio.add_label": "Thêm giới thiệu",
"account_edit.bio.edit_label": "Sửa giới thiệu",
"account_edit.bio.label": "giới thiệu",
"account_edit.bio.placeholder": "Thêm một dòng giới thiệu để giúp mọi người nhận ra bạn.",
"account_edit.bio.title": "Giới thiệu",
"account_edit.bio_modal.add_title": "Thêm giới thiệu",

View File

@ -141,8 +141,8 @@
"account.unmute": "不再隐藏 @{name}",
"account.unmute_notifications_short": "恢复通知",
"account.unmute_short": "取消隐藏",
"account_edit.bio.add_label": "添加个人简介",
"account_edit.bio.edit_label": "编辑个人简介",
"account_edit.bio.label": "简介",
"account_edit.bio.placeholder": "添加一段简短介绍,帮助其他人认识你。",
"account_edit.bio.title": "简介",
"account_edit.bio_modal.add_title": "添加个人简介",

View File

@ -141,8 +141,8 @@
"account.unmute": "解除靜音 @{name}",
"account.unmute_notifications_short": "解除靜音推播通知",
"account.unmute_short": "解除靜音",
"account_edit.bio.add_label": "新增個人簡介",
"account_edit.bio.edit_label": "編輯個人簡介",
"account_edit.bio.label": "個人簡介",
"account_edit.bio.placeholder": "加入一段簡短介紹以幫助其他人識別您。",
"account_edit.bio.title": "個人簡介",
"account_edit.bio_modal.add_title": "新增個人簡介",
@ -639,7 +639,7 @@
"featured_carousel.header": "{count, plural, other {# 則釘選嘟文}}",
"featured_carousel.slide": "{max, number} 則嘟文中之第 {current, number} 則",
"featured_tags.more_items": "+{count}",
"featured_tags.suggestions": "最近您曾發有關 {items} 之嘟文。是否新增其為推薦主題標籤?",
"featured_tags.suggestions": "最近您曾發有關 {items} 之嘟文。是否新增其為推薦主題標籤?",
"featured_tags.suggestions.add": "新增",
"featured_tags.suggestions.added": "於 <link>編輯個人檔案 > 推薦主題標籤</link> 隨時管理您的推薦主題標籤。",
"featured_tags.suggestions.dismiss": "不需要,謝謝",

View File

@ -29,7 +29,7 @@ export const selectUserListWithoutMe = createAppSelector(
.filter((id) => id !== currentAccountId)
.toArray(),
isLoading: !!list.get('isLoading', true),
hasMore: !!list.get('hasMore', false),
hasMore: !!list.get('next'),
};
},
);

View File

@ -442,6 +442,53 @@ $content-width: 840px;
}
}
}
.callout {
display: flex;
align-items: start;
padding: 12px;
gap: 8px;
background-color: var(--color-bg-brand-softest);
color: var(--color-text-primary);
border-radius: 12px;
font-size: 15px;
margin-bottom: 30px;
.icon {
padding: 4px;
border-radius: 9999px;
width: 1rem;
height: 1rem;
margin-top: -2px;
background-color: var(--color-bg-brand-soft);
}
.content {
display: flex;
flex-direction: column;
gap: 8px;
flex-grow: 1;
padding: 0;
@media screen and (width >= 630px) {
flex-direction: row;
}
}
.body {
flex-grow: 1;
}
.title {
font-weight: 600;
margin-bottom: 8px;
}
a {
color: inherit;
font-weight: 600;
}
}
}
hr.spacer {

View File

@ -4099,11 +4099,10 @@ a.account__display-name {
.column-subheading {
background: var(--color-bg-secondary);
color: var(--color-text-secondary);
padding: 8px 20px;
font-size: 12px;
padding: 12px 24px;
font-size: 13px;
font-weight: 500;
text-transform: uppercase;
cursor: default;
}
.getting-started__wrapper {
@ -10679,6 +10678,7 @@ noscript {
&__source {
display: inline-flex;
align-items: center;
max-width: 100%;
color: var(--color-text-tertiary);
gap: 4px;
overflow: hidden;
@ -10899,12 +10899,6 @@ noscript {
color: var(--color-text-secondary);
}
& > span {
display: flex;
align-items: center;
gap: 8px;
}
a {
display: inline-flex;
align-items: center;

View File

@ -7,7 +7,7 @@ class ActivityPub::Activity::FeatureRequest < ActivityPub::Activity
return unless Mastodon::Feature.collections_federation_enabled?
return if non_matching_uri_hosts?(@account.uri, @json['id'])
@collection = @account.collections.find_by(uri: value_or_id(@json['instrument']))
@collection = find_or_fetch_collection
@featured_account = ActivityPub::TagManager.instance.uris_to_local_accounts([value_or_id(@json['object'])]).first
return if @collection.nil? || @featured_account.nil?
@ -37,6 +37,17 @@ class ActivityPub::Activity::FeatureRequest < ActivityPub::Activity
queue_delivery!(collection_item, ActivityPub::RejectFeatureRequestSerializer)
end
def find_or_fetch_collection
uri = value_or_id(@json['instrument'])
collection = @account.collections.find_by(uri:)
return collection if collection.present?
collection = ActivityPub::FetchRemoteFeaturedCollectionService.new.call(uri)
return collection if collection.present? && collection.account == @account
nil
end
def collection_item_attributes(state = :accepted)
{ account: @featured_account, activity_uri: @json['id'], state: }
end

View File

@ -9,14 +9,14 @@ class WebfingerResource
@resource = resource
end
def username
def account
case resource
when %r{\A(https?://)?#{instance_actor_regexp}/?\Z}
Rails.configuration.x.local_domain
Account.representative
when /\Ahttps?/i
username_from_url
account_from_url
when /@/
username_from_acct
account_from_acct
else
raise InvalidRequest
end
@ -31,11 +31,11 @@ class WebfingerResource
Regexp.union(hosts)
end
def username_from_url
def account_from_url
if account_show_page?
path_params[:username]
path_params.key?(:username) ? Account.find_local!(path_params[:username]) : Account.local.find(path_params[:id])
elsif instance_actor_page?
Rails.configuration.x.local_domain
Account.representative
else
raise ActiveRecord::RecordNotFound
end
@ -53,10 +53,13 @@ class WebfingerResource
Rails.application.routes.recognize_path(resource)
end
def username_from_acct
def account_from_acct
raise ActiveRecord::RecordNotFound unless domain_matches_local?
local_username
username = local_username
return Account.representative if username == Rails.configuration.x.local_domain || username == Rails.configuration.x.web_domain
Account.find_local!(username)
end
def split_acct
@ -76,6 +79,6 @@ class WebfingerResource
end
def domain_matches_local?
TagManager.instance.local_domain?(local_domain) || TagManager.instance.web_domain?(local_domain)
TagManager.instance.local_domain?(local_domain) || TagManager.instance.web_domain?(local_domain) || Rails.configuration.x.alternate_domains.include?(local_domain)
end
end

View File

@ -32,7 +32,7 @@ class Admin::TagFilter
when :status
status_scope(value)
when :name
Tag.search_for(value.to_s.strip, params[:limit], params[:offset], exclude_unlistable: false)
Tag.search_for(value, params[:limit], params[:offset], exclude_unlistable: false)
when :order
order_scope(value)
else

View File

@ -128,7 +128,7 @@ class Tag < ApplicationRecord
end
def search_for(term, limit = 5, offset = 0, options = {})
stripped_term = term.strip
stripped_term = term.to_s.strip
options.reverse_merge!({ exclude_unlistable: true, exclude_unreviewed: false })
query = Tag.matches_name(stripped_term)

View File

@ -4,7 +4,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
include RoutingHelper
include FormattingHelper
context :security
context :security, :webfinger
context_extensions :manually_approves_followers, :featured, :also_known_as,
:moved_to, :property_value, :discoverable, :suspended,
@ -55,6 +55,10 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
ActivityPub::TagManager.instance.uri_for(object)
end
def webfinger
object.local_username_and_domain
end
def type
if object.instance_actor?
'Application'

View File

@ -2,9 +2,11 @@
class REST::ProfileSerializer < ActiveModel::Serializer
include RoutingHelper
include FormattingHelper
# Please update app/javascript/api_types/profile.ts when making changes to the attributes
attributes :id, :display_name, :note, :fields,
:formatted_note, :formatted_fields,
:avatar, :avatar_static, :avatar_description, :header, :header_static, :header_description,
:locked, :bot,
:hide_collections, :discoverable, :indexable,
@ -17,10 +19,18 @@ class REST::ProfileSerializer < ActiveModel::Serializer
object.id.to_s
end
def formatted_note
account_bio_format(object)
end
def fields
object.fields.map(&:to_h)
end
def formatted_fields
object.fields.map { |field| { name: field.name, value: account_field_value_format(field), verified_at: field.verified_at } }
end
def avatar
object.avatar_file_name.present? ? full_asset_url(object.avatar_original_url) : nil
end

View File

@ -27,11 +27,23 @@ class ActivityPub::FetchRemoteActorService < BaseService
raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?
raise Error, "Unexpected object type for actor #{uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_type?
raise Error, "Actor #{uri} has moved to #{@json['movedTo']}" if break_on_redirect && @json['movedTo'].present?
raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank?
raise Error, "Actor #{uri} has neither 'preferredUsername' nor `webfinger`, which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank? && @json['webfinger'].blank?
@uri = @json['id']
@username = @json['preferredUsername']
@domain = Addressable::URI.parse(@uri).normalized_host
@uri = @json['id']
# FEP-2c59 defines a `webfinger` attribute that makes things more explicit and spares an extra request in some cases.
# It supersedes `preferredUsername`.
if @json['webfinger'].present? && @json['webfinger'].is_a?(String)
@username, @domain = split_acct(@json['webfinger'])
Rails.logger.debug { "Actor #{uri} has an invalid `webfinger` value, falling back to `preferredUsername`" }
end
if @username.blank? || @domain.blank?
raise "Actor #{uri} has no `preferredUsername`, and either a bogus or missing `webfinger`, which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank?
@username = @json['preferredUsername']
@domain = Addressable::URI.parse(@uri).normalized_host
end
check_webfinger! unless only_key

View File

@ -17,20 +17,15 @@ class ActivityPub::ProcessFeaturedCollectionService
Collection.transaction do
@collection = @account.collections.find_or_initialize_by(uri: @json['id'])
@collection.update!(
local: false,
name: (@json['name'] || '')[0, Collection::NAME_LENGTH_HARD_LIMIT],
description_html: truncated_summary,
language:,
sensitive: @json['sensitive'],
discoverable: @json['discoverable'],
original_number_of_items: @json['totalItems'] || 0,
tag_name: @json.dig('topic', 'name')
)
@collection.update!(collection_attributes)
process_items!
@items = (@json['orderedItems'] || [])[0, ITEMS_LIMIT]
item_uris = @items.filter_map { |i| value_or_id(i) }
@collection.collection_items.where.not(uri: item_uris).delete_all
end
process_items!
@collection
end
end
@ -46,14 +41,22 @@ class ActivityPub::ProcessFeaturedCollectionService
@json['summaryMap']&.keys&.first
end
def collection_attributes
{
local: false,
name: (@json['name'] || '')[0, Collection::NAME_LENGTH_HARD_LIMIT],
description_html: truncated_summary,
language:,
sensitive: @json['sensitive'],
discoverable: @json['discoverable'],
original_number_of_items: @json['totalItems'] || 0,
tag_name: @json.dig('topic', 'name'),
}
end
def process_items!
uris = []
items = @json['orderedItems'] || []
items.take(ITEMS_LIMIT).each_with_index do |item_json, index|
uris << value_or_id(item_json)
@items.each_with_index do |item_json, index|
ActivityPub::ProcessFeaturedItemWorker.perform_async(@collection.id, item_json, index + 1, @request_id)
end
uris.compact!
@collection.collection_items.where.not(uri: uris).delete_all
end
end

View File

@ -5,6 +5,15 @@
%h1= t('settings.profile')
= render partial: 'settings/shared/profile_navigation'
- if Mastodon::Feature.profile_redesign_enabled?
%aside.callout
= material_symbol 'info'
.content
.body
%p.title= t('edit_profile.redesign_title')
%p= t('edit_profile.redesign_body')
= link_to t('edit_profile.redesign_button'), '/profile/edit'
= simple_form_for @account, url: settings_profile_path, html: { id: :edit_profile } do |f|
= render 'shared/error_messages', object: @account

View File

@ -0,0 +1,14 @@
# frozen_string_literal: true
require 'json/ld'
class JSON::LD::Context
add_preloaded("http://purl.archive.org/socialweb/webfinger") do
new(processingMode: "json-ld-1.0", term_definitions: {
"webfinger" => TermDefinition.new("webfinger", id: "https://purl.archive.org/socialweb/webfinger#webfinger", type_mapping: "http://www.w3.org/2001/XMLSchema#string"),
"wf" => TermDefinition.new("wf", id: "https://purl.archive.org/socialweb/webfinger#", simple: true, prefix: true),
"xsd" => TermDefinition.new("xsd", id: "http://www.w3.org/2001/XMLSchema#", simple: true, prefix: true)
})
end
alias_preloaded("https://purl.archive.org/socialweb/webfinger", "http://purl.archive.org/socialweb/webfinger")
end

View File

@ -1761,15 +1761,6 @@ ar:
failed_sign_in_html: فشل محاولة تسجيل الدخول مع %{method} من %{ip} (%{browser})
successful_sign_in_html: تم تسجيل الدخول بنجاح مع %{method} من %{ip} (%{browser})
title: تاريخ المصادقة
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: إرسال إشعارات التفضيلات بالبريد الإلكتروني
follow: إرسال إشعارات المتابعة بالبريد الإلكتروني
follow_request: إرسال إشعارات الطلبات بالبريد الإلكتروني
mention: إشعارات رسائل البريد عندما يَذكُرك أحدهم
reblog: رسائل البريد الخاصة بالمنشورات المعاد نشرها
media_attachments:
validations:
images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور

View File

@ -211,11 +211,6 @@ az:
otp: iki faktorlu kimlik doğrulama tətbiqi
password: parol
description_html: Əgər tanımadığınız bir fəaliyyəti görsəniz, parolunuzu dəyişdirməyi və iki faktorlu kimlik doğrulamanı fəallaşdırmağı düşünə bilərsiniz
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
reblog: təkrar paylaşma bildirişi e-poçtları
migrations:
incoming_migrations: Fərqli bir hesabdan daşı
incoming_migrations_html: Başqa bir hesabdan bu hesaba daşımaq üçün əvvəlcə <a href="%{path}">bir hesab alias-ı yaratmalısınız</a>.

View File

@ -1734,15 +1734,6 @@ be:
failed_sign_in_html: Няўдалая спроба ўваходу праз %{method} з %{ip} (%{browser})
successful_sign_in_html: Паспяховы ўваход праз %{method} з %{ip} (%{browser})
title: Гісторыя ўваходаў
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: апавяшчэнні на пошту пра упадабанае
follow: апавяшчэнні на пошту пра падпіскі
follow_request: апавяшчэнні на пошту пра запыты на падпіску
mention: апавяшчэнні на пошту пра згадванні
reblog: апавяшчэнні на пошту пра пашырэнні
media_attachments:
validations:
images_and_video: Немагчыма далучыць відэа да допісу, які ўжо змяшчае выявы

View File

@ -1598,15 +1598,6 @@ bg:
failed_sign_in_html: Неуспешен опит за влизане с %{method} от %{ip} (%{browser})
successful_sign_in_html: Успешно влизане с %{method} от %{ip} (%{browser})
title: Историята на удостоверяване
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: е-писма за известия с любими
follow: е-писма с известия за последване
follow_request: е-писма със заявки за следване
mention: е-писма с известия за споменаване
reblog: е-писма с известия за подсилване
media_attachments:
validations:
images_and_video: Не мога да прикача видеоклип към публикация, която вече съдържа изображения

View File

@ -1613,15 +1613,6 @@ ca:
failed_sign_in_html: Intent d'inici de sessió errat amb %{method} des de %{ip} (%{browser})
successful_sign_in_html: Inici de sessió exitós amb %{method} des de %{ip} (%{browser})
title: Historial d'autenticació
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: notificacions dels favorits per correu electrònic
follow: notificacions dels seguiments per correu electrònic
follow_request: correus electrònics de peticions de seguiment
mention: correus electrònics de notificacions de mencions
reblog: correus electrònics de notificacions d'impulsos
media_attachments:
validations:
images_and_video: No es pot adjuntar un vídeo a una publicació que ja contingui imatges

View File

@ -1726,15 +1726,6 @@ cs:
failed_sign_in_html: Neúspěšný pokus o přihlášení %{method} z %{ip} (%{browser})
successful_sign_in_html: Úspěšné přihlášení %{method} z %{ip} (%{browser})
title: Historie přihlášení
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: e-mailové oznámení při oblíbení
follow: e-mailové oznámení při sledování
follow_request: e-mail při žádost o sledování
mention: e-mailové oznámení při zmínění
reblog: e-mailové oznámení při boostu
media_attachments:
validations:
images_and_video: K příspěvku, který již obsahuje obrázky, nelze připojit video

View File

@ -1814,15 +1814,6 @@ cy:
failed_sign_in_html: Ymgais mewngofnodi wedi methu gyda %{method} gan %{ip} (%{browser})
successful_sign_in_html: Mewngofnodi llwyddiannus gyda %{method} o %{ip} (%{browser})
title: Hanes dilysu
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: e-bost hysbysu hoffi
follow: e-byst hysbysu dilyn
follow_request: e-byst ceisiadau dilyn
mention: e-byst hysbysu crybwylliadau
reblog: e-byst hysbysiadau hybu
media_attachments:
validations:
images_and_video: Methu atodi fideo i bostiad sydd eisoes yn cynnwys delweddau

View File

@ -762,6 +762,7 @@ da:
categories:
administration: Administration
devops: DevOps
email: E-mail
invites: Invitationer
moderation: Moderering
special: Speciel
@ -790,6 +791,8 @@ da:
manage_blocks_description: Tillader brugere at blokere e-mailudbydere og IP-adresser
manage_custom_emojis: Administrere tilpassede emojier
manage_custom_emojis_description: Tillader brugere at administrere tilpassede emojier på serveren
manage_email_subscriptions: Administrer e-mail-abonnementer
manage_email_subscriptions_description: Giv brugere mulighed for at abonnere på andre brugere med denne tilladelse via e-mail
manage_federation: Administrere federation
manage_federation_description: Tillader brugere at blokere eller tillade federation med andre domæner og styre leverbarhed
manage_invites: Administrere invitationer
@ -1418,6 +1421,38 @@ da:
basic_information: Oplysninger
hint_html: "<strong>Tilpas, hvad folk ser på din offentlige profil og ved siden af dine indlæg.</strong> Andre personer er mere tilbøjelige til at følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede."
other: Andre
email_subscription_mailer:
confirmation:
action: Bekræft e-mailadresse
instructions_to_confirm: Bekræft, at du gerne vil modtage e-mails fra %{name} (@%{acct}), når vedkommende offentliggør nye indlæg.
instructions_to_ignore: Hvis du ikke ved, hvorfor du har modtaget denne e-mail, kan du slette den. Du bliver ikke tilmeldt, hvis du ikke klikker på linket ovenfor.
subject: Bekræft din e-mailadresse
title: Modtag e-mail opdateringer fra %{name}?
notification:
create_account: Opret en Mastodon-konto
footer:
privacy_html: E-mails sendes fra %{domain}, en server drevet af Mastodon. For at få mere at vide om, hvordan denne server behandler dine personoplysninger, kan du læse <a href="%{privacy_policy_path}">privatlivspolitikken</a>.
reason_for_email_html: Du modtager denne e-mail, fordi du har valgt at modtage e-mailopdateringer fra %{name}. Ønsker du ikke at modtage disse e-mails? <a href="%{unsubscribe_path}">Afmeld</a>
interact_with_this_post:
one: Interagér med dette indlæg, og find flere lignende indlæg.
other: Interagér med disse indlæg, og find flere.
subject:
one: 'Nyt indlæg: "%{excerpt}"'
other: Nye indlæg fra %{name}
title:
one: 'Nyt indlæg: "%{excerpt}"'
other: Nye indlæg fra %{name}
email_subscriptions:
active: Aktive
confirmations:
show:
changed_your_mind: Har du skiftet mening?
success_html: Du vil nu begynde at modtage e-mails, når %{name} offentliggør nye indlæg. Tilføj %{sender} til dine kontakter, så disse indlæg ikke ender i din spam-mappe.
title: Du er tilmeldt
unsubscribe: Afmeld
inactive: Inaktive
status: Status
subscribers: Abonnenter
emoji_styles:
auto: Auto
native: Indbygget
@ -1652,15 +1687,6 @@ da:
failed_sign_in_html: Mislykket indlogning med %{method} fra %{ip} (%{browser})
successful_sign_in_html: Gennemført indlogning med %{method} fra %{ip} (%{browser})
title: Godkendelseshistorik
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: e-mailnotifikationer om favoritmarkeringer
follow: e-mailnotifikationer om nye følgere
follow_request: e-mailnotifikationer om følgeanmodninger
mention: e-mailnotifikationer om omtaler
reblog: e-mailnotifikationer om fremhævelser
media_attachments:
validations:
images_and_video: En video kan ikke vedhæftes et indlæg med billedindhold
@ -1798,6 +1824,8 @@ da:
posting_defaults: Standarder for indlæg
public_timelines: Offentlige tidslinjer
privacy:
email_subscriptions: Send indlæg via e-mail
email_subscriptions_hint_html: Tilføj en tilmeldingsformular til din profil, som vises for brugere, der ikke er logget ind. Når besøgende indtaster deres e-mailadresse og tilmelder sig, sender Mastodon e-mailopdateringer om dine offentlige indlæg.
hint_html: "<strong>Tilpas hvordan din profil og dine indlæg kan findes.</strong> En række funktioner i Mastodon kan hjælpe dig med at nå ud til et bredere publikum, hvis du aktiverer dem. Tjek indstillingerne herunder for at sikre, at de passer til dit brugsscenarie."
privacy: Privatliv
privacy_hint_html: Styr, hvor meget du vil afsløre til gavn for andre. Folk opdager interessante profiler og apps ved at gennemse andres følgere og se, hvilke apps de sender fra, men du foretrækker måske at holde det skjult.
@ -2061,6 +2089,28 @@ da:
resume_app_authorization: Genoptag godkendelse af applikation
role_requirement: "%{domain} kræver, at du konfigurerer tofaktorgodkendelse, før du kan bruge Mastodon."
webauthn: Sikkerhedsnøgler
unsubscriptions:
create:
action: Gå til serverens hjemmeside
email_subscription:
confirmation_html: Du vil ikke længere modtage e-mails fra %{name}.
title: Du er afmeldt
user:
confirmation_html: Du vil ikke længere modtage %{type} fra Mastodon på %{domain}.
notification_emails:
favourite: e-mail-notifikationer om favoritmarkeringer
follow: e-mail-notifikationer om nye følgere
follow_request: e-mail-notifikationer om følgeanmodninger
mention: e-mail-notifikationer om omtaler
reblog: e-mail-notifikationer om fremhævelser
show:
action: Afmeld
email_subscription:
confirmation_html: Du vil ikke længere modtage e-mails, når denne konto offentliggør nye indlæg.
title: Afmeld fra %{name}?
user:
confirmation_html: Du vil ikke længere modtage %{type} fra Mastodon på %{domain}.
title: Afmeld fra %{type}?
user_mailer:
announcement_published:
description: 'Administratorerne på %{domain} udsender en annoncering:'

View File

@ -762,6 +762,7 @@ de:
categories:
administration: Administration
devops: DevOps
email: E-Mail
invites: Einladungen
moderation: Moderation
special: Besonderheit
@ -790,6 +791,7 @@ de:
manage_blocks_description: E-Mail-Provider und IP-Adressen sperren
manage_custom_emojis: Emojis
manage_custom_emojis_description: Spezielle Emojis dieses Servers verwalten
manage_email_subscriptions: E-Mail-Benachrichtigungen verwalten
manage_federation: Föderation
manage_federation_description: Domains anderer Mastodon-Server sperren/zulassen und Zustellbarkeit kontrollieren
manage_invites: Einladungen
@ -1418,6 +1420,28 @@ de:
basic_information: Allgemeine Informationen
hint_html: "<strong>Bestimme, was andere auf deinem öffentlichen Profil und neben deinen Beiträgen sehen können.</strong> Wenn du ein Profilbild festlegst und dein Profil vervollständigst, werden andere eher mit dir interagieren und dir folgen."
other: Andere
email_subscription_mailer:
confirmation:
action: E-Mail-Adresse bestätigen
subject: Bestätige deine E-Mail-Adresse
title: E-Mail-Benachrichtigungen von %{name} erhalten?
notification:
create_account: Mastodon-Konto erstellen
subject:
one: 'Neuer Beitrag: „%{excerpt}“'
other: Neue Beiträge von %{name}
title:
one: 'Neuer Beitrag: „%{excerpt}“'
other: Neue Beiträge von %{name}
email_subscriptions:
active: Aktiviert
confirmations:
show:
changed_your_mind: Meinung geändert?
unsubscribe: Abbestellen
inactive: Deaktiviert
status: Status
subscribers: Abonnent*innen
emoji_styles:
auto: Automatisch
native: Nativ
@ -1652,15 +1676,6 @@ de:
failed_sign_in_html: Fehlgeschlagener Anmeldeversuch mit %{method} von %{ip} (%{browser})
successful_sign_in_html: Erfolgreiches Anmelden mit %{method} von %{ip} (%{browser})
title: Anmeldeverlauf
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: E-Mail-Benachrichtigungen bei Favoriten
follow: E-Mail-Benachrichtigungen bei Followern
follow_request: E-Mail-Benachrichtigungen bei Follower-Anfragen
mention: E-Mail-Benachrichtigungen bei Erwähnungen
reblog: E-Mail-Benachrichtigungen bei geteilten Beiträgen
media_attachments:
validations:
images_and_video: Es kann kein Video an einen Beitrag angehängt werden, der bereits Bilder enthält
@ -1798,6 +1813,7 @@ de:
posting_defaults: Standardeinstellungen für Beiträge
public_timelines: Öffentliche Timelines
privacy:
email_subscriptions: Sende Beiträge per E-Mail
hint_html: "<strong>Bestimme selbst, wie dein Profil und deine Beiträge gefunden werden sollen.</strong> Zahlreiche Mastodon-Funktionen können dir für eine größere Reichweite behilflich sein. Nimm dir einen Moment Zeit, um diese Einstellungen zu überprüfen."
privacy: Datenschutz
privacy_hint_html: Bestimme, wie viele Informationen du für andere preisgeben möchtest. Viele Menschen entdecken interessante Profile und coole Apps, indem sie die Follower anderer Profile durchstöbern und die Apps sehen, über die Beiträge veröffentlicht wurden möglicherweise möchtest du diese Informationen ausblenden.
@ -2061,6 +2077,9 @@ de:
resume_app_authorization: Autorisierung der App fortsetzen
role_requirement: "%{domain} verlangt das Einrichten einer Zwei-Faktor-Authentisierung, bevor du Mastodon verwenden kannst."
webauthn: Sicherheitsschlüssel
unsubscriptions:
show:
action: Abbestellen
user_mailer:
announcement_published:
description: 'Ankündigung der Administrator*innen von %{domain}:'

View File

@ -762,6 +762,7 @@ el:
categories:
administration: Διαχείριση
devops: DevOps
email: Email
invites: Προσκλήσεις
moderation: Συντονισμός
special: Ειδικός
@ -790,6 +791,8 @@ el:
manage_blocks_description: Επιτρέπει στους χρήστες να αποκλείουν παρόχους email και διευθύνσεις IP
manage_custom_emojis: Διαχείριση Προσαρμοσμένων Emojis
manage_custom_emojis_description: Επιτρέπει στους χρήστες να διαχειρίζονται προσαρμοσμένα emojis στον διακομιστή
manage_email_subscriptions: Διαχείριση Συνδρομών Email
manage_email_subscriptions_description: Να επιτρέπεται στους χρήστες να εγγράφονται σε χρήστες με αυτήν την άδεια μέσω ηλεκτρονικού ταχυδρομείου
manage_federation: Διαχείριση Ομοσπονδίας
manage_federation_description: Επιτρέπει στους χρήστες να αποκλείουν ή να επιτρέπουν τις συναλλαγές με άλλους τομείς και να ελέγχουν την παράδοση
manage_invites: Διαχείριση Προσκλήσεων
@ -1418,6 +1421,38 @@ el:
basic_information: Βασικές πληροφορίες
hint_html: "<strong>Προσάρμοσε τί βλέπουν άτομα στο δημόσιο προφίλ σου και δίπλα στις αναρτήσεις σου.</strong> Είναι πιο πιθανό άλλα άτομα να σε ακολουθήσουν πίσω και να αλληλεπιδράσουν μαζί σου αν έχεις ολοκληρωμένο προφίλ και εικόνα προφίλ."
other: Άλλο
email_subscription_mailer:
confirmation:
action: Επιβεβαιώστε τη διεύθυνση email
instructions_to_confirm: Επιβεβαιώστε ότι θα θέλατε να λαμβάνετε email από %{name} (@%{acct}) όταν δημοσιεύει νέες αναρτήσεις.
instructions_to_ignore: Αν δεν είστε σίγουροι γιατί λάβατε αυτό το email, μπορείτε να το διαγράψετε. Δεν θα εγγραφείτε αν δεν κάνετε κλικ στον παραπάνω σύνδεσμο.
subject: Επιβεβαιώστε τη διεύθυνση email σας
title: Να λαμβάνετε ενημερώσεις μέσω email από %{name};
notification:
create_account: Δημιουργήστε έναν λογαριασμό Mastodon
footer:
privacy_html: Τα email στέλνονται από το %{domain}, έναν διακομιστή που βασίζεται στο Mastodon. Για να καταλάβετε πώς ο διακομιστής αυτός επεξεργάζεται τα προσωπικά σας δεδομένα, ανατρέξτε στην <a href="%{privacy_policy_path}">Πολιτική Απορρήτου</a>.
reason_for_email_html: Λαμβάνετε αυτό το email επειδή έχετε κάνει εγγραφή για ενημερώσεις από %{name}. Δεν θέλετε να λαμβάνετε τέτοια email; <a href="%{unsubscribe_path}">Κατάργηση συνδρομής</a>
interact_with_this_post:
one: Αλληλεπιδράστε με αυτήν την ανάρτηση και ανακαλύψτε περισσότερες σαν αυτήν.
other: Αλληλεπιδράστε με αυτές τις αναρτήσεις και ανακαλύψτε περισσότερες.
subject:
one: 'Νέα ανάρτηση: "%{excerpt}"'
other: Νέες αναρτήσεις από %{name}
title:
one: 'Νέα ανάρτηση: "%{excerpt}"'
other: Νέες αναρτήσεις από %{name}
email_subscriptions:
active: Ενεργή
confirmations:
show:
changed_your_mind: Αλλάξατε γνώμη;
success_html: Τώρα θα αρχίσετε να λαμβάνετε email όταν ο χρήστης %{name} δημοσιεύει νέες αναρτήσεις. Προσθέστε το %{sender} στις επαφές σας, έτσι ώστε αυτές οι αναρτήσεις να μην καταλήγουν στο φάκελο Ανεπιθύμητα.
title: Έχετε εγγραφεί
unsubscribe: Κατάργηση συνδρομής
inactive: Ανενεργή
status: Κατάσταση
subscribers: Συνδρομητές
emoji_styles:
auto: Αυτόματο
native: Εγγενές
@ -1652,15 +1687,6 @@ el:
failed_sign_in_html: Αποτυχημένη προσπάθεια σύνδεσης με %{method} από %{ip} (%{browser})
successful_sign_in_html: Επιτυχής σύνδεση με %{method} από %{ip} (%{browser})
title: Ιστορικό ελέγχου ταυτότητας
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: ειδοποιήσεις email για αγαπημένα
follow: ειδοποιήσεις email για ακολουθήσεις
follow_request: email για αιτήματα ακολούθησης
mention: ειδοποιήσεις email για επισημάνσεις
reblog: ειδοποιήσεις email για ενίσχυση
media_attachments:
validations:
images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ανάρτηση που ήδη περιέχει εικόνες
@ -1798,6 +1824,8 @@ el:
posting_defaults: Προεπιλογές ανάρτησης
public_timelines: Δημόσιες ροές
privacy:
email_subscriptions: Αποστολή αναρτήσεων μέσω email
email_subscriptions_hint_html: Προσθέστε μια φόρμα εγγραφής μέσω email στο προφίλ σας που εμφανίζεται για αποσυνδεδεμένους χρήστες. Όταν οι επισκέπτες εισαγάγουν τη διεύθυνση email τους και επιλέξουν εγγραφή, το Mastodon θα στέλνει ενημερώσεις email για τις δημόσιες αναρτήσεις σας.
hint_html: "<strong>Προσάρμοσε πώς θες το προφίλ και οι αναρτήσεις σου να ανακαλύπτονται.</strong>. Μια ποικιλία δυνατοτήτων στο Mastodon μπορούν να σε βοηθήσουν να απευθυνθείς σε μεγαλύτερο κοινό όταν ενεργοποιηθούν. Αφιέρωσε μερικά λεπτά για να εξετάσεις τις ρυθμίσεις και να σιγουρευτείς ότι σου ταιριάζουν."
privacy: Απόρρητο
privacy_hint_html: "'Έλεγξε πόσο θες να αποκαλύπτεις προς όφελος των άλλων. Οι άνθρωποι ανακαλύπτουν ενδιαφέροντα προφίλ και εφαρμογές με την περιήγηση των ακολούθων άλλων ατόμων και βλέποντας από ποιες εφαρμογές δημοσιεύουν, αλλά μπορεί να προτιμάς να το κρατάς κρυφό."
@ -2061,6 +2089,28 @@ el:
resume_app_authorization: Συνέχιση εξουσιοδότησης εφαρμογής
role_requirement: Το %{domain} απαιτεί να ρυθμίσετε τον έλεγχο ταυτότητας δύο παραγόντων πριν χρησιμοποιήσετε το Mastodon.
webauthn: Κλειδιά ασφαλείας
unsubscriptions:
create:
action: Μετάβαση στην αρχική σελίδα του διακομιστή
email_subscription:
confirmation_html: Δεν θα λαμβάνετε πλέον email από %{name}.
title: Έχετε καταργήσει τη συνδρομή
user:
confirmation_html: Δεν θα λαμβάνετε πλέον %{type} από το Mastodon στο %{domain}.
notification_emails:
favourite: ειδοποιήσεις email για αγαπημένα
follow: ειδοποιήσεις email για ακολουθήσεις
follow_request: email για αιτήματα ακολούθησης
mention: ειδοποιήσεις email για επισημάνσεις
reblog: ειδοποιήσεις email για ενισχύσεις
show:
action: Κατάργηση συνδρομής
email_subscription:
confirmation_html: Θα σταματήσετε να λαμβάνετε email όταν αυτός ο λογαριασμός δημοσιεύει νέες αναρτήσεις.
title: Κατάργηση συνδρομής από %{name};
user:
confirmation_html: Θα σταματήσετε να λαμβάνετε %{type} από το Mastodon στο %{domain}.
title: Κατάργηση συνδρομής από %{type};
user_mailer:
announcement_published:
description: 'Οι διαχειριστές του %{domain} κάνουν μια ανακοίνωση:'

View File

@ -1648,15 +1648,6 @@ en-GB:
failed_sign_in_html: Failed login attempt with %{method} from %{ip} (%{browser})
successful_sign_in_html: Successful login with %{method} from %{ip} (%{browser})
title: Authentication history
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: favourite notification emails
follow: follow notification emails
follow_request: follow request emails
mention: mention notification emails
reblog: boost notification emails
media_attachments:
validations:
images_and_video: Cannot attach a video to a post that already contains images

View File

@ -1421,6 +1421,9 @@ en:
basic_information: Basic information
hint_html: "<strong>Customize what people see on your public profile and next to your posts.</strong> Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture."
other: Other
redesign_body: Profile editing can now be accessed directly from the profile page.
redesign_button: Go there
redesign_title: Theres a new profile editing experience
email_subscription_mailer:
confirmation:
action: Confirm email address

View File

@ -1589,15 +1589,6 @@ eo:
failed_sign_in_html: Malsukcese ensalutprovo per %{method} de %{ip} (%{browser})
successful_sign_in_html: Sukcese ensaluto per %{method} de %{ip} (%{browser})
title: Aŭtentiga historio
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: sciigoj retpoŝtaj de ŝatataj
follow: sciigoj retpoŝtaj de sekvoj
follow_request: retpoŝtajn petoj de sekvado
mention: sciigoj retpoŝtaj de mencioj
reblog: sciigoj retpoŝtaj de diskonigoj
media_attachments:
validations:
images_and_video: Aldoni videon al mesaĝo, kiu jam havas bildojn ne eblas

View File

@ -762,6 +762,7 @@ es-AR:
categories:
administration: Administración
devops: Operadores de desarrollo
email: Correo electrónico
invites: Invitaciones
moderation: Moderación
special: Especial
@ -790,6 +791,8 @@ es-AR:
manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP
manage_custom_emojis: Administrar emojis personalizados
manage_custom_emojis_description: Permite a los usuarios administrar emojis personalizados en el servidor
manage_email_subscriptions: Administrar suscripciones de correo electrónico
manage_email_subscriptions_description: Permitir a los usuarios suscribirse a usuarios con este permiso por correo electrónico
manage_federation: Administrar Federación
manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios y controlar las entregas
manage_invites: Administrar invitaciones
@ -1418,6 +1421,38 @@ es-AR:
basic_information: Información básica
hint_html: "<strong>Personalizá lo que la gente ve en tu perfil público y junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen con vos cuando tengas un perfil completo y una foto de perfil."
other: Otros
email_subscription_mailer:
confirmation:
action: Confirmar dirección de correo electrónico
instructions_to_confirm: Confirmá que querés recibir correos electrónicos de %{name} (@%{acct}) cuando publique algo nuevo.
instructions_to_ignore: Si no estás seguro de por qué recibiste este correo electrónico, podés eliminarlo. Si no hacés clic en el enlace de arriba, no te vas a suscribir.
subject: Confirmá tu dirección de correo electrónico
title: "¿Obtener actualizaciones por correo electrónico de %{name}?"
notification:
create_account: Crear una cuenta de Mastodon
footer:
privacy_html: Los correos electrónicos son enviados desde %{domain}, un servidor de Mastodon. Para conocer cómo este servidor procesa tus datos personales, consultá la <a href="%{privacy_policy_path}">Política de Privacidad</a>.
reason_for_email_html: Estás recibiendo este correo porque optaste recibir actualizaciones por correo electrónico de %{name}. ¿No querés recibir estos correos? <a href="%{unsubscribe_path}">Desuscribite</a>
interact_with_this_post:
one: Interactuá con esta publicación y descubrí otras similares.
other: Interactuá con estas publicaciones y descubrí otras similares.
subject:
one: 'Nueva publicación: «%{excerpt}»'
other: Nuevos publicaciones de %{name}
title:
one: 'Nueva publicación: «%{excerpt}»'
other: Nuevos mensajes de %{name}
email_subscriptions:
active: Activa
confirmations:
show:
changed_your_mind: "¿Cambiaste de opinión?"
success_html: Ahora vas a empezar a recibir correos electrónicos cuando %{name} publique algo nuevo. Agregá a %{sender} a tus contactos para que estas publicaciones no terminen en tu carpeta de spam o correo no deseado.
title: Te suscribiste
unsubscribe: Desuscribirse
inactive: Inactiva
status: Estado
subscribers: Suscriptores
emoji_styles:
auto: Automático
native: Nativo
@ -1652,15 +1687,6 @@ es-AR:
failed_sign_in_html: Intento de inicio de sesión fallido con %{method} desde %{ip} (%{browser})
successful_sign_in_html: Inicio de sesión exitoso con %{method} desde %{ip} (%{browser})
title: Historial de autenticación
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: notificaciones de favoritos por correo electrónico
follow: notificaciones de seguidores por correo electrónico
follow_request: notificaciones de solicitudes de seguimiento por correo electrónico
mention: notificaciones de menciones por correo electrónico
reblog: notificaciones de adhesiones por correo electrónico
media_attachments:
validations:
images_and_video: No se puede adjuntar un video a un mensaje que ya contenga imágenes
@ -1798,6 +1824,8 @@ es-AR:
posting_defaults: Configuración predeterminada de mensajes
public_timelines: Líneas temporales públicas
privacy:
email_subscriptions: Enviar mensajes por correo electrónico
email_subscriptions_hint_html: Agregá un formulario de registro por correo electrónico a tu perfil, que aparece para los usuarios que no iniciaron sesión. Cuando los visitantes ingresen su dirección de correo electrónico y opten por ello, Mastodon enviará actualizaciones por correo electrónico para tus mensajes públicos.
hint_html: "<strong>Personalizá cómo querés que sean encontrados tu perfil y tus mensajes.</strong> Una variedad de funciones en Mastodon pueden ayudarte a alcanzar una mayor audiencia al estar activada. Tomate un momento para revisar esta configuración para asegurarte de que se ajusta a tu caso."
privacy: Privacidad
privacy_hint_html: Controlá cuánto querés revelar a los demás. La gente descubre perfiles interesantes y aplicaciones copadas explorando los seguimientos de otras personas y viendo qué aplicaciones usan, pero puede que prefieras mantener esto oculto.
@ -2061,6 +2089,28 @@ es-AR:
resume_app_authorization: Reanudar autorización de aplicación
role_requirement: "%{domain} requiere que configurés la autenticación de dos factores antes de poder usar Mastodon."
webauthn: Llaves de seguridad
unsubscriptions:
create:
action: Ir a la página de inicio del servidor
email_subscription:
confirmation_html: Ya no recibirás correos electrónicos de %{name}.
title: Te desuscribiste
user:
confirmation_html: Ya no recibirás %{type} de Mastodon en %{domain}.
notification_emails:
favourite: correos de notificación de favoritos
follow: correos de notificación de nuevos seguidores
follow_request: correos de notificación de solicitudes de seguimiento
mention: correos de notificación de menciones
reblog: correos de notificación de adhesiones
show:
action: Desuscribirse
email_subscription:
confirmation_html: Vas a dejar de recibir correos cuando esta cuenta publique algo nuevo.
title: "¿Desuscribirse de %{name}?"
user:
confirmation_html: Vas a dejar de recibir %{type} de Mastodon en %{domain}.
title: "¿Desuscribirse de %{type}?"
user_mailer:
announcement_published:
description: 'Los administradores de %{domain} están haciendo un anuncio:'

View File

@ -762,6 +762,7 @@ es-MX:
categories:
administration: Administración
devops: DevOps
email: Correo electrónico
invites: Invitaciones
moderation: Moderación
special: Especial
@ -790,6 +791,8 @@ es-MX:
manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP
manage_custom_emojis: Administrar Emojis Personalizados
manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor
manage_email_subscriptions: Gestionar suscripciones por correo electrónico
manage_email_subscriptions_description: Permitir a los usuarios suscribirse a otros usuarios con este permiso por correo electrónico
manage_federation: Administrar Federación
manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad
manage_invites: Administrar Invitaciones
@ -1418,6 +1421,38 @@ es-MX:
basic_information: Información básica
hint_html: "<strong>Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen contigo cuando completes tu perfil y agregues una foto."
other: Otro
email_subscription_mailer:
confirmation:
action: Confirmar dirección de correo electrónico
instructions_to_confirm: Confirma que deseas recibir correos electrónicos de %{name} (@%{acct}) cuando haga una nueva publicación.
instructions_to_ignore: Si no estás seguro de por qué has recibido este correo electrónico, puedes borrarlo. No te suscribirás si no haces clic en el enlace de arriba.
subject: Confirma tu dirección de correo electrónico
title: "¿Deseas recibir actualizaciones por correo electrónico de %{name}?"
notification:
create_account: Crear una cuenta de Mastodon
footer:
privacy_html: Los correos electrónicos se envían desde %{domain} un servidor que utiliza Mastodon. Para saber cómo este servidor procesa tus datos personales, consulta la <a href="%{privacy_policy_path}">Política de privacidad</a>.
reason_for_email_html: Recibes este correo electrónico porque te has suscrito a las actualizaciones por correo electrónico de %{name}. ¿No quieres recibir estos correos electrónicos? <a href="%{unsubscribe_path}">Cancelar suscripción</a>
interact_with_this_post:
one: Interactúa con esta publicación y descubre otras similares.
other: Interactúa con estas publicaciones y descubre más.
subject:
one: 'Nueva publicación: "%{excerpt}"'
other: Nuevas publicaciones de %{name}
title:
one: 'Nueva publicación: "%{excerpt}"'
other: Nuevas publicaciones de %{name}
email_subscriptions:
active: Activa
confirmations:
show:
changed_your_mind: "¿Has cambiado de opinión?"
success_html: A partir de ahora, recibirás correos electrónicos cada vez que %{name} haga nuevas publicaciones. Añade a %{sender} a tus contactos para que estas publicaciones no terminen en tu carpeta de spam.
title: Ya estás registrado
unsubscribe: Cancelar suscripción
inactive: Inactiva
status: Estado
subscribers: Suscriptores
emoji_styles:
auto: Automático
native: Nativo
@ -1652,15 +1687,6 @@ es-MX:
failed_sign_in_html: Intento de inicio de sesión fallido con %{method} de %{ip} (%{browser})
successful_sign_in_html: Inicio de sesión exitoso con %{method} desde %{ip} (%{browser})
title: Historial de autenticación
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: correos de notificación de favoritos
follow: correos electrónicos de notificación de seguimiento
follow_request: correos electrónicos de solicitud de seguimiento
mention: correos de notificación de menciones
reblog: correos de notificación de impulsos
media_attachments:
validations:
images_and_video: No se puede adjuntar un video a una publicación que ya contenga imágenes
@ -1798,6 +1824,8 @@ es-MX:
posting_defaults: Configuración por defecto de publicaciones
public_timelines: Líneas de tiempo públicas
privacy:
email_subscriptions: Enviar publicaciones por correo electrónico
email_subscriptions_hint_html: Añade un formulario de suscripción por correo electrónico a tu perfil que se muestre a los usuarios que no hayan iniciado sesión. Cuando los visitantes introduzcan su dirección de correo electrónico y se suscriban, Mastodon les enviará actualizaciones por correo electrónico de tus publicaciones públicas.
hint_html: "<strong>Personaliza cómo te gustaría que tu perfil y tus publicaciones sean encontradas.</strong> En Mastodon tienes a tu disposición distintas características que pueden ayudarte a llegar a una audiencia más amplia cuando se encuentran activadas. Toma un momento para revisar estos ajustes para asegurarte si cumplen tus necesidades."
privacy: Privacidad
privacy_hint_html: Controla cuánto quieres compartir para el beneficio de otros. Las personas descubren perfiles interesantes y aplicaciones geniales al navegar por los seguidores de otras personas y viendo desde cuáles aplicaciones publican, pero también puedes preferir mantenerlo oculto.
@ -2061,6 +2089,28 @@ es-MX:
resume_app_authorization: Reanudar autorización de aplicación
role_requirement: "%{domain} requiere que configures la autenticación de dos pasos antes de poder utilizar Mastodon."
webauthn: Claves de seguridad
unsubscriptions:
create:
action: Ir a la página de inicio del servidor
email_subscription:
confirmation_html: Ya no recibirás correos electrónicos de %{name}.
title: Ya no estás suscrito
user:
confirmation_html: Ya no recibirás %{type} de Mastodon en %{domain}.
notification_emails:
favourite: correos electrónicos de notificación de favoritos
follow: correos electrónicos de notificación de seguimiento
follow_request: correos electrónicos de solicitud de seguimiento
mention: correos de notificación de menciones
reblog: correos de notificación de impulsos
show:
action: Cancelar suscripción
email_subscription:
confirmation_html: Dejarás de recibir correos electrónicos cuando esta cuenta haga nuevas publicaciones.
title: "¿Deseas cancelar suscripción a %{name}?"
user:
confirmation_html: Dejarás de recibir %{type} de Mastodon en %{domain}.
title: "¿Deseas cancelar suscripción a %{type}?"
user_mailer:
announcement_published:
description: 'Los administradores de %{domain} están haciendo un anuncio:'

View File

@ -762,6 +762,7 @@ es:
categories:
administration: Administración
devops: DevOps
email: Correo electrónico
invites: Invitaciones
moderation: Moderación
special: Especial
@ -790,6 +791,8 @@ es:
manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP
manage_custom_emojis: Administrar Emojis Personalizados
manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor
manage_email_subscriptions: Administrar suscripciones de correo electrónico
manage_email_subscriptions_description: Permitir a los usuarios suscribirse a usuarios con este permiso por correo electrónico
manage_federation: Administrar Federación
manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad
manage_invites: Administrar Invitaciones
@ -1418,6 +1421,38 @@ es:
basic_information: Información básica
hint_html: "<strong>Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen contigo cuando completas tu perfil y foto."
other: Otros
email_subscription_mailer:
confirmation:
action: Confirmar dirección de correo electrónico
instructions_to_confirm: Confirma que quieres recibir correos electrónicos de %{name} (@%{acct}) cuando publique algo nuevo.
instructions_to_ignore: Si no estás seguro de por qué recibiste este correo electrónico, puedes eliminarlo. No te suscribirás si no haces clic en el enlace de arriba.
subject: Confirme tu dirección de correo electrónico
title: "¿Obtener actualizaciones por correo electrónico de %{name}?"
notification:
create_account: Crear una cuenta de Mastodon
footer:
privacy_html: Los correos electrónicos son enviados desde %{domain}, un servidor de Mastodon. Para conocer cómo este servidor procesa tus datos personales, consulta la <a href="%{privacy_policy_path}">Política de Privacidad</a>.
reason_for_email_html: Estás recibiendo este correo porque has optado por recibir actualizaciones por correo electrónico de %{name}. ¿No quieres recibir estos correos? <a href="%{unsubscribe_path}">Cancela la suscripción</a>
interact_with_this_post:
one: Interactúa con esta publicación y descubre otras similares.
other: Interactúa con estas publicaciones y descubre otras similares.
subject:
one: 'Nueva publicación: "%{excerpt}"'
other: Nuevas publicaciones de %{name}
title:
one: 'Nueva publicación: "%{excerpt}"'
other: Nuevas publicaciones de %{name}
email_subscriptions:
active: Activa
confirmations:
show:
changed_your_mind: "¿Cambiaste de opinión?"
success_html: Ahora empezarás a recibir correos electrónicos cuando %{name} publique algo nuevo. Añade %{sender} a tus contactos para que estas publicaciones no terminen en tu carpeta de Spam.
title: Estás suscrito
unsubscribe: Cancelar suscripición
inactive: Inactiva
status: Estado
subscribers: Suscriptores
emoji_styles:
auto: Automático
native: Nativo
@ -1652,15 +1687,6 @@ es:
failed_sign_in_html: Intento de inicio de sesión fallido con %{method} de %{ip} (%{browser})
successful_sign_in_html: Inicio de sesión exitoso con %{method} desde %{ip} (%{browser})
title: Historial de autenticación
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: correos de notificación de favoritos
follow: correos de notificación de nuevos seguidores
follow_request: correos de notificación de solicitud de seguidor
mention: correos de notificación de menciones
reblog: correos de notificación de impulsos
media_attachments:
validations:
images_and_video: No se puede adjuntar un video a una publicación que ya contenga imágenes
@ -1798,6 +1824,8 @@ es:
posting_defaults: Configuración por defecto de publicaciones
public_timelines: Líneas de tiempo públicas
privacy:
email_subscriptions: Enviar mensajes por correo electrónico
email_subscriptions_hint_html: Añade un formulario de registro por correo electrónico a tu perfil, que aparece para los usuarios que no han iniciado sesión. Cuando los visitantes ingresen su dirección de correo electrónico y opten por ello, Mastodon enviará actualizaciones por correo electrónico para tus publicaciones públicas.
hint_html: "<strong>Personaliza el descubrimiento de tu perfil y tus publicaciones.</strong> En Mastodon tienes distintas características que te ayudarán a alcanzar una mayor audiencia si las activas. Tómate un momento para revisar estas configuraciones y asegurarte de que cumplen tus necesidades."
privacy: Privacidad
privacy_hint_html: Controla cuánto deseas revelar a los demás. Las personas descubren perfiles y aplicaciones interesantes navegando por los seguidores de otras personas y viendo desde qué aplicaciones publican, pero puede que prefieras mantenerlo oculto.
@ -2061,6 +2089,28 @@ es:
resume_app_authorization: Reanudar autorización de aplicación
role_requirement: "%{domain} requiere que establezcas la autenticación en dos pasos para poder usar Mastodon."
webauthn: Claves de seguridad
unsubscriptions:
create:
action: Ir a la página de inicio del servidor
email_subscription:
confirmation_html: Ya no recibirás correos electrónicos de %{name}.
title: Ya no estás suscrito
user:
confirmation_html: Ya no recibirás %{type} de Mastodon en %{domain}.
notification_emails:
favourite: correos de notificación de favoritos
follow: correos de notificación de nuevos seguidores
follow_request: correos de notificación de solicitudes de seguimiento
mention: correos de notificación de menciones
reblog: correos de notificación de impulsos
show:
action: Cancelar suscripción
email_subscription:
confirmation_html: Dejarás de recibir correos cuando esta cuenta publique algo nuevo.
title: "¿Darse de baja de %{name}?"
user:
confirmation_html: Dejarás de recibir %{type} de Mastodon en %{domain}.
title: "¿Darse de baja de %{type}?"
user_mailer:
announcement_published:
description: 'Los administradores de %{domain} están haciendo un anuncio:'

View File

@ -1633,15 +1633,6 @@ et:
failed_sign_in_html: Nurjunud sisenemine meetodiga %{method} aadressilt %{ip} (%{browser})
successful_sign_in_html: Edukas sisenemine meetodiga %{method} aadressilt %{ip} (%{browser})
title: Autentimise ajalugu
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: lemmikuks märkimise teavituskirjade
follow: jälgimiste teavituskirjade
follow_request: jälgimistaotluste teavituskirjade
mention: mainimiste teavituskirjade
reblog: jagamiste teavituskirjade
media_attachments:
validations:
images_and_video: Ei saa lisada video postitusele, milles on juba pildid

View File

@ -1535,15 +1535,6 @@ eu:
failed_sign_in_html: Huts egindako saioa hasteko saiakera %{method} erabiliz %{ip} IPtik (%{browser})
successful_sign_in_html: Saioa hasiera arrakastatsua %{method} erabiliz %{ip} IPtik (%{browser})
title: Autentifikazioen historia
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: zure argitalpena gogoko egin dutenaren jakinarazpen e-mailak
follow: jarraitu jakinarazpen-mezu elektronikoak
follow_request: jarraipen-eskaeren jakinarazpen e-mailak
mention: aipamenen jakinarazpen e-mailak
reblog: bultzaden jakinarazpen e-mailak
media_attachments:
validations:
images_and_video: Ezin da irudiak dituen bidalketa batean bideo bat erantsi

View File

@ -1629,15 +1629,6 @@ fa:
failed_sign_in_html: تلاش‌های شکست‌خوردهٔ ورود با %{method} از %{ip} (%{browser})
successful_sign_in_html: ورودهای موفق با %{method} از %{ip} (%{browser})
title: تاریخچهٔ تأیید هویت
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: رایانامه‌های آگاهی برگزیدن
follow: رایانامه‌های آگاهی پی‌گیری
follow_request: رایانامه‌های درخواست پی‌گیری
mention: رایانامه‌های آگاهی اشاره
reblog: رایانامه‌های آگاهی تقویت
media_attachments:
validations:
images_and_video: نمی‌توان برای نوشته‌ای که تصویر دارد ویدیو بارگذاری کرد

View File

@ -1652,15 +1652,6 @@ fi:
failed_sign_in_html: Epäonnistunut kirjautumisyritys %{method} IP-osoitteesta %{ip} (%{browser})
successful_sign_in_html: Onnistunut kirjautuminen %{method} IP-osoitteesta %{ip} (%{browser})
title: Todennushistoria
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: sähköposti-ilmoituksia suosikkeihin lisäämisistä
follow: sähköposti-ilmoituksia seuraamisista
follow_request: sähköposti-ilmoituksia seurantapyynnöistä
mention: sähköposti-ilmoituksia maininnoista
reblog: sähköposti-ilmoituksia tehostuksista
media_attachments:
validations:
images_and_video: Videota ei voi liittää tilapäivitykseen, jossa on jo kuvia

View File

@ -1648,15 +1648,6 @@ fo:
failed_sign_in_html: Miseydnað innritanarroynd við %{method} frá %{ip} (%{browser})
successful_sign_in_html: Eydnað innritan við %{method} frá %{ip} (%{browser})
title: Samgildissøga
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: yndisfráboðanarteldupostar
follow: fylg fráboðanarteldupostar
follow_request: fylg umbønir um teldupost
mention: nevn fráboðanarteldupostar
reblog: framhevja fráboðanarpostar
media_attachments:
validations:
images_and_video: Kann ikki viðfesta sjónfílu til ein post, sum longu inniheldur myndir

View File

@ -1655,15 +1655,6 @@ fr-CA:
failed_sign_in_html: Tentative de connexion échouée avec %{method} de %{ip} (%{browser})
successful_sign_in_html: Connexion réussie avec %{method} de %{ip} (%{browser})
title: Historique d'authentification
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: e-mails de notifications de favoris
follow: e-mails de notifications dabonnements
follow_request: e-mails de demandes dabonnements
mention: e-mails de notifications de mentions
reblog: e-mails de notifications de partages
media_attachments:
validations:
images_and_video: Impossible de joindre une vidéo à un message contenant déjà des images

View File

@ -80,7 +80,7 @@ fr:
enabled_msg: Le compte de %{username} a été dégelé avec succès
followers: Abonné·e·s
follows: Abonnements
header: Entête
header: Image de couverture
inbox_url: URL dentrée
invite_request_text: Raisons de ladhésion
invited_by: Invité par
@ -128,7 +128,7 @@ fr:
remote_suspension_irreversible: Les données de ce compte ont été supprimées définitivement.
remote_suspension_reversible_hint_html: Ce compte a été suspendu par son serveur d'accueil, et les données rattachées seront supprimées le %{date}. Jusqu'à cette date, il peut être restauré sans aucune perte par le serveur distant. Si vous souhaitez supprimer immédiatement toutes les données de ce compte, vous pouvez le faire ci-dessous.
remove_avatar: Supprimer lavatar
remove_header: Supprimer lentête
remove_header: Supprimer l'image de couverture
removed_avatar_msg: Lavatar de %{username} a été supprimé avec succès
removed_header_msg: Limage den-tête de %{username} a été supprimée avec succès
resend_confirmation:
@ -1655,15 +1655,6 @@ fr:
failed_sign_in_html: Tentative de connexion échouée avec %{method} de %{ip} (%{browser})
successful_sign_in_html: Connexion réussie avec %{method} de %{ip} (%{browser})
title: Historique d'authentification
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: e-mails de notifications de favoris
follow: e-mails de notifications dabonnements
follow_request: e-mails de demandes dabonnements
mention: e-mails de notifications de mentions
reblog: e-mails de notifications de partages
media_attachments:
validations:
images_and_video: Impossible de joindre une vidéo à un message contenant déjà des images

View File

@ -1594,15 +1594,6 @@ fy:
failed_sign_in_html: Mislearre oanmeldbesykjen mei %{method} fan %{ip} (%{browser})
successful_sign_in_html: Mei sukses oanmeld mei %{method} fan %{ip} (%{browser})
title: Oanmeldskiednis
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: e-mailmeldingen foar favoriten
follow: e-mailmeldingen foar nije folgers
follow_request: e-mailmeldingen foar folchfersiken
mention: e-mailmeldingen foar fermeldingen
reblog: e-mailmeldingen foar boosts
media_attachments:
validations:
images_and_video: In fideo kin net oan in berjocht mei ôfbyldingen keppele wurde

View File

@ -1777,15 +1777,6 @@ ga:
failed_sign_in_html: Theip ar iarracht síniú isteach le %{method} ó %{ip} (%{browser})
successful_sign_in_html: D'éirigh le síniú isteach le %{method} ó %{ip} (%{browser})
title: Stair fíordheimhnithe
mail_subscriptions:
unsubscribe:
emails:
notification_emails:
favourite: ríomhphoist fógra is fearr leat
follow: leanúint ríomhphoist fógra
follow_request: lean ríomhphoist iarratais
mention: trácht ar ríomhphoist fógra
reblog: ríomhphoist fógraí a threisiú
media_attachments:
validations:
images_and_video: Ní féidir físeán a cheangal le postáil a bhfuil íomhánna ann cheana féin

Some files were not shown because too many files have changed in this diff Show More