mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-26 07:21:51 +00:00
Compare commits
13 Commits
480fdc0519
...
ce0c4da86a
Author | SHA1 | Date | |
---|---|---|---|
|
ce0c4da86a | ||
|
6d62581da1 | ||
|
9a7130d6da | ||
|
2d8fed23e6 | ||
|
1a88c05274 | ||
|
1be83c6982 | ||
|
74df47ad9c | ||
|
ab9c62e8c7 | ||
|
fd90f04f0e | ||
|
7fb0880e1e | ||
|
4521390163 | ||
|
1333ed4d4e | ||
|
a20dca7327 |
2
.github/workflows/bundler-audit.yml
vendored
2
.github/workflows/bundler-audit.yml
vendored
|
@ -36,4 +36,4 @@ jobs:
|
|||
bundler-cache: true
|
||||
|
||||
- name: Run bundler-audit
|
||||
run: bundle exec bundler-audit check --update
|
||||
run: bin/bundler-audit check --update
|
||||
|
|
10
.github/workflows/check-i18n.yml
vendored
10
.github/workflows/check-i18n.yml
vendored
|
@ -35,18 +35,18 @@ jobs:
|
|||
git diff --exit-code
|
||||
|
||||
- name: Check locale file normalization
|
||||
run: bundle exec i18n-tasks check-normalized
|
||||
run: bin/i18n-tasks check-normalized
|
||||
|
||||
- name: Check for unused strings
|
||||
run: bundle exec i18n-tasks unused
|
||||
run: bin/i18n-tasks unused
|
||||
|
||||
- name: Check for missing strings in English YML
|
||||
run: |
|
||||
bundle exec i18n-tasks add-missing -l en
|
||||
bin/i18n-tasks add-missing -l en
|
||||
git diff --exit-code
|
||||
|
||||
- name: Check for wrong string interpolations
|
||||
run: bundle exec i18n-tasks check-consistent-interpolations
|
||||
run: bin/i18n-tasks check-consistent-interpolations
|
||||
|
||||
- name: Check that all required locale files exist
|
||||
run: bundle exec rake repo:check_locales_files
|
||||
run: bin/rake repo:check_locales_files
|
||||
|
|
|
@ -46,7 +46,7 @@ jobs:
|
|||
uses: ./.github/actions/setup-ruby
|
||||
|
||||
- name: Run i18n normalize task
|
||||
run: bundle exec i18n-tasks normalize
|
||||
run: bin/i18n-tasks normalize
|
||||
|
||||
# Create or update the pull request
|
||||
- name: Create Pull Request
|
||||
|
|
2
.github/workflows/crowdin-download.yml
vendored
2
.github/workflows/crowdin-download.yml
vendored
|
@ -48,7 +48,7 @@ jobs:
|
|||
uses: ./.github/actions/setup-ruby
|
||||
|
||||
- name: Run i18n normalize task
|
||||
run: bundle exec i18n-tasks normalize
|
||||
run: bin/i18n-tasks normalize
|
||||
|
||||
# Create or update the pull request
|
||||
- name: Create Pull Request
|
||||
|
|
2
.github/workflows/lint-haml.yml
vendored
2
.github/workflows/lint-haml.yml
vendored
|
@ -43,4 +43,4 @@ jobs:
|
|||
- name: Run haml-lint
|
||||
run: |
|
||||
echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json"
|
||||
bundle exec haml-lint --reporter github
|
||||
bin/haml-lint --reporter github
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# syntax=docker/dockerfile:1.10
|
||||
# syntax=docker/dockerfile:1.11
|
||||
|
||||
# This file is designed for production server deployment, not local development work
|
||||
# For a containerized local dev environment, see: https://github.com/mastodon/mastodon/blob/main/README.md#docker
|
||||
|
|
|
@ -1031,7 +1031,7 @@ DEPENDENCIES
|
|||
xorcist (~> 1.1)
|
||||
|
||||
RUBY VERSION
|
||||
ruby 3.3.5p100
|
||||
ruby 3.3.6p108
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.22
|
||||
2.5.23
|
||||
|
|
36
app/controllers/admin/terms_of_service/drafts_controller.rb
Normal file
36
app/controllers/admin/terms_of_service/drafts_controller.rb
Normal file
|
@ -0,0 +1,36 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::TermsOfService::DraftsController < Admin::BaseController
|
||||
before_action :set_terms_of_service
|
||||
|
||||
def show
|
||||
authorize :terms_of_service, :create?
|
||||
end
|
||||
|
||||
def update
|
||||
authorize @terms_of_service, :update?
|
||||
|
||||
@terms_of_service.published_at = Time.now.utc if params[:action_type] == 'publish'
|
||||
|
||||
if @terms_of_service.update(resource_params)
|
||||
log_action(:publish, @terms_of_service) if @terms_of_service.published?
|
||||
redirect_to @terms_of_service.published? ? admin_terms_of_service_index_path : admin_terms_of_service_draft_path
|
||||
else
|
||||
render :show
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_terms_of_service
|
||||
@terms_of_service = TermsOfService.draft.first || TermsOfService.new(text: current_terms_of_service&.text)
|
||||
end
|
||||
|
||||
def current_terms_of_service
|
||||
TermsOfService.live.first
|
||||
end
|
||||
|
||||
def resource_params
|
||||
params.require(:terms_of_service).permit(:text, :changelog)
|
||||
end
|
||||
end
|
|
@ -0,0 +1,37 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::TermsOfService::GeneratesController < Admin::BaseController
|
||||
before_action :set_instance_presenter
|
||||
|
||||
def show
|
||||
authorize :terms_of_service, :create?
|
||||
|
||||
@generator = TermsOfService::Generator.new(
|
||||
domain: @instance_presenter.domain,
|
||||
admin_email: @instance_presenter.contact.email
|
||||
)
|
||||
end
|
||||
|
||||
def create
|
||||
authorize :terms_of_service, :create?
|
||||
|
||||
@generator = TermsOfService::Generator.new(resource_params)
|
||||
|
||||
if @generator.valid?
|
||||
TermsOfService.create!(text: @generator.render)
|
||||
redirect_to admin_terms_of_service_draft_path
|
||||
else
|
||||
render :show
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_instance_presenter
|
||||
@instance_presenter = InstancePresenter.new
|
||||
end
|
||||
|
||||
def resource_params
|
||||
params.require(:terms_of_service_generator).permit(*TermsOfService::Generator::VARIABLES)
|
||||
end
|
||||
end
|
|
@ -0,0 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::TermsOfService::HistoriesController < Admin::BaseController
|
||||
def show
|
||||
authorize :terms_of_service, :index?
|
||||
@terms_of_service = TermsOfService.published.all
|
||||
end
|
||||
end
|
|
@ -0,0 +1,29 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::TermsOfService::PreviewsController < Admin::BaseController
|
||||
before_action :set_terms_of_service
|
||||
|
||||
def show
|
||||
authorize @terms_of_service, :distribute?
|
||||
@user_count = @terms_of_service.scope_for_notification.count
|
||||
end
|
||||
|
||||
def test
|
||||
authorize @terms_of_service, :distribute?
|
||||
UserMailer.terms_of_service_changed(current_user, @terms_of_service).deliver_later!
|
||||
redirect_to admin_terms_of_service_preview_path(@terms_of_service)
|
||||
end
|
||||
|
||||
def distribute
|
||||
authorize @terms_of_service, :distribute?
|
||||
@terms_of_service.touch(:notification_sent_at)
|
||||
Admin::DistributeTermsOfServiceNotificationWorker.perform_async(@terms_of_service.id)
|
||||
redirect_to admin_terms_of_service_index_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_terms_of_service
|
||||
@terms_of_service = TermsOfService.find(params[:terms_of_service_id])
|
||||
end
|
||||
end
|
8
app/controllers/admin/terms_of_service_controller.rb
Normal file
8
app/controllers/admin/terms_of_service_controller.rb
Normal file
|
@ -0,0 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::TermsOfServiceController < Admin::BaseController
|
||||
def index
|
||||
authorize :terms_of_service, :index?
|
||||
@terms_of_service = TermsOfService.live.first
|
||||
end
|
||||
end
|
|
@ -0,0 +1,16 @@
|
|||
# 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::PrivacyPolicySerializer
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_terms_of_service
|
||||
@terms_of_service = TermsOfService.live.first!
|
||||
end
|
||||
end
|
|
@ -64,6 +64,10 @@ module FormattingHelper
|
|||
end
|
||||
end
|
||||
|
||||
def markdown(text)
|
||||
Redcarpet::Markdown.new(Redcarpet::Render::HTML, escape_html: true, no_images: true).render(text).html_safe # rubocop:disable Rails/OutputSafety
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def wrapped_status_content_format(status)
|
||||
|
|
11
app/javascript/mastodon/api/instance.ts
Normal file
11
app/javascript/mastodon/api/instance.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { apiRequestGet } from 'mastodon/api';
|
||||
import type {
|
||||
ApiTermsOfServiceJSON,
|
||||
ApiPrivacyPolicyJSON,
|
||||
} from 'mastodon/api_types/instance';
|
||||
|
||||
export const apiGetTermsOfService = () =>
|
||||
apiRequestGet<ApiTermsOfServiceJSON>('v1/instance/terms_of_service');
|
||||
|
||||
export const apiGetPrivacyPolicy = () =>
|
||||
apiRequestGet<ApiPrivacyPolicyJSON>('v1/instance/privacy_policy');
|
9
app/javascript/mastodon/api_types/instance.ts
Normal file
9
app/javascript/mastodon/api_types/instance.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
export interface ApiTermsOfServiceJSON {
|
||||
updated_at: string;
|
||||
content: string;
|
||||
}
|
||||
|
||||
export interface ApiPrivacyPolicyJSON {
|
||||
updated_at: string;
|
||||
content: string;
|
||||
}
|
|
@ -18,7 +18,7 @@ import { Icon } from 'mastodon/components/icon';
|
|||
import { ServerHeroImage } from 'mastodon/components/server_hero_image';
|
||||
import { Skeleton } from 'mastodon/components/skeleton';
|
||||
import Account from 'mastodon/containers/account_container';
|
||||
import LinkFooter from 'mastodon/features/ui/components/link_footer';
|
||||
import { LinkFooter} from 'mastodon/features/ui/components/link_footer';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: { id: 'column.about', defaultMessage: 'About' },
|
||||
|
|
|
@ -25,7 +25,7 @@ import StarIcon from '@/material-icons/400-24px/star.svg?react';
|
|||
import { fetchFollowRequests } from 'mastodon/actions/accounts';
|
||||
import Column from 'mastodon/components/column';
|
||||
import ColumnHeader from 'mastodon/components/column_header';
|
||||
import LinkFooter from 'mastodon/features/ui/components/link_footer';
|
||||
import { LinkFooter } from 'mastodon/features/ui/components/link_footer';
|
||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
||||
import { canManageReports, canViewAdminDashboard } from 'mastodon/permissions';
|
||||
|
||||
|
|
|
@ -312,7 +312,7 @@ const ListMembers: React.FC<{
|
|||
footer={
|
||||
mode === 'remove' && (
|
||||
<>
|
||||
<div className='spacer' />
|
||||
{displayedAccountIds.length > 0 && <div className='spacer' />}
|
||||
|
||||
<div className='column-footer'>
|
||||
<Link to={`/lists/${id}`} className='button button--block'>
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
import PropTypes from 'prop-types';
|
||||
import { PureComponent } from 'react';
|
||||
|
||||
import { FormattedMessage, FormattedDate, injectIntl, defineMessages } from 'react-intl';
|
||||
|
||||
import { Helmet } from 'react-helmet';
|
||||
|
||||
import api from 'mastodon/api';
|
||||
import Column from 'mastodon/components/column';
|
||||
import { Skeleton } from 'mastodon/components/skeleton';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' },
|
||||
});
|
||||
|
||||
class PrivacyPolicy extends PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
intl: PropTypes.object,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
state = {
|
||||
content: null,
|
||||
lastUpdated: null,
|
||||
isLoading: true,
|
||||
};
|
||||
|
||||
componentDidMount () {
|
||||
api().get('/api/v1/instance/privacy_policy').then(({ data }) => {
|
||||
this.setState({ content: data.content, lastUpdated: data.updated_at, isLoading: false });
|
||||
}).catch(() => {
|
||||
this.setState({ isLoading: false });
|
||||
});
|
||||
}
|
||||
|
||||
render () {
|
||||
const { intl, multiColumn } = this.props;
|
||||
const { isLoading, content, lastUpdated } = this.state;
|
||||
|
||||
return (
|
||||
<Column bindToDocument={!multiColumn} label={intl.formatMessage(messages.title)}>
|
||||
<div className='scrollable privacy-policy'>
|
||||
<div className='column-title'>
|
||||
<h3><FormattedMessage id='privacy_policy.title' defaultMessage='Privacy Policy' /></h3>
|
||||
<p><FormattedMessage id='privacy_policy.last_updated' defaultMessage='Last updated {date}' values={{ date: isLoading ? <Skeleton width='10ch' /> : <FormattedDate value={lastUpdated} year='numeric' month='short' day='2-digit' /> }} /></p>
|
||||
</div>
|
||||
|
||||
<div
|
||||
className='privacy-policy__body prose'
|
||||
dangerouslySetInnerHTML={{ __html: content }}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Helmet>
|
||||
<title>{intl.formatMessage(messages.title)}</title>
|
||||
<meta name='robots' content='all' />
|
||||
</Helmet>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default injectIntl(PrivacyPolicy);
|
90
app/javascript/mastodon/features/privacy_policy/index.tsx
Normal file
90
app/javascript/mastodon/features/privacy_policy/index.tsx
Normal file
|
@ -0,0 +1,90 @@
|
|||
import { useState, useEffect } from 'react';
|
||||
|
||||
import {
|
||||
FormattedMessage,
|
||||
FormattedDate,
|
||||
useIntl,
|
||||
defineMessages,
|
||||
} from 'react-intl';
|
||||
|
||||
import { Helmet } from 'react-helmet';
|
||||
|
||||
import { apiGetPrivacyPolicy } from 'mastodon/api/instance';
|
||||
import type { ApiPrivacyPolicyJSON } from 'mastodon/api_types/instance';
|
||||
import Column from 'mastodon/components/column';
|
||||
import { Skeleton } from 'mastodon/components/skeleton';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' },
|
||||
});
|
||||
|
||||
const PrivacyPolicy: React.FC<{
|
||||
multiColumn: boolean;
|
||||
}> = ({ multiColumn }) => {
|
||||
const intl = useIntl();
|
||||
const [response, setResponse] = useState<ApiPrivacyPolicyJSON>();
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
apiGetPrivacyPolicy()
|
||||
.then((data) => {
|
||||
setResponse(data);
|
||||
setLoading(false);
|
||||
return '';
|
||||
})
|
||||
.catch(() => {
|
||||
setLoading(false);
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Column
|
||||
bindToDocument={!multiColumn}
|
||||
label={intl.formatMessage(messages.title)}
|
||||
>
|
||||
<div className='scrollable privacy-policy'>
|
||||
<div className='column-title'>
|
||||
<h3>
|
||||
<FormattedMessage
|
||||
id='privacy_policy.title'
|
||||
defaultMessage='Privacy Policy'
|
||||
/>
|
||||
</h3>
|
||||
<p>
|
||||
<FormattedMessage
|
||||
id='privacy_policy.last_updated'
|
||||
defaultMessage='Last updated {date}'
|
||||
values={{
|
||||
date: loading ? (
|
||||
<Skeleton width='10ch' />
|
||||
) : (
|
||||
<FormattedDate
|
||||
value={response?.updated_at}
|
||||
year='numeric'
|
||||
month='short'
|
||||
day='2-digit'
|
||||
/>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{response && (
|
||||
<div
|
||||
className='privacy-policy__body prose'
|
||||
dangerouslySetInnerHTML={{ __html: response.content }}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<Helmet>
|
||||
<title>{intl.formatMessage(messages.title)}</title>
|
||||
<meta name='robots' content='all' />
|
||||
</Helmet>
|
||||
</Column>
|
||||
);
|
||||
};
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default PrivacyPolicy;
|
90
app/javascript/mastodon/features/terms_of_service/index.tsx
Normal file
90
app/javascript/mastodon/features/terms_of_service/index.tsx
Normal file
|
@ -0,0 +1,90 @@
|
|||
import { useState, useEffect } from 'react';
|
||||
|
||||
import {
|
||||
FormattedMessage,
|
||||
FormattedDate,
|
||||
useIntl,
|
||||
defineMessages,
|
||||
} from 'react-intl';
|
||||
|
||||
import { Helmet } from 'react-helmet';
|
||||
|
||||
import { apiGetTermsOfService } from 'mastodon/api/instance';
|
||||
import type { ApiTermsOfServiceJSON } from 'mastodon/api_types/instance';
|
||||
import Column from 'mastodon/components/column';
|
||||
import { Skeleton } from 'mastodon/components/skeleton';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: { id: 'terms_of_service.title', defaultMessage: 'Terms of Service' },
|
||||
});
|
||||
|
||||
const TermsOfService: React.FC<{
|
||||
multiColumn: boolean;
|
||||
}> = ({ multiColumn }) => {
|
||||
const intl = useIntl();
|
||||
const [response, setResponse] = useState<ApiTermsOfServiceJSON>();
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
apiGetTermsOfService()
|
||||
.then((data) => {
|
||||
setResponse(data);
|
||||
setLoading(false);
|
||||
return '';
|
||||
})
|
||||
.catch(() => {
|
||||
setLoading(false);
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Column
|
||||
bindToDocument={!multiColumn}
|
||||
label={intl.formatMessage(messages.title)}
|
||||
>
|
||||
<div className='scrollable privacy-policy'>
|
||||
<div className='column-title'>
|
||||
<h3>
|
||||
<FormattedMessage
|
||||
id='terms_of_service.title'
|
||||
defaultMessage='Terms of Service'
|
||||
/>
|
||||
</h3>
|
||||
<p>
|
||||
<FormattedMessage
|
||||
id='privacy_policy.last_updated'
|
||||
defaultMessage='Last updated {date}'
|
||||
values={{
|
||||
date: loading ? (
|
||||
<Skeleton width='10ch' />
|
||||
) : (
|
||||
<FormattedDate
|
||||
value={response?.updated_at}
|
||||
year='numeric'
|
||||
month='short'
|
||||
day='2-digit'
|
||||
/>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{response && (
|
||||
<div
|
||||
className='privacy-policy__body prose'
|
||||
dangerouslySetInnerHTML={{ __html: response.content }}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<Helmet>
|
||||
<title>{intl.formatMessage(messages.title)}</title>
|
||||
<meta name='robots' content='all' />
|
||||
</Helmet>
|
||||
</Column>
|
||||
);
|
||||
};
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default TermsOfService;
|
|
@ -7,10 +7,9 @@ import { changeComposing, mountCompose, unmountCompose } from 'mastodon/actions/
|
|||
import ServerBanner from 'mastodon/components/server_banner';
|
||||
import ComposeFormContainer from 'mastodon/features/compose/containers/compose_form_container';
|
||||
import SearchContainer from 'mastodon/features/compose/containers/search_container';
|
||||
import { LinkFooter } from 'mastodon/features/ui/components/link_footer';
|
||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
||||
|
||||
import LinkFooter from './link_footer';
|
||||
|
||||
class ComposePanel extends PureComponent {
|
||||
static propTypes = {
|
||||
identity: identityContextPropShape,
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
import PropTypes from 'prop-types';
|
||||
import { PureComponent } from 'react';
|
||||
|
||||
import { FormattedMessage, injectIntl } from 'react-intl';
|
||||
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { openModal } from 'mastodon/actions/modal';
|
||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
||||
import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'mastodon/initial_state';
|
||||
import { PERMISSION_INVITE_USERS } from 'mastodon/permissions';
|
||||
|
||||
const mapDispatchToProps = (dispatch) => ({
|
||||
onLogout () {
|
||||
dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' }));
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
class LinkFooter extends PureComponent {
|
||||
static propTypes = {
|
||||
identity: identityContextPropShape,
|
||||
multiColumn: PropTypes.bool,
|
||||
onLogout: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
handleLogoutClick = e => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
this.props.onLogout();
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
render () {
|
||||
const { signedIn, permissions } = this.props.identity;
|
||||
const { multiColumn } = this.props;
|
||||
|
||||
const canInvite = signedIn && ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS);
|
||||
const canProfileDirectory = profileDirectory;
|
||||
|
||||
const DividingCircle = <span aria-hidden>{' · '}</span>;
|
||||
|
||||
return (
|
||||
<div className='link-footer'>
|
||||
<p>
|
||||
<strong>{domain}</strong>:
|
||||
{' '}
|
||||
<Link to='/about' target={multiColumn ? '_blank' : undefined}><FormattedMessage id='footer.about' defaultMessage='About' /></Link>
|
||||
{statusPageUrl && (
|
||||
<>
|
||||
{DividingCircle}
|
||||
<a href={statusPageUrl} target='_blank' rel='noopener'><FormattedMessage id='footer.status' defaultMessage='Status' /></a>
|
||||
</>
|
||||
)}
|
||||
{canInvite && (
|
||||
<>
|
||||
{DividingCircle}
|
||||
<a href='/invites' target='_blank'><FormattedMessage id='footer.invite' defaultMessage='Invite people' /></a>
|
||||
</>
|
||||
)}
|
||||
{canProfileDirectory && (
|
||||
<>
|
||||
{DividingCircle}
|
||||
<Link to='/directory'><FormattedMessage id='footer.directory' defaultMessage='Profiles directory' /></Link>
|
||||
</>
|
||||
)}
|
||||
{DividingCircle}
|
||||
<Link to='/privacy-policy' target={multiColumn ? '_blank' : undefined}><FormattedMessage id='footer.privacy_policy' defaultMessage='Privacy policy' /></Link>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Mastodon</strong>:
|
||||
{' '}
|
||||
<a href='https://joinmastodon.org' target='_blank'><FormattedMessage id='footer.about' defaultMessage='About' /></a>
|
||||
{DividingCircle}
|
||||
<a href='https://joinmastodon.org/apps' target='_blank'><FormattedMessage id='footer.get_app' defaultMessage='Get the app' /></a>
|
||||
{DividingCircle}
|
||||
<Link to='/keyboard-shortcuts'><FormattedMessage id='footer.keyboard_shortcuts' defaultMessage='Keyboard shortcuts' /></Link>
|
||||
{DividingCircle}
|
||||
<a href={source_url} rel='noopener noreferrer' target='_blank'><FormattedMessage id='footer.source_code' defaultMessage='View source code' /></a>
|
||||
{DividingCircle}
|
||||
<span className='version'>v{version}</span>
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default injectIntl(withIdentity(connect(null, mapDispatchToProps)(LinkFooter)));
|
|
@ -0,0 +1,95 @@
|
|||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import {
|
||||
domain,
|
||||
version,
|
||||
source_url,
|
||||
statusPageUrl,
|
||||
profile_directory as canProfileDirectory,
|
||||
} from 'mastodon/initial_state';
|
||||
|
||||
const DividingCircle: React.FC = () => <span aria-hidden>{' · '}</span>;
|
||||
|
||||
export const LinkFooter: React.FC<{
|
||||
multiColumn: boolean;
|
||||
}> = ({ multiColumn }) => {
|
||||
return (
|
||||
<div className='link-footer'>
|
||||
<p>
|
||||
<strong>{domain}</strong>:{' '}
|
||||
<Link to='/about' target={multiColumn ? '_blank' : undefined}>
|
||||
<FormattedMessage id='footer.about' defaultMessage='About' />
|
||||
</Link>
|
||||
{statusPageUrl && (
|
||||
<>
|
||||
<DividingCircle />
|
||||
<a href={statusPageUrl} target='_blank' rel='noopener noreferrer'>
|
||||
<FormattedMessage id='footer.status' defaultMessage='Status' />
|
||||
</a>
|
||||
</>
|
||||
)}
|
||||
{canProfileDirectory && (
|
||||
<>
|
||||
<DividingCircle />
|
||||
<Link to='/directory'>
|
||||
<FormattedMessage
|
||||
id='footer.directory'
|
||||
defaultMessage='Profiles directory'
|
||||
/>
|
||||
</Link>
|
||||
</>
|
||||
)}
|
||||
<DividingCircle />
|
||||
<Link to='/privacy-policy' target={multiColumn ? '_blank' : undefined}>
|
||||
<FormattedMessage
|
||||
id='footer.privacy_policy'
|
||||
defaultMessage='Privacy policy'
|
||||
/>
|
||||
</Link>
|
||||
<DividingCircle />
|
||||
<Link
|
||||
to='/terms-of-service'
|
||||
target={multiColumn ? '_blank' : undefined}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='footer.terms_of_service'
|
||||
defaultMessage='Terms of service'
|
||||
/>
|
||||
</Link>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Mastodon</strong>:{' '}
|
||||
<a href='https://joinmastodon.org' target='_blank' rel='noreferrer'>
|
||||
<FormattedMessage id='footer.about' defaultMessage='About' />
|
||||
</a>
|
||||
<DividingCircle />
|
||||
<a
|
||||
href='https://joinmastodon.org/apps'
|
||||
target='_blank'
|
||||
rel='noreferrer'
|
||||
>
|
||||
<FormattedMessage id='footer.get_app' defaultMessage='Get the app' />
|
||||
</a>
|
||||
<DividingCircle />
|
||||
<Link to='/keyboard-shortcuts'>
|
||||
<FormattedMessage
|
||||
id='footer.keyboard_shortcuts'
|
||||
defaultMessage='Keyboard shortcuts'
|
||||
/>
|
||||
</Link>
|
||||
<DividingCircle />
|
||||
<a href={source_url} rel='noopener noreferrer' target='_blank'>
|
||||
<FormattedMessage
|
||||
id='footer.source_code'
|
||||
defaultMessage='View source code'
|
||||
/>
|
||||
</a>
|
||||
<DividingCircle />
|
||||
<span className='version'>v{version}</span>
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
};
|
|
@ -70,6 +70,7 @@ import {
|
|||
Onboarding,
|
||||
About,
|
||||
PrivacyPolicy,
|
||||
TermsOfService,
|
||||
} from './util/async-components';
|
||||
import { ColumnsContextProvider } from './util/columns_context';
|
||||
import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers';
|
||||
|
@ -197,6 +198,7 @@ class SwitchingColumnsArea extends PureComponent {
|
|||
<WrappedRoute path='/keyboard-shortcuts' component={KeyboardShortcuts} content={children} />
|
||||
<WrappedRoute path='/about' component={About} content={children} />
|
||||
<WrappedRoute path='/privacy-policy' component={PrivacyPolicy} content={children} />
|
||||
<WrappedRoute path='/terms-of-service' component={TermsOfService} content={children} />
|
||||
|
||||
<WrappedRoute path={['/home', '/timelines/home']} component={HomeTimeline} content={children} />
|
||||
<Redirect from='/timelines/public' to='/public' exact />
|
||||
|
|
|
@ -202,6 +202,10 @@ export function PrivacyPolicy () {
|
|||
return import(/*webpackChunkName: "features/privacy_policy" */'../../privacy_policy');
|
||||
}
|
||||
|
||||
export function TermsOfService () {
|
||||
return import(/*webpackChunkName: "features/terms_of_service" */'../../terms_of_service');
|
||||
}
|
||||
|
||||
export function NotificationRequests () {
|
||||
return import(/*webpackChunkName: "features/notifications/requests" */'../../notifications/requests');
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
* @property {boolean=} use_pending_items
|
||||
* @property {string} version
|
||||
* @property {string} sso_redirect
|
||||
* @property {string} status_page_url
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -115,7 +116,6 @@ export const usePendingItems = getMeta('use_pending_items');
|
|||
export const version = getMeta('version');
|
||||
export const languages = initialState?.languages;
|
||||
export const criticalUpdatesPending = initialState?.critical_updates_pending;
|
||||
// @ts-expect-error
|
||||
export const statusPageUrl = getMeta('status_page_url');
|
||||
export const sso_redirect = getMeta('sso_redirect');
|
||||
|
||||
|
|
|
@ -244,6 +244,8 @@
|
|||
"domain_block_modal.they_cant_follow": "Никого от този сървър не може да ви последва.",
|
||||
"domain_block_modal.they_wont_know": "Няма да узнаят, че са били блокирани.",
|
||||
"domain_block_modal.title": "Блокирате ли домейн?",
|
||||
"domain_block_modal.you_will_lose_num_followers": "Ще загубите {followersCount, plural, one {{followersCountDisplay} последовател} other {{followersCountDisplay} последователи}} и {followingCount, plural, one {{followingCountDisplay} лице, което следвате} other {{followingCountDisplay} души, които следвате}}.",
|
||||
"domain_block_modal.you_will_lose_relationships": "Ще загубите всичките си последователи и хората, които следвате от този сървър.",
|
||||
"domain_block_modal.you_wont_see_posts": "Няма да виждате публикации или известия от потребителите на този сървър.",
|
||||
"domain_pill.activitypub_lets_connect": "Позволява ви да се свързвате и взаимодействате с хора не само в Mastodon, но и през различни социални приложения.",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub е като език на Mastodon, говорещ с други социални мрежи.",
|
||||
|
@ -391,11 +393,13 @@
|
|||
"ignore_notifications_modal.disclaimer": "Mastodon не може да осведоми потребители, че сте пренебрегнали известията им. Пренебрегването на известията няма да спре самите съобщения да не бъдат изпращани.",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Вие все още ще може да приемате, отхвърляте или докладвате потребители",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Прецеждането помага за избягване на възможно объркване",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "Може да разгледате отделно филтрираните известия",
|
||||
"ignore_notifications_modal.ignore": "Пренебрегване на известията",
|
||||
"ignore_notifications_modal.limited_accounts_title": "Пренебрегвате ли известията от модерирани акаунти?",
|
||||
"ignore_notifications_modal.new_accounts_title": "Пренебрегвате ли известията от нови акаунти?",
|
||||
"ignore_notifications_modal.not_followers_title": "Пренебрегвате ли известията от хора, които не са ви последвали?",
|
||||
"ignore_notifications_modal.not_following_title": "Пренебрегвате ли известията от хора, които не сте последвали?",
|
||||
"ignore_notifications_modal.private_mentions_title": "Пренебрегвате ли известия от непоискани лични споменавания?",
|
||||
"interaction_modal.description.favourite": "Имайки акаунт в Mastodon, може да сложите тази публикации в любими, за да позволите на автора да узнае, че я цените и да я запазите за по-късно.",
|
||||
"interaction_modal.description.follow": "С акаунт в Mastodon може да последвате {name}, за да получавате публикациите от този акаунт в началния си инфоканал.",
|
||||
"interaction_modal.description.reblog": "С акаунт в Mastodon може да подсилите тази публикация, за да я споделите с последователите си.",
|
||||
|
@ -460,10 +464,17 @@
|
|||
"link_preview.author": "От {name}",
|
||||
"link_preview.more_from_author": "Още от {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
|
||||
"lists.add_member": "Добавяне",
|
||||
"lists.add_to_list": "Добавяне в списък",
|
||||
"lists.add_to_lists": "Добавяне на {name} в списъци",
|
||||
"lists.create": "Създаване",
|
||||
"lists.create_a_list_to_organize": "Сътворете нов списък, за да организирате инфоканала си на Начало",
|
||||
"lists.create_list": "Създаване на списък",
|
||||
"lists.delete": "Изтриване на списъка",
|
||||
"lists.done": "Готово",
|
||||
"lists.edit": "Промяна на списъка",
|
||||
"lists.exclusive": "Скриване на членуващи в Начало",
|
||||
"lists.exclusive_hint": "Ако някой е в този списък, то скрийте го в инфоканала си на Начало, за да избегнете виждането на публикациите му два пъти.",
|
||||
"lists.find_users_to_add": "Намерете потребители за добавяне",
|
||||
"lists.list_members": "Списък членуващи",
|
||||
"lists.list_name": "Име на списък",
|
||||
|
@ -524,6 +535,7 @@
|
|||
"notification.admin.report_statuses_other": "{name} докладва {target}",
|
||||
"notification.admin.sign_up": "{name} се регистрира",
|
||||
"notification.admin.sign_up.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} се регистрираха",
|
||||
"notification.annual_report.view": "Преглед на #Wrapstodon",
|
||||
"notification.favourite": "{name} направи любима публикацията ви",
|
||||
"notification.favourite.name_and_others_with_link": "{name} и <a>{count, plural, one {# друг} other {# други}}</a> направиха любима ваша публикация",
|
||||
"notification.follow": "{name} ви последва",
|
||||
|
@ -559,6 +571,7 @@
|
|||
"notification_requests.accept": "Приемам",
|
||||
"notification_requests.confirm_accept_multiple.message": "На път сте да приемете {count, plural, one {едно известие за заявка} other {# известия за заявки}}. Наистина ли искате да продължите?",
|
||||
"notification_requests.confirm_accept_multiple.title": "Приемате ли заявките за известие?",
|
||||
"notification_requests.confirm_dismiss_multiple.message": "На път сте да отхвърлите {count, plural, one {една заявка за известие} other {# заявки за известие}}. Няма да имате лесен достъп до {count, plural, one {това лице} other {тях}} отново. Наистина ли искате да продължите?",
|
||||
"notification_requests.confirm_dismiss_multiple.title": "Отхвърляте ли заявките за известие?",
|
||||
"notification_requests.dismiss": "Отхвърлям",
|
||||
"notification_requests.edit_selection": "Редактиране",
|
||||
|
|
|
@ -134,13 +134,16 @@
|
|||
"column.blocks": "Usuaris blocats",
|
||||
"column.bookmarks": "Marcadors",
|
||||
"column.community": "Línia de temps local",
|
||||
"column.create_list": "Crea una llista",
|
||||
"column.direct": "Mencions privades",
|
||||
"column.directory": "Navega pels perfils",
|
||||
"column.domain_blocks": "Dominis blocats",
|
||||
"column.edit_list": "Edita la llista",
|
||||
"column.favourites": "Favorits",
|
||||
"column.firehose": "Tuts en directe",
|
||||
"column.follow_requests": "Peticions de seguir-te",
|
||||
"column.home": "Inici",
|
||||
"column.list_members": "Gestiona els membres de la llista",
|
||||
"column.lists": "Llistes",
|
||||
"column.mutes": "Usuaris silenciats",
|
||||
"column.notifications": "Notificacions",
|
||||
|
@ -458,11 +461,32 @@
|
|||
"link_preview.author": "Per {name}",
|
||||
"link_preview.more_from_author": "Més de {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} publicació} other {{counter} publicacions}}",
|
||||
"lists.add_member": "Afegeix",
|
||||
"lists.add_to_list": "Afegeix a la llista",
|
||||
"lists.add_to_lists": "Afegeix {name} a les llistes",
|
||||
"lists.create": "Crea",
|
||||
"lists.create_a_list_to_organize": "Creeu una nova llista per a organitzar la pantalla d'inici",
|
||||
"lists.create_list": "Crea una llista",
|
||||
"lists.delete": "Elimina la llista",
|
||||
"lists.done": "Fet",
|
||||
"lists.edit": "Edita la llista",
|
||||
"lists.exclusive": "Amaga membres a Inici",
|
||||
"lists.exclusive_hint": "Si algú és a la llista, amagueu-los de la pantalla d'inici, per a no veure'n les publicacions duplicades.",
|
||||
"lists.find_users_to_add": "Troba usuaris per a afegir",
|
||||
"lists.list_members": "Membres de la llista",
|
||||
"lists.list_members_count": "{count, plural, one {# membre} other {# membres}}",
|
||||
"lists.list_name": "Nom de la llista",
|
||||
"lists.new_list_name": "Nom de la nova llista",
|
||||
"lists.no_lists_yet": "Encara no hi ha cap llista.",
|
||||
"lists.no_members_yet": "Encara no hi ha membres.",
|
||||
"lists.no_results_found": "No s'han trobat resultats.",
|
||||
"lists.remove_member": "Elimina",
|
||||
"lists.replies_policy.followed": "Qualsevol usuari que segueixis",
|
||||
"lists.replies_policy.list": "Membres de la llista",
|
||||
"lists.replies_policy.none": "Ningú",
|
||||
"lists.save": "Desa",
|
||||
"lists.search_placeholder": "Cerca persones que seguiu",
|
||||
"lists.show_replies_to": "Inclou respostes de membres de la llista a",
|
||||
"load_pending": "{count, plural, one {# element nou} other {# elements nous}}",
|
||||
"loading_indicator.label": "Es carrega…",
|
||||
"media_gallery.hide": "Amaga",
|
||||
|
@ -620,11 +644,11 @@
|
|||
"onboarding.action.back": "Porta'm enrere",
|
||||
"onboarding.actions.back": "Porta'm enrere",
|
||||
"onboarding.actions.go_to_explore": "Mira què és tendència",
|
||||
"onboarding.actions.go_to_home": "Ves a la teva línia de temps",
|
||||
"onboarding.actions.go_to_home": "Aneu a la vostra pantalla d'inici",
|
||||
"onboarding.compose.template": "Hola Mastodon!",
|
||||
"onboarding.follows.empty": "Malauradament, cap resultat pot ser mostrat ara mateix. Pots provar de fer servir la cerca o visitar la pàgina Explora per a trobar gent a qui seguir o provar-ho de nou més tard.",
|
||||
"onboarding.follows.lead": "La teva línia de temps inici només està a les teves mans. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant de seguir-los!:",
|
||||
"onboarding.follows.title": "Personalitza la pantalla d'inci",
|
||||
"onboarding.follows.lead": "La vostra pantalla d'inici és la manera principal d'experimentar Mastodon. Com més gent seguiu, més activa i interessant serà. Per a començar, alguns suggeriments:",
|
||||
"onboarding.follows.title": "Personalitzeu la pantalla d'inci",
|
||||
"onboarding.profile.discoverable": "Fes el meu perfil descobrible",
|
||||
"onboarding.profile.discoverable_hint": "En acceptar d'ésser descobert a Mastodon els teus missatges poden aparèixer dins les tendències i els resultats de cerques, i el teu perfil es pot suggerir a qui tingui interessos semblants als teus.",
|
||||
"onboarding.profile.display_name": "Nom que es mostrarà",
|
||||
|
@ -644,7 +668,7 @@
|
|||
"onboarding.start.skip": "Vols saltar-te tota la resta?",
|
||||
"onboarding.start.title": "Llestos!",
|
||||
"onboarding.steps.follow_people.body": "Mastodon va de seguir a gent interessant.",
|
||||
"onboarding.steps.follow_people.title": "Personalitza la pantalla d'inci",
|
||||
"onboarding.steps.follow_people.title": "Personalitzeu la pantalla d'inici",
|
||||
"onboarding.steps.publish_status.body": "Saluda al món amb text, fotos, vídeos o enquestes {emoji}",
|
||||
"onboarding.steps.publish_status.title": "Fes el teu primer tut",
|
||||
"onboarding.steps.setup_profile.body": "És més fàcil que altres interactuïn amb tu si tens un perfil complet.",
|
||||
|
@ -683,7 +707,7 @@
|
|||
"recommended": "Recomanat",
|
||||
"refresh": "Actualitza",
|
||||
"regeneration_indicator.label": "Es carrega…",
|
||||
"regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!",
|
||||
"regeneration_indicator.sublabel": "Es prepara la vostra pantalla d'Inici!",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}",
|
||||
"relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}",
|
||||
|
|
|
@ -89,9 +89,9 @@
|
|||
"announcement.announcement": "Ankündigung",
|
||||
"annual_report.summary.archetype.booster": "Trendjäger*in",
|
||||
"annual_report.summary.archetype.lurker": "Beobachter*in",
|
||||
"annual_report.summary.archetype.oracle": "Orakel",
|
||||
"annual_report.summary.archetype.oracle": "Universaltalent",
|
||||
"annual_report.summary.archetype.pollster": "Meinungsforscher*in",
|
||||
"annual_report.summary.archetype.replier": "Geselliger Schmetterling",
|
||||
"annual_report.summary.archetype.replier": "Sozialer Schmetterling",
|
||||
"annual_report.summary.followers.followers": "Follower",
|
||||
"annual_report.summary.followers.total": "{count} insgesamt",
|
||||
"annual_report.summary.here_it_is": "Dein Jahresrückblick für {year}:",
|
||||
|
@ -113,7 +113,7 @@
|
|||
"block_modal.show_more": "Mehr anzeigen",
|
||||
"block_modal.they_cant_mention": "Das Profil wird dich nicht erwähnen oder dir folgen können.",
|
||||
"block_modal.they_cant_see_posts": "Deine Beiträge können nicht mehr angesehen werden und du wirst deren Beiträge nicht mehr sehen.",
|
||||
"block_modal.they_will_know": "Es wird erkennbar sein, dass dieses Profil blockiert wurde.",
|
||||
"block_modal.they_will_know": "Das Profil wird erkennen können, dass du es blockiert hast.",
|
||||
"block_modal.title": "Profil blockieren?",
|
||||
"block_modal.you_wont_see_mentions": "Du wirst keine Beiträge sehen, die dieses Profil erwähnen.",
|
||||
"boost_modal.combo": "Mit {combo} erscheint dieses Fenster beim nächsten Mal nicht mehr",
|
||||
|
@ -255,7 +255,7 @@
|
|||
"domain_pill.their_server": "Deren digitale Heimat. Hier „leben“ alle Beiträge von diesem Profil.",
|
||||
"domain_pill.their_username": "Deren eindeutigen Identität auf dem betreffenden Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.",
|
||||
"domain_pill.username": "Profilname",
|
||||
"domain_pill.whats_in_a_handle": "Was ist Teil der Adresse?",
|
||||
"domain_pill.whats_in_a_handle": "Woraus besteht eine Adresse?",
|
||||
"domain_pill.who_they_are": "Adressen teilen mit, wer jemand ist und wo sich jemand aufhält. Daher kannst du mit Leuten im gesamten Social Web interagieren, wenn es eine durch <button>ActivityPub angetriebene Plattform</button> ist.",
|
||||
"domain_pill.who_you_are": "Deine Adresse teilt mit, wer du bist und wo du dich aufhältst. Daher können andere Leute im gesamten Social Web mit dir interagieren, wenn es eine durch <button>ActivityPub angetriebene Plattform</button> ist.",
|
||||
"domain_pill.your_handle": "Deine Adresse:",
|
||||
|
@ -330,9 +330,9 @@
|
|||
"filter_warning.matches_filter": "Übereinstimmend mit dem Filter „<span>{title}</span>“",
|
||||
"filtered_notifications_banner.pending_requests": "Von {count, plural, =0 {keinem, den} one {einer Person, die} other {# Personen, die}} du möglicherweise kennst",
|
||||
"filtered_notifications_banner.title": "Gefilterte Benachrichtigungen",
|
||||
"firehose.all": "Alles",
|
||||
"firehose.all": "Alle Server",
|
||||
"firehose.local": "Dieser Server",
|
||||
"firehose.remote": "Andere Server",
|
||||
"firehose.remote": "Externe Server",
|
||||
"follow_request.authorize": "Genehmigen",
|
||||
"follow_request.reject": "Ablehnen",
|
||||
"follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
|
||||
|
@ -492,7 +492,7 @@
|
|||
"lists.replies_policy.none": "Niemanden",
|
||||
"lists.save": "Speichern",
|
||||
"lists.search_placeholder": "Nach Profilen suchen, denen du folgst",
|
||||
"lists.show_replies_to": "Antworten von Listenmitgliedern anzeigen für …",
|
||||
"lists.show_replies_to": "Antworten von Listenmitgliedern einbeziehen für …",
|
||||
"load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}",
|
||||
"loading_indicator.label": "Wird geladen …",
|
||||
"media_gallery.hide": "Ausblenden",
|
||||
|
@ -541,7 +541,7 @@
|
|||
"notification.admin.report_statuses_other": "{name} meldete {target}",
|
||||
"notification.admin.sign_up": "{name} registrierte sich",
|
||||
"notification.admin.sign_up.name_and_others": "{name} und {count, plural, one {# weiteres Profil} other {# weitere Profile}} registrierten sich",
|
||||
"notification.annual_report.message": "Dein {year} #Wrapstodon erwartet dich! Lass deine Highlights und unvergesslichen Momente auf Mastodon erneut aufleben!",
|
||||
"notification.annual_report.message": "Dein #Wrapstodon für {year} erwartet dich! Lass deine Highlights und unvergesslichen Momente auf Mastodon erneut aufleben!",
|
||||
"notification.annual_report.view": "#Wrapstodon ansehen",
|
||||
"notification.favourite": "{name} favorisierte deinen Beitrag",
|
||||
"notification.favourite.name_and_others_with_link": "{name} und <a>{count, plural, one {# weiteres Profil} other {# weitere Profile}}</a> favorisierten deinen Beitrag",
|
||||
|
|
|
@ -355,11 +355,11 @@
|
|||
"footer.about": "About",
|
||||
"footer.directory": "Profiles directory",
|
||||
"footer.get_app": "Get the app",
|
||||
"footer.invite": "Invite people",
|
||||
"footer.keyboard_shortcuts": "Keyboard shortcuts",
|
||||
"footer.privacy_policy": "Privacy policy",
|
||||
"footer.source_code": "View source code",
|
||||
"footer.status": "Status",
|
||||
"footer.terms_of_service": "Terms of service",
|
||||
"generic.saved": "Saved",
|
||||
"getting_started.heading": "Getting started",
|
||||
"hashtag.column_header.tag_mode.all": "and {additional}",
|
||||
|
@ -875,6 +875,7 @@
|
|||
"subscribed_languages.target": "Change subscribed languages for {target}",
|
||||
"tabs_bar.home": "Home",
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"terms_of_service.title": "Terms of Service",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
|
|
|
@ -128,9 +128,11 @@
|
|||
"column.blocks": "Blokitaj uzantoj",
|
||||
"column.bookmarks": "Legosignoj",
|
||||
"column.community": "Loka templinio",
|
||||
"column.create_list": "Krei liston",
|
||||
"column.direct": "Privataj mencioj",
|
||||
"column.directory": "Foliumi la profilojn",
|
||||
"column.domain_blocks": "Blokitaj domajnoj",
|
||||
"column.edit_list": "Redakti liston",
|
||||
"column.favourites": "Stelumoj",
|
||||
"column.firehose": "Rektaj fluoj",
|
||||
"column.follow_requests": "Petoj de sekvado",
|
||||
|
@ -452,11 +454,22 @@
|
|||
"link_preview.author": "De {name}",
|
||||
"link_preview.more_from_author": "Pli de {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} afiŝo} other {{counter} afiŝoj}}",
|
||||
"lists.add_member": "Aldoni",
|
||||
"lists.add_to_list": "Aldoni al la listo",
|
||||
"lists.add_to_lists": "Aldoni {name} al la listo",
|
||||
"lists.create": "Krei",
|
||||
"lists.create_list": "Krei liston",
|
||||
"lists.delete": "Forigi la liston",
|
||||
"lists.done": "Farita",
|
||||
"lists.edit": "Redakti la liston",
|
||||
"lists.no_lists_yet": "Ankoraŭ ne estas listoj.",
|
||||
"lists.no_members_yet": "Ankoraŭ neniuj membroj.",
|
||||
"lists.no_results_found": "Neniuj rezultoj trovitaj.",
|
||||
"lists.remove_member": "Forigi",
|
||||
"lists.replies_policy.followed": "Iu sekvanta uzanto",
|
||||
"lists.replies_policy.list": "Membroj de la listo",
|
||||
"lists.replies_policy.none": "Neniu",
|
||||
"lists.save": "Konservi",
|
||||
"load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}",
|
||||
"loading_indicator.label": "Ŝargado…",
|
||||
"media_gallery.hide": "Kaŝi",
|
||||
|
|
|
@ -140,13 +140,16 @@
|
|||
"column.blocks": "Usuarios bloqueados",
|
||||
"column.bookmarks": "Marcadores",
|
||||
"column.community": "Línea temporal local",
|
||||
"column.create_list": "Crear una lista",
|
||||
"column.direct": "Menciones privadas",
|
||||
"column.directory": "Explorar perfiles",
|
||||
"column.domain_blocks": "Dominios bloqueados",
|
||||
"column.edit_list": "Editar lista",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.firehose": "Líneas temporales en vivo",
|
||||
"column.follow_requests": "Solicitudes de seguimiento",
|
||||
"column.home": "Principal",
|
||||
"column.list_members": "Administrar miembros de la lista",
|
||||
"column.lists": "Listas",
|
||||
"column.mutes": "Usuarios silenciados",
|
||||
"column.notifications": "Notificaciones",
|
||||
|
@ -464,11 +467,32 @@
|
|||
"link_preview.author": "Por {name}",
|
||||
"link_preview.more_from_author": "Más de {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}",
|
||||
"lists.add_member": "Añadir",
|
||||
"lists.add_to_list": "Añadir a la lista",
|
||||
"lists.add_to_lists": "Añadir {name} a las listas",
|
||||
"lists.create": "Crear",
|
||||
"lists.create_a_list_to_organize": "Crea una nueva lista para organizar tu página de inicio",
|
||||
"lists.create_list": "Crear una lista",
|
||||
"lists.delete": "Eliminar lista",
|
||||
"lists.done": "Hecho",
|
||||
"lists.edit": "Editar lista",
|
||||
"lists.exclusive": "Ocultar miembros en Inicio",
|
||||
"lists.exclusive_hint": "Si alguien está en esta lista, escóndelo en tu página de inicio para evitar ver sus publicaciones dos veces.",
|
||||
"lists.find_users_to_add": "Buscar usuarios para añadir",
|
||||
"lists.list_members": "Miembros de la lista",
|
||||
"lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}",
|
||||
"lists.list_name": "Nombre de la lista",
|
||||
"lists.new_list_name": "Nombre de la nueva lista",
|
||||
"lists.no_lists_yet": "Aún no hay listas.",
|
||||
"lists.no_members_yet": "Aún no hay miembros.",
|
||||
"lists.no_results_found": "No se encontraron resultados.",
|
||||
"lists.remove_member": "Eliminar",
|
||||
"lists.replies_policy.followed": "Cualquier cuenta seguida",
|
||||
"lists.replies_policy.list": "Miembros de la lista",
|
||||
"lists.replies_policy.none": "Nadie",
|
||||
"lists.save": "Guardar",
|
||||
"lists.search_placeholder": "Buscar gente a la que sigues",
|
||||
"lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a",
|
||||
"load_pending": "{count, plural, one {# elemento nuevo} other {# elementos nuevos}}",
|
||||
"loading_indicator.label": "Cargando…",
|
||||
"media_gallery.hide": "Ocultar",
|
||||
|
|
|
@ -140,13 +140,16 @@
|
|||
"column.blocks": "Usuarios bloqueados",
|
||||
"column.bookmarks": "Marcadores",
|
||||
"column.community": "Línea de tiempo local",
|
||||
"column.create_list": "Crear una lista",
|
||||
"column.direct": "Menciones privadas",
|
||||
"column.directory": "Buscar perfiles",
|
||||
"column.domain_blocks": "Dominios ocultados",
|
||||
"column.edit_list": "Editar lista",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.firehose": "Cronologías",
|
||||
"column.follow_requests": "Solicitudes de seguimiento",
|
||||
"column.home": "Inicio",
|
||||
"column.list_members": "Administrar miembros de la lista",
|
||||
"column.lists": "Listas",
|
||||
"column.mutes": "Usuarios silenciados",
|
||||
"column.notifications": "Notificaciones",
|
||||
|
@ -464,11 +467,32 @@
|
|||
"link_preview.author": "Por {name}",
|
||||
"link_preview.more_from_author": "Más de {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
||||
"lists.add_member": "Añadir",
|
||||
"lists.add_to_list": "Añadir a la lista",
|
||||
"lists.add_to_lists": "Añadir {name} a las listas",
|
||||
"lists.create": "Crear",
|
||||
"lists.create_a_list_to_organize": "Crea una nueva lista para organizar tu página de inicio",
|
||||
"lists.create_list": "Crear una lista",
|
||||
"lists.delete": "Borrar lista",
|
||||
"lists.done": "Hecho",
|
||||
"lists.edit": "Editar lista",
|
||||
"lists.exclusive": "Ocultar miembros en Inicio",
|
||||
"lists.exclusive_hint": "Si alguien está en esta lista, escóndelo en tu página de inicio para evitar ver sus publicaciones dos veces.",
|
||||
"lists.find_users_to_add": "Buscar usuarios para añadir",
|
||||
"lists.list_members": "Miembros de la lista",
|
||||
"lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}",
|
||||
"lists.list_name": "Nombre de la lista",
|
||||
"lists.new_list_name": "Nombre de la nueva lista",
|
||||
"lists.no_lists_yet": "Aún no hay listas.",
|
||||
"lists.no_members_yet": "Aún no hay miembros.",
|
||||
"lists.no_results_found": "No se encontraron resultados.",
|
||||
"lists.remove_member": "Eliminar",
|
||||
"lists.replies_policy.followed": "Cualquier usuario seguido",
|
||||
"lists.replies_policy.list": "Miembros de la lista",
|
||||
"lists.replies_policy.none": "Nadie",
|
||||
"lists.save": "Guardar",
|
||||
"lists.search_placeholder": "Buscar gente a la que sigues",
|
||||
"lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a",
|
||||
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
|
||||
"loading_indicator.label": "Cargando…",
|
||||
"media_gallery.hide": "Ocultar",
|
||||
|
|
|
@ -140,13 +140,16 @@
|
|||
"column.blocks": "Usuarios bloqueados",
|
||||
"column.bookmarks": "Marcadores",
|
||||
"column.community": "Cronología local",
|
||||
"column.create_list": "Crear una lista",
|
||||
"column.direct": "Menciones privadas",
|
||||
"column.directory": "Buscar perfiles",
|
||||
"column.domain_blocks": "Dominios bloqueados",
|
||||
"column.edit_list": "Editar lista",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.firehose": "Cronologías",
|
||||
"column.follow_requests": "Solicitudes de seguimiento",
|
||||
"column.home": "Inicio",
|
||||
"column.list_members": "Administrar miembros de la lista",
|
||||
"column.lists": "Listas",
|
||||
"column.mutes": "Usuarios silenciados",
|
||||
"column.notifications": "Notificaciones",
|
||||
|
@ -401,7 +404,7 @@
|
|||
"ignore_notifications_modal.not_following_title": "¿Ignorar notificaciones de personas a las que no sigues?",
|
||||
"ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?",
|
||||
"interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta, y guardala para más adelante.",
|
||||
"interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.",
|
||||
"interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu página de inicio.",
|
||||
"interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.",
|
||||
"interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.",
|
||||
"interaction_modal.description.vote": "Con una cuenta en Mastodon, puedes votar en esta encuesta.",
|
||||
|
@ -464,11 +467,32 @@
|
|||
"link_preview.author": "Por {name}",
|
||||
"link_preview.more_from_author": "Más de {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
||||
"lists.add_member": "Añadir",
|
||||
"lists.add_to_list": "Añadir a la lista",
|
||||
"lists.add_to_lists": "Añadir {name} a las listas",
|
||||
"lists.create": "Crear",
|
||||
"lists.create_a_list_to_organize": "Crea una nueva lista para organizar tu página de inicio",
|
||||
"lists.create_list": "Crear una lista",
|
||||
"lists.delete": "Borrar lista",
|
||||
"lists.done": "Hecho",
|
||||
"lists.edit": "Editar lista",
|
||||
"lists.exclusive": "Ocultar miembros en Inicio",
|
||||
"lists.exclusive_hint": "Si alguien está en esta lista, escóndelo en tu página de inicio para evitar ver sus publicaciones dos veces.",
|
||||
"lists.find_users_to_add": "Buscar usuarios para añadir",
|
||||
"lists.list_members": "Miembros de la lista",
|
||||
"lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}",
|
||||
"lists.list_name": "Nombre de la lista",
|
||||
"lists.new_list_name": "Nombre de la nueva lista",
|
||||
"lists.no_lists_yet": "Aún no hay listas.",
|
||||
"lists.no_members_yet": "Aún no hay miembros.",
|
||||
"lists.no_results_found": "No se encontraron resultados.",
|
||||
"lists.remove_member": "Eliminar",
|
||||
"lists.replies_policy.followed": "Cualquier usuario seguido",
|
||||
"lists.replies_policy.list": "Miembros de la lista",
|
||||
"lists.replies_policy.none": "Nadie",
|
||||
"lists.save": "Guardar",
|
||||
"lists.search_placeholder": "Buscar gente a la que sigues",
|
||||
"lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a",
|
||||
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
|
||||
"loading_indicator.label": "Cargando…",
|
||||
"media_gallery.hide": "Ocultar",
|
||||
|
@ -628,11 +652,11 @@
|
|||
"onboarding.action.back": "Llévame atrás",
|
||||
"onboarding.actions.back": "Llévame atrás",
|
||||
"onboarding.actions.go_to_explore": "Llévame a tendencias",
|
||||
"onboarding.actions.go_to_home": "Ir a mi inicio",
|
||||
"onboarding.actions.go_to_home": "Ir a mi página de inicio",
|
||||
"onboarding.compose.template": "¡Hola #Mastodon!",
|
||||
"onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Puedes intentar usar la búsqueda o navegar por la página de exploración para encontrar personas a las que seguir, o inténtalo de nuevo más tarde.",
|
||||
"onboarding.follows.lead": "Tu línea de inicio es la forma principal de experimentar Mastodon. Cuanta más personas sigas, más activa e interesante será. Para empezar, aquí hay algunas sugerencias:",
|
||||
"onboarding.follows.title": "Personaliza tu línea de inicio",
|
||||
"onboarding.follows.lead": "Tu página de inicio es la forma principal de experimentar Mastodon. Cuanta más personas sigas, más activa e interesante será. Para empezar, aquí hay algunas sugerencias:",
|
||||
"onboarding.follows.title": "Personaliza tu página de inicio",
|
||||
"onboarding.profile.discoverable": "Hacer que mi perfil aparezca en búsquedas",
|
||||
"onboarding.profile.discoverable_hint": "Cuando permites que tu perfil aparezca en búsquedas en Mastodon, tus publicaciones podrán aparecer en los resultados de búsqueda y en tendencias, y tu perfil podrá recomendarse a gente con intereses similares a los tuyos.",
|
||||
"onboarding.profile.display_name": "Nombre para mostrar",
|
||||
|
@ -652,7 +676,7 @@
|
|||
"onboarding.start.skip": "¿No necesitas ayuda para empezar?",
|
||||
"onboarding.start.title": "¡Lo has logrado!",
|
||||
"onboarding.steps.follow_people.body": "Seguir personas interesante es de lo que trata Mastodon.",
|
||||
"onboarding.steps.follow_people.title": "Personaliza tu línea de inicio",
|
||||
"onboarding.steps.follow_people.title": "Personaliza tu página de inicio",
|
||||
"onboarding.steps.publish_status.body": "Di hola al mundo con texto, fotos, vídeos o encuestas {emoji}",
|
||||
"onboarding.steps.publish_status.title": "Escribe tu primera publicación",
|
||||
"onboarding.steps.setup_profile.body": "Aumenta tus interacciones con un perfil completo.",
|
||||
|
@ -691,7 +715,7 @@
|
|||
"recommended": "Recomendado",
|
||||
"refresh": "Actualizar",
|
||||
"regeneration_indicator.label": "Cargando…",
|
||||
"regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!",
|
||||
"regeneration_indicator.sublabel": "¡Tu página de inicio se está preparando!",
|
||||
"relative_time.days": "{number} d",
|
||||
"relative_time.full.days": "hace {number, plural, one {# día} other {# días}}",
|
||||
"relative_time.full.hours": "hace {number, plural, one {# hora} other {# horas}}",
|
||||
|
@ -745,7 +769,7 @@
|
|||
"report.thanks.title": "¿No quieres esto?",
|
||||
"report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.",
|
||||
"report.unfollow": "Dejar de seguir a @{name}",
|
||||
"report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu muro de inicio, deja de seguirla.",
|
||||
"report.unfollow_explanation": "Estás siguiendo esta cuenta. Para dejar de ver sus publicaciones en tu página de inicio, deja de seguirla.",
|
||||
"report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
|
||||
"report_notification.categories.legal": "Legal",
|
||||
"report_notification.categories.legal_sentence": "contenido ilegal",
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
"alert.unexpected.title": "ای وای!",
|
||||
"alt_text_badge.title": "متن جایگزین",
|
||||
"announcement.announcement": "اعلامیه",
|
||||
"annual_report.summary.followers.followers": "دنبال کننده",
|
||||
"attachments_list.unprocessed": "(پردازش نشده)",
|
||||
"audio.hide": "نهفتن صدا",
|
||||
"block_modal.remote_users_caveat": "ما از کارساز {domain} خواهیم خواست که به تصمیم شما احترام بگذارد. با این حال، تضمینی برای رعایت آن وجود ندارد زیرا برخی کارسازها ممکن است بلوکها را بهطور متفاوتی مدیریت کنند. فرستههای عمومی ممکن است همچنان برای کاربران که وارد نشده قابل مشاهده باشند.",
|
||||
|
@ -438,9 +439,11 @@
|
|||
"link_preview.shares": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}",
|
||||
"lists.delete": "حذف سیاهه",
|
||||
"lists.edit": "ویرایش سیاهه",
|
||||
"lists.remove_member": "حذف",
|
||||
"lists.replies_policy.followed": "هر کاربر پیگرفته",
|
||||
"lists.replies_policy.list": "اعضای سیاهه",
|
||||
"lists.replies_policy.none": "هیچ کدام",
|
||||
"lists.save": "ذخیره",
|
||||
"load_pending": "{count, plural, one {# مورد جدید} other {# مورد جدید}}",
|
||||
"loading_indicator.label": "در حال بارگذاری…",
|
||||
"media_gallery.hide": "نهفتن",
|
||||
|
|
|
@ -140,13 +140,16 @@
|
|||
"column.blocks": "Bannaðir brúkarar",
|
||||
"column.bookmarks": "Bókamerki",
|
||||
"column.community": "Lokal tíðarlinja",
|
||||
"column.create_list": "Ger lista",
|
||||
"column.direct": "Privatar umrøður",
|
||||
"column.directory": "Blaða gjøgnum vangar",
|
||||
"column.domain_blocks": "Bannað økisnøvn",
|
||||
"column.edit_list": "Broyt lista",
|
||||
"column.favourites": "Dámdir postar",
|
||||
"column.firehose": "Beinleiðis rásir",
|
||||
"column.follow_requests": "Umbønir at fylgja",
|
||||
"column.home": "Heim",
|
||||
"column.list_members": "Rætta limalista",
|
||||
"column.lists": "Listar",
|
||||
"column.mutes": "Sløktir brúkarar",
|
||||
"column.notifications": "Fráboðanir",
|
||||
|
@ -464,11 +467,32 @@
|
|||
"link_preview.author": "Av {name}",
|
||||
"link_preview.more_from_author": "Meira frá {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} postur} other {{counter} postar}}",
|
||||
"lists.add_member": "Legg afturat",
|
||||
"lists.add_to_list": "Legg afturat lista",
|
||||
"lists.add_to_lists": "Legg {name} afturat lista",
|
||||
"lists.create": "Ger",
|
||||
"lists.create_a_list_to_organize": "Ger ein nýggjan lista til heimarásina hjá tær",
|
||||
"lists.create_list": "Ger lista",
|
||||
"lists.delete": "Strika lista",
|
||||
"lists.done": "Liðugt",
|
||||
"lists.edit": "Broyt lista",
|
||||
"lists.exclusive": "Fjal limir á heimarás",
|
||||
"lists.exclusive_hint": "Um onkur er á hesum listanum, so skulu tey fjalast á heimarásini, so tú sleppir undan at síggja postar teirra tvær ferðir.",
|
||||
"lists.find_users_to_add": "Finn brúkarar at leggja afturat",
|
||||
"lists.list_members": "Lista limir",
|
||||
"lists.list_members_count": "{count, plural, one {# limur} other {# limir}}",
|
||||
"lists.list_name": "Listanavn",
|
||||
"lists.new_list_name": "Nýtt listanavn",
|
||||
"lists.no_lists_yet": "Ongir listar enn.",
|
||||
"lists.no_members_yet": "Eingir limir enn.",
|
||||
"lists.no_results_found": "Eingi úrslit funnin.",
|
||||
"lists.remove_member": "Burturbein",
|
||||
"lists.replies_policy.followed": "Øllum fylgdum brúkarum",
|
||||
"lists.replies_policy.list": "Listalimunum",
|
||||
"lists.replies_policy.none": "Eingin",
|
||||
"lists.save": "Goym",
|
||||
"lists.search_placeholder": "Leita eftir fólki, sum tú fylgir",
|
||||
"lists.show_replies_to": "Írokna svar frá limum á listanum til",
|
||||
"load_pending": "{count, plural, one {# nýtt evni} other {# nýggj evni}}",
|
||||
"loading_indicator.label": "Innlesur…",
|
||||
"media_gallery.hide": "Fjal",
|
||||
|
|
|
@ -87,9 +87,21 @@
|
|||
"alert.unexpected.title": "Oups!",
|
||||
"alt_text_badge.title": "Texte Alt",
|
||||
"announcement.announcement": "Annonce",
|
||||
"annual_report.summary.archetype.lurker": "Le faucheur",
|
||||
"annual_report.summary.archetype.oracle": "L’oracle",
|
||||
"annual_report.summary.followers.followers": "abonné·e·s",
|
||||
"annual_report.summary.followers.total": "{count} au total",
|
||||
"annual_report.summary.here_it_is": "Voici votre récap de {year} :",
|
||||
"annual_report.summary.highlighted_post.by_favourites": "post le plus aimé",
|
||||
"annual_report.summary.highlighted_post.by_reblogs": "post le plus boosté",
|
||||
"annual_report.summary.highlighted_post.by_replies": "post avec le plus de réponses",
|
||||
"annual_report.summary.most_used_app.most_used_app": "appli la plus utilisée",
|
||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus utilisé",
|
||||
"annual_report.summary.most_used_hashtag.none": "Aucun",
|
||||
"annual_report.summary.new_posts.new_posts": "nouveaux posts",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Cela vous place dans le top</topLabel><percentage></percentage><bottomLabel>des utilisateurs de Mastodon.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Nous ne le dirons pas à Bernie.",
|
||||
"annual_report.summary.thanks": "Merci de faire partie de Mastodon!",
|
||||
"attachments_list.unprocessed": "(non traité)",
|
||||
"audio.hide": "Masquer l'audio",
|
||||
"block_modal.remote_users_caveat": "Nous allons demander au serveur {domain} de respecter votre décision. Cependant, ce respect n'est pas garanti, car certains serveurs peuvent gérer différemment les blocages. Les messages publics peuvent rester visibles par les utilisateur·rice·s non connecté·e·s.",
|
||||
|
@ -124,13 +136,16 @@
|
|||
"column.blocks": "Comptes bloqués",
|
||||
"column.bookmarks": "Signets",
|
||||
"column.community": "Fil local",
|
||||
"column.create_list": "Créer une liste",
|
||||
"column.direct": "Mention privée",
|
||||
"column.directory": "Parcourir les profils",
|
||||
"column.domain_blocks": "Domaines bloqués",
|
||||
"column.edit_list": "Modifier la liste",
|
||||
"column.favourites": "Favoris",
|
||||
"column.firehose": "Flux en direct",
|
||||
"column.follow_requests": "Demande d'abonnement",
|
||||
"column.home": "Accueil",
|
||||
"column.list_members": "Gérer les membres de la liste",
|
||||
"column.lists": "Listes",
|
||||
"column.mutes": "Comptes masqués",
|
||||
"column.notifications": "Notifications",
|
||||
|
@ -200,6 +215,7 @@
|
|||
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
|
||||
"content_warning.hide": "Masquer le message",
|
||||
"content_warning.show": "Afficher quand même",
|
||||
"content_warning.show_more": "Déplier",
|
||||
"conversation.delete": "Supprimer cette conversation",
|
||||
"conversation.mark_as_read": "Marquer comme lu",
|
||||
"conversation.open": "Afficher cette conversation",
|
||||
|
@ -307,6 +323,7 @@
|
|||
"filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle",
|
||||
"filter_modal.select_filter.title": "Filtrer cette publication",
|
||||
"filter_modal.title.status": "Filtrer une publication",
|
||||
"filter_warning.matches_filter": "Correspond au filtre « <span>{title}</span> »",
|
||||
"filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {d’aucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître",
|
||||
"filtered_notifications_banner.title": "Notifications filtrées",
|
||||
"firehose.all": "Tout",
|
||||
|
@ -386,6 +403,7 @@
|
|||
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs publications dans votre fil d'accueil.",
|
||||
"interaction_modal.description.reblog": "Avec un compte Mastodon, vous pouvez booster cette publication pour la partager avec vos propres abonné·e·s.",
|
||||
"interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à cette publication.",
|
||||
"interaction_modal.description.vote": "Avec un compte sur Mastodon, vous pouvez répondre à cette question.",
|
||||
"interaction_modal.login.action": "Aller à mon serveur",
|
||||
"interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social",
|
||||
"interaction_modal.no_account_yet": "Pas sur Mastodon ?",
|
||||
|
@ -397,6 +415,7 @@
|
|||
"interaction_modal.title.follow": "Suivre {name}",
|
||||
"interaction_modal.title.reblog": "Booster la publication de {name}",
|
||||
"interaction_modal.title.reply": "Répondre à la publication de {name}",
|
||||
"interaction_modal.title.vote": "Voter pour le sondage de {name}",
|
||||
"intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
|
||||
"intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -444,11 +463,30 @@
|
|||
"link_preview.author": "Par {name}",
|
||||
"link_preview.more_from_author": "Plus via {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}",
|
||||
"lists.add_member": "Ajouter",
|
||||
"lists.add_to_list": "Ajouter à la liste",
|
||||
"lists.add_to_lists": "Ajouter {name} aux listes",
|
||||
"lists.create": "Créer",
|
||||
"lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre Page d'accueil",
|
||||
"lists.create_list": "Créer une liste",
|
||||
"lists.delete": "Supprimer la liste",
|
||||
"lists.done": "Terminé",
|
||||
"lists.edit": "Modifier la liste",
|
||||
"lists.exclusive": "Cacher les membres de la page d'accueil",
|
||||
"lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.",
|
||||
"lists.find_users_to_add": "Trouver des utilisateurs à ajouter",
|
||||
"lists.list_members": "Lister les membres",
|
||||
"lists.list_name": "Nom de la liste",
|
||||
"lists.new_list_name": "Nom de la nouvelle liste",
|
||||
"lists.no_lists_yet": "Aucune liste pour l'instant.",
|
||||
"lists.no_members_yet": "Aucun membre pour l'instant.",
|
||||
"lists.no_results_found": "Aucun résultat.",
|
||||
"lists.remove_member": "Supprimer",
|
||||
"lists.replies_policy.followed": "N'importe quel compte suivi",
|
||||
"lists.replies_policy.list": "Membres de la liste",
|
||||
"lists.replies_policy.none": "Personne",
|
||||
"lists.save": "Enregistrer",
|
||||
"lists.search_placeholder": "Rechercher parmi les gens que vous suivez",
|
||||
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
|
||||
"loading_indicator.label": "Chargement…",
|
||||
"media_gallery.hide": "Masquer",
|
||||
|
@ -497,6 +535,7 @@
|
|||
"notification.admin.report_statuses_other": "{name} a signalé {target}",
|
||||
"notification.admin.sign_up": "{name} s'est inscrit·e",
|
||||
"notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit",
|
||||
"notification.annual_report.view": "Voir #Wrapstodon",
|
||||
"notification.favourite": "{name} a ajouté votre publication à ses favoris",
|
||||
"notification.favourite.name_and_others_with_link": "{name} et <a>{count, plural, one {# autre} other {# autres}}</a> ont mis votre message en favori",
|
||||
"notification.follow": "{name} vous suit",
|
||||
|
@ -848,6 +887,7 @@
|
|||
"upload_form.description": "Décrire pour les malvoyants",
|
||||
"upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.",
|
||||
"upload_form.drag_and_drop.on_drag_over": "La pièce jointe du média {item} a été déplacée.",
|
||||
"upload_form.edit": "Modifier",
|
||||
"upload_form.thumbnail": "Changer la vignette",
|
||||
|
|
|
@ -87,9 +87,21 @@
|
|||
"alert.unexpected.title": "Oups !",
|
||||
"alt_text_badge.title": "Texte Alt",
|
||||
"announcement.announcement": "Annonce",
|
||||
"annual_report.summary.archetype.lurker": "Le faucheur",
|
||||
"annual_report.summary.archetype.oracle": "L’oracle",
|
||||
"annual_report.summary.followers.followers": "abonné·e·s",
|
||||
"annual_report.summary.followers.total": "{count} au total",
|
||||
"annual_report.summary.here_it_is": "Voici votre récap de {year} :",
|
||||
"annual_report.summary.highlighted_post.by_favourites": "post le plus aimé",
|
||||
"annual_report.summary.highlighted_post.by_reblogs": "post le plus boosté",
|
||||
"annual_report.summary.highlighted_post.by_replies": "post avec le plus de réponses",
|
||||
"annual_report.summary.most_used_app.most_used_app": "appli la plus utilisée",
|
||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus utilisé",
|
||||
"annual_report.summary.most_used_hashtag.none": "Aucun",
|
||||
"annual_report.summary.new_posts.new_posts": "nouveaux posts",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Cela vous place dans le top</topLabel><percentage></percentage><bottomLabel>des utilisateurs de Mastodon.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Nous ne le dirons pas à Bernie.",
|
||||
"annual_report.summary.thanks": "Merci de faire partie de Mastodon!",
|
||||
"attachments_list.unprocessed": "(non traité)",
|
||||
"audio.hide": "Masquer l'audio",
|
||||
"block_modal.remote_users_caveat": "Nous allons demander au serveur {domain} de respecter votre décision. Cependant, ce respect n'est pas garanti, car certains serveurs peuvent gérer différemment les blocages. Les messages publics peuvent rester visibles par les utilisateur·rice·s non connecté·e·s.",
|
||||
|
@ -124,13 +136,16 @@
|
|||
"column.blocks": "Utilisateurs bloqués",
|
||||
"column.bookmarks": "Marque-pages",
|
||||
"column.community": "Fil public local",
|
||||
"column.create_list": "Créer une liste",
|
||||
"column.direct": "Mentions privées",
|
||||
"column.directory": "Parcourir les profils",
|
||||
"column.domain_blocks": "Domaines bloqués",
|
||||
"column.edit_list": "Modifier la liste",
|
||||
"column.favourites": "Favoris",
|
||||
"column.firehose": "Flux en direct",
|
||||
"column.follow_requests": "Demandes d'abonnement",
|
||||
"column.home": "Accueil",
|
||||
"column.list_members": "Gérer les membres de la liste",
|
||||
"column.lists": "Listes",
|
||||
"column.mutes": "Comptes masqués",
|
||||
"column.notifications": "Notifications",
|
||||
|
@ -200,6 +215,7 @@
|
|||
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
|
||||
"content_warning.hide": "Masquer le message",
|
||||
"content_warning.show": "Afficher quand même",
|
||||
"content_warning.show_more": "Déplier",
|
||||
"conversation.delete": "Supprimer la conversation",
|
||||
"conversation.mark_as_read": "Marquer comme lu",
|
||||
"conversation.open": "Afficher la conversation",
|
||||
|
@ -307,6 +323,7 @@
|
|||
"filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou créez-en une nouvelle",
|
||||
"filter_modal.select_filter.title": "Filtrer ce message",
|
||||
"filter_modal.title.status": "Filtrer un message",
|
||||
"filter_warning.matches_filter": "Correspond au filtre « <span>{title}</span> »",
|
||||
"filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {d’aucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître",
|
||||
"filtered_notifications_banner.title": "Notifications filtrées",
|
||||
"firehose.all": "Tout",
|
||||
|
@ -386,6 +403,7 @@
|
|||
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.",
|
||||
"interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez partager ce message pour le faire découvrir à vos propres abonné⋅e⋅s.",
|
||||
"interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.",
|
||||
"interaction_modal.description.vote": "Avec un compte sur Mastodon, vous pouvez répondre à cette question.",
|
||||
"interaction_modal.login.action": "Aller à mon serveur",
|
||||
"interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social",
|
||||
"interaction_modal.no_account_yet": "Pas sur Mastodon ?",
|
||||
|
@ -397,6 +415,7 @@
|
|||
"interaction_modal.title.follow": "Suivre {name}",
|
||||
"interaction_modal.title.reblog": "Partager le message de {name}",
|
||||
"interaction_modal.title.reply": "Répondre au message de {name}",
|
||||
"interaction_modal.title.vote": "Voter pour le sondage de {name}",
|
||||
"intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
|
||||
"intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -444,11 +463,30 @@
|
|||
"link_preview.author": "Par {name}",
|
||||
"link_preview.more_from_author": "Plus via {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}",
|
||||
"lists.add_member": "Ajouter",
|
||||
"lists.add_to_list": "Ajouter à la liste",
|
||||
"lists.add_to_lists": "Ajouter {name} aux listes",
|
||||
"lists.create": "Créer",
|
||||
"lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre Page d'accueil",
|
||||
"lists.create_list": "Créer une liste",
|
||||
"lists.delete": "Supprimer la liste",
|
||||
"lists.done": "Terminé",
|
||||
"lists.edit": "Modifier la liste",
|
||||
"lists.exclusive": "Cacher les membres de la page d'accueil",
|
||||
"lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.",
|
||||
"lists.find_users_to_add": "Trouver des utilisateurs à ajouter",
|
||||
"lists.list_members": "Lister les membres",
|
||||
"lists.list_name": "Nom de la liste",
|
||||
"lists.new_list_name": "Nom de la nouvelle liste",
|
||||
"lists.no_lists_yet": "Aucune liste pour l'instant.",
|
||||
"lists.no_members_yet": "Aucun membre pour l'instant.",
|
||||
"lists.no_results_found": "Aucun résultat.",
|
||||
"lists.remove_member": "Supprimer",
|
||||
"lists.replies_policy.followed": "N'importe quel compte suivi",
|
||||
"lists.replies_policy.list": "Membres de la liste",
|
||||
"lists.replies_policy.none": "Personne",
|
||||
"lists.save": "Enregistrer",
|
||||
"lists.search_placeholder": "Rechercher parmi les gens que vous suivez",
|
||||
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
|
||||
"loading_indicator.label": "Chargement…",
|
||||
"media_gallery.hide": "Masquer",
|
||||
|
@ -497,6 +535,7 @@
|
|||
"notification.admin.report_statuses_other": "{name} a signalé {target}",
|
||||
"notification.admin.sign_up": "{name} s'est inscrit",
|
||||
"notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit",
|
||||
"notification.annual_report.view": "Voir #Wrapstodon",
|
||||
"notification.favourite": "{name} a ajouté votre message à ses favoris",
|
||||
"notification.favourite.name_and_others_with_link": "{name} et <a>{count, plural, one {# autre} other {# autres}}</a> ont mis votre message en favori",
|
||||
"notification.follow": "{name} vous suit",
|
||||
|
@ -848,6 +887,7 @@
|
|||
"upload_form.description": "Décrire pour les malvoyant·e·s",
|
||||
"upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.",
|
||||
"upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.",
|
||||
"upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.",
|
||||
"upload_form.drag_and_drop.on_drag_over": "La pièce jointe du média {item} a été déplacée.",
|
||||
"upload_form.edit": "Modifier",
|
||||
"upload_form.thumbnail": "Changer la vignette",
|
||||
|
|
|
@ -104,6 +104,7 @@
|
|||
"annual_report.summary.most_used_hashtag.none": "Nada",
|
||||
"annual_report.summary.new_posts.new_posts": "novas publicacións",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Sitúante no top</topLabel><percentage></percentage><bottomLabel> das usuarias de Mastodon.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Moito tes que contarnos!",
|
||||
"annual_report.summary.thanks": "Grazas por ser parte de Mastodon!",
|
||||
"attachments_list.unprocessed": "(sen procesar)",
|
||||
"audio.hide": "Agochar audio",
|
||||
|
@ -139,13 +140,16 @@
|
|||
"column.blocks": "Usuarias bloqueadas",
|
||||
"column.bookmarks": "Marcadores",
|
||||
"column.community": "Cronoloxía local",
|
||||
"column.create_list": "Crear lista",
|
||||
"column.direct": "Mencións privadas",
|
||||
"column.directory": "Procurar perfís",
|
||||
"column.domain_blocks": "Dominios agochados",
|
||||
"column.edit_list": "Editar lista",
|
||||
"column.favourites": "Favoritas",
|
||||
"column.firehose": "O que acontece",
|
||||
"column.follow_requests": "Peticións de seguimento",
|
||||
"column.home": "Inicio",
|
||||
"column.list_members": "Xestionar membros da lista",
|
||||
"column.lists": "Listaxes",
|
||||
"column.mutes": "Usuarias acaladas",
|
||||
"column.notifications": "Notificacións",
|
||||
|
@ -463,11 +467,32 @@
|
|||
"link_preview.author": "Por {name}",
|
||||
"link_preview.more_from_author": "Máis de {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}",
|
||||
"lists.add_member": "Engadir",
|
||||
"lists.add_to_list": "Engadir á lista",
|
||||
"lists.add_to_lists": "Engadir {name} ás listas",
|
||||
"lists.create": "Crear",
|
||||
"lists.create_a_list_to_organize": "Crear unha nova lista para organizar o teu Inicio",
|
||||
"lists.create_list": "Crear lista",
|
||||
"lists.delete": "Eliminar listaxe",
|
||||
"lists.done": "Feito",
|
||||
"lists.edit": "Editar listaxe",
|
||||
"lists.exclusive": "Ocultar membros no Inicio",
|
||||
"lists.exclusive_hint": "Se alguén está nesta lista non aparerá na cronoloxía de Inicio para evitar duplicidades das publicacións.",
|
||||
"lists.find_users_to_add": "Buscar persoas que engadir",
|
||||
"lists.list_members": "Membros da lista",
|
||||
"lists.list_members_count": "{count, plural, one {# membro} other {# membros}}",
|
||||
"lists.list_name": "Nome da lista",
|
||||
"lists.new_list_name": "Novo nome da lista",
|
||||
"lists.no_lists_yet": "Aínda non hai listas.",
|
||||
"lists.no_members_yet": "Aínda non hai membros.",
|
||||
"lists.no_results_found": "Non se atoparon resultados.",
|
||||
"lists.remove_member": "Retirar",
|
||||
"lists.replies_policy.followed": "Calquera usuaria que siga",
|
||||
"lists.replies_policy.list": "Membros da lista",
|
||||
"lists.replies_policy.none": "Ninguén",
|
||||
"lists.save": "Gardar",
|
||||
"lists.search_placeholder": "Buscar persoas que segues",
|
||||
"lists.show_replies_to": "Incluír respostas dos membros das listas a",
|
||||
"load_pending": "{count, plural, one {# novo elemento} other {# novos elementos}}",
|
||||
"loading_indicator.label": "Estase a cargar…",
|
||||
"media_gallery.hide": "Agochar",
|
||||
|
|
|
@ -140,13 +140,16 @@
|
|||
"column.blocks": "Letiltott felhasználók",
|
||||
"column.bookmarks": "Könyvjelzők",
|
||||
"column.community": "Helyi idővonal",
|
||||
"column.create_list": "Lista létrehozása",
|
||||
"column.direct": "Személyes említések",
|
||||
"column.directory": "Profilok böngészése",
|
||||
"column.domain_blocks": "Letiltott domainek",
|
||||
"column.edit_list": "Lista módosítása",
|
||||
"column.favourites": "Kedvencek",
|
||||
"column.firehose": "Hírfolyamok",
|
||||
"column.follow_requests": "Követési kérések",
|
||||
"column.home": "Kezdőlap",
|
||||
"column.list_members": "Listatagok kezelése",
|
||||
"column.lists": "Listák",
|
||||
"column.mutes": "Némított felhasználók",
|
||||
"column.notifications": "Értesítések",
|
||||
|
@ -464,11 +467,32 @@
|
|||
"link_preview.author": "{name} szerint",
|
||||
"link_preview.more_from_author": "Több tőle: {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}",
|
||||
"lists.add_member": "Hozzáadás",
|
||||
"lists.add_to_list": "Hozzáadás a listához",
|
||||
"lists.add_to_lists": "{name} hozzáadása a listához",
|
||||
"lists.create": "Létrehozás",
|
||||
"lists.create_a_list_to_organize": "Új lista létrehozása a kezdőlapod szervezéséhez",
|
||||
"lists.create_list": "Lista létrehozása",
|
||||
"lists.delete": "Lista törlése",
|
||||
"lists.done": "Kész",
|
||||
"lists.edit": "Lista szerkesztése",
|
||||
"lists.exclusive": "Tagok elrejtése a kezdőlapon",
|
||||
"lists.exclusive_hint": "Ha valaki szerepel ezen a listán, el lesz rejtve a kezdőlapod hírfolyamán, hogy ne lásd kétszer a bejegyzéseit.",
|
||||
"lists.find_users_to_add": "Hozzáadandó felhasználók keresése",
|
||||
"lists.list_members": "Tagok listázása",
|
||||
"lists.list_members_count": "{count, plural, one {# tag} other {# tag}}",
|
||||
"lists.list_name": "Lista neve",
|
||||
"lists.new_list_name": "Új lista neve",
|
||||
"lists.no_lists_yet": "Nincsenek még listák.",
|
||||
"lists.no_members_yet": "Nincsenek még tagok.",
|
||||
"lists.no_results_found": "Nincs találat.",
|
||||
"lists.remove_member": "Eltávolítás",
|
||||
"lists.replies_policy.followed": "Bármely követett felhasználó",
|
||||
"lists.replies_policy.list": "A lista tagjai",
|
||||
"lists.replies_policy.none": "Senki",
|
||||
"lists.save": "Mentés",
|
||||
"lists.search_placeholder": "Keresés a követett személyek között",
|
||||
"lists.show_replies_to": "Listatagok válaszainak hozzávétele",
|
||||
"load_pending": "{count, plural, one {# új elem} other {# új elem}}",
|
||||
"loading_indicator.label": "Betöltés…",
|
||||
"media_gallery.hide": "Elrejtés",
|
||||
|
@ -628,7 +652,7 @@
|
|||
"onboarding.action.back": "Vissza",
|
||||
"onboarding.actions.back": "Vissza",
|
||||
"onboarding.actions.go_to_explore": "Felkapottak megtekintése",
|
||||
"onboarding.actions.go_to_home": "Ugrás a saját hírfolyamra",
|
||||
"onboarding.actions.go_to_home": "Ugrás a kezdőlapod hírfolyamára",
|
||||
"onboarding.compose.template": "Üdvözlet, #Mastodon!",
|
||||
"onboarding.follows.empty": "Sajnos jelenleg nem jeleníthető meg eredmény. Kipróbálhatod a keresést vagy böngészheted a felfedező oldalon a követni kívánt személyeket, vagy próbáld meg később.",
|
||||
"onboarding.follows.lead": "A kezdőlapod a Mastodon használatának elsődleges módja. Minél több embert követsz, annál aktívabbak és érdekesebbek lesznek a dolgok. Az induláshoz itt van néhány javaslat:",
|
||||
|
@ -691,7 +715,7 @@
|
|||
"recommended": "Ajánlott",
|
||||
"refresh": "Frissítés",
|
||||
"regeneration_indicator.label": "Betöltés…",
|
||||
"regeneration_indicator.sublabel": "A saját idővonalad épp készül!",
|
||||
"regeneration_indicator.sublabel": "A kezdőlapod hírfolyama épp készül!",
|
||||
"relative_time.days": "{number}n",
|
||||
"relative_time.full.days": "{number, plural, one {# napja} other {# napja}}",
|
||||
"relative_time.full.hours": "{number, plural, one {# órája} other {# órája}}",
|
||||
|
@ -745,7 +769,7 @@
|
|||
"report.thanks.title": "Nem akarod ezt látni?",
|
||||
"report.thanks.title_actionable": "Köszönjük, hogy jelentetted, megnézzük.",
|
||||
"report.unfollow": "@{name} követésének leállítása",
|
||||
"report.unfollow_explanation": "Követed ezt a fiókot. Hogy ne lásd a bejegyzéseit a saját idővonaladon, szüntesd meg a követését.",
|
||||
"report.unfollow_explanation": "Követed ezt a fiókot. Hogy ne lásd a bejegyzéseit a kezdőlapi hírfolyamban, szüntesd meg a követését.",
|
||||
"report_notification.attached_statuses": "{count} bejegyzés mellékelve",
|
||||
"report_notification.categories.legal": "Jogi",
|
||||
"report_notification.categories.legal_sentence": "illegális tartalom",
|
||||
|
@ -849,7 +873,7 @@
|
|||
"subscribed_languages.lead": "A változtatás után csak a kiválasztott nyelvű bejegyzések fognak megjelenni a kezdőlapon és az idővonalakon. Ha egy sincs kiválasztva, akkor minden nyelven megjelennek a bejegyzések.",
|
||||
"subscribed_languages.save": "Változások mentése",
|
||||
"subscribed_languages.target": "Feliratkozott nyelvek módosítása {target} esetében",
|
||||
"tabs_bar.home": "Kezdőoldal",
|
||||
"tabs_bar.home": "Kezdőlap",
|
||||
"tabs_bar.notifications": "Értesítések",
|
||||
"time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra",
|
||||
"time_remaining.hours": "{number, plural, one {# óra} other {# óra}} van hátra",
|
||||
|
|
|
@ -87,8 +87,11 @@
|
|||
"alert.unexpected.title": "Oops!",
|
||||
"alt_text_badge.title": "Testo alternativo",
|
||||
"announcement.announcement": "Annuncio",
|
||||
"annual_report.summary.archetype.booster": "Cacciatore/trice di tendenze",
|
||||
"annual_report.summary.archetype.lurker": "L'osservatore/trice",
|
||||
"annual_report.summary.archetype.oracle": "L'oracolo",
|
||||
"annual_report.summary.archetype.pollster": "Sondaggista",
|
||||
"annual_report.summary.archetype.replier": "Utente socievole",
|
||||
"annual_report.summary.followers.followers": "seguaci",
|
||||
"annual_report.summary.followers.total": "{count} in totale",
|
||||
"annual_report.summary.here_it_is": "Ecco il tuo {year} in sintesi:",
|
||||
|
@ -137,13 +140,16 @@
|
|||
"column.blocks": "Utenti bloccati",
|
||||
"column.bookmarks": "Segnalibri",
|
||||
"column.community": "Cronologia locale",
|
||||
"column.create_list": "Crea lista",
|
||||
"column.direct": "Menzioni private",
|
||||
"column.directory": "Sfoglia profili",
|
||||
"column.domain_blocks": "Domini bloccati",
|
||||
"column.edit_list": "Modifica lista",
|
||||
"column.favourites": "Preferiti",
|
||||
"column.firehose": "Feed dal vivo",
|
||||
"column.follow_requests": "Richieste di seguirti",
|
||||
"column.home": "Home",
|
||||
"column.list_members": "Gestisci i membri della lista",
|
||||
"column.lists": "Liste",
|
||||
"column.mutes": "Utenti silenziati",
|
||||
"column.notifications": "Notifiche",
|
||||
|
@ -461,11 +467,32 @@
|
|||
"link_preview.author": "Di {name}",
|
||||
"link_preview.more_from_author": "Altro da {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} post} other {{counter} post}}",
|
||||
"lists.add_member": "Aggiungi",
|
||||
"lists.add_to_list": "Aggiungi alla lista",
|
||||
"lists.add_to_lists": "Aggiungi {name} alle liste",
|
||||
"lists.create": "Crea",
|
||||
"lists.create_a_list_to_organize": "Crea una nuova lista per organizzare il tuo feed Home",
|
||||
"lists.create_list": "Crea lista",
|
||||
"lists.delete": "Elimina elenco",
|
||||
"lists.done": "Fatto",
|
||||
"lists.edit": "Modifica elenco",
|
||||
"lists.exclusive": "Nascondi i membri in Home",
|
||||
"lists.exclusive_hint": "Se qualcuno è presente in questa lista, nascondilo nel tuo feed Home per evitare di vedere i suoi post due volte.",
|
||||
"lists.find_users_to_add": "Trova utenti da aggiungere",
|
||||
"lists.list_members": "Membri della lista",
|
||||
"lists.list_members_count": "{count, plural, one {# membro} other {# membri}}",
|
||||
"lists.list_name": "Nome della lista",
|
||||
"lists.new_list_name": "Nuovo nome della lista",
|
||||
"lists.no_lists_yet": "Non ci sono ancora liste.",
|
||||
"lists.no_members_yet": "Non ci sono ancora membri.",
|
||||
"lists.no_results_found": "Nessun risultato trovato.",
|
||||
"lists.remove_member": "Rimuovi",
|
||||
"lists.replies_policy.followed": "Qualsiasi utente seguito",
|
||||
"lists.replies_policy.list": "Membri dell'elenco",
|
||||
"lists.replies_policy.none": "Nessuno",
|
||||
"lists.save": "Salva",
|
||||
"lists.search_placeholder": "Cerca le persone che segui",
|
||||
"lists.show_replies_to": "Includi le risposte dei membri della lista a",
|
||||
"load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}",
|
||||
"loading_indicator.label": "Caricamento…",
|
||||
"media_gallery.hide": "Nascondi",
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
"about.domain_blocks.silenced.title": "ਸੀਮਿਤ",
|
||||
"about.domain_blocks.suspended.title": "ਮੁਅੱਤਲ ਕੀਤੀ",
|
||||
"about.rules": "ਸਰਵਰ ਨਿਯਮ",
|
||||
"account.account_note_header": "ਨਿੱਜੀ ਨੋਟ",
|
||||
"account.add_or_remove_from_list": "ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ ਜਾਂ ਹਟਾਓ",
|
||||
"account.badges.bot": "ਆਟੋਮੇਟ ਕੀਤਾ",
|
||||
"account.badges.group": "ਗਰੁੱਪ",
|
||||
|
@ -27,7 +28,9 @@
|
|||
"account.following": "ਫ਼ਾਲੋ ਕੀਤਾ",
|
||||
"account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।",
|
||||
"account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ",
|
||||
"account.joined_short": "ਜੁਆਇਨ ਕੀਤਾ",
|
||||
"account.media": "ਮੀਡੀਆ",
|
||||
"account.mention": "@{name} ਦਾ ਜ਼ਿਕਰ",
|
||||
"account.mute": "{name} ਨੂੰ ਮੌਨ ਕਰੋ",
|
||||
"account.mute_notifications_short": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਮੌਨ ਕਰੋ",
|
||||
"account.mute_short": "ਮੌਨ ਕਰੋ",
|
||||
|
@ -44,16 +47,32 @@
|
|||
"account.unblock": "@{name} ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਓ",
|
||||
"account.unblock_domain": "{domain} ਡੋਮੇਨ ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਓ",
|
||||
"account.unblock_short": "ਪਾਬੰਦੀ ਹਟਾਓ",
|
||||
"account.unendorse": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਫ਼ੀਚਰ ਨਾ ਕਰੋ",
|
||||
"account.unfollow": "ਅਣ-ਫ਼ਾਲੋ",
|
||||
"account.unmute": "@{name} ਲਈ ਮੌਨ ਹਟਾਓ",
|
||||
"account.unmute_notifications_short": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਅਣ-ਮੌਨ ਕਰੋ",
|
||||
"account.unmute_short": "ਮੌਨ-ਰਹਿਤ ਕਰੋ",
|
||||
"account_note.placeholder": "Click to add a note",
|
||||
"admin.dashboard.retention.average": "ਔਸਤ",
|
||||
"admin.dashboard.retention.cohort_size": "ਨਵੇਂ ਵਰਤੋਂਕਾਰ",
|
||||
"alert.unexpected.title": "ਓਹੋ!",
|
||||
"alt_text_badge.title": "ਬਦਲੀ ਲਿਖਤ",
|
||||
"announcement.announcement": "ਹੋਕਾ",
|
||||
"annual_report.summary.followers.followers": "ਫ਼ਾਲੋਅਰ",
|
||||
"annual_report.summary.followers.total": "{count} ਕੁੱਲ",
|
||||
"annual_report.summary.highlighted_post.by_favourites": "ਸਭ ਤੋਂ ਵੱਧ ਪਸੰਦ ਕੀਤੀ ਪੋਸਟ",
|
||||
"annual_report.summary.highlighted_post.by_reblogs": "ਸਭ ਤੋਂ ਵੱਧ ਬੂਸਟ ਕੀਤੀ ਪੋਸਟ",
|
||||
"annual_report.summary.highlighted_post.by_replies": "ਸਭ ਤੋਂ ਵੱਧ ਜਵਾਬ ਦਿੱਤੀ ਗਈ ਪੋਸਟ",
|
||||
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||
"annual_report.summary.most_used_app.most_used_app": "ਸਭ ਤੋਂ ਵੱਧ ਵਰਤੀ ਐਪ",
|
||||
"annual_report.summary.most_used_hashtag.none": "ਕੋਈ ਨਹੀਂ",
|
||||
"annual_report.summary.new_posts.new_posts": "ਨਵੀਆਂ ਪੋਸਟਾਂ",
|
||||
"annual_report.summary.thanks": "Mastodon ਦਾ ਹਿੱਸਾ ਬਣਨ ਵਾਸਤੇ ਧੰਨਵਾਦ ਹੈ!",
|
||||
"audio.hide": "ਆਡੀਓ ਨੂੰ ਲੁਕਾਓ",
|
||||
"block_modal.show_less": "ਘੱਟ ਦਿਖਾਓ",
|
||||
"block_modal.show_more": "ਵੱਧ ਦਿਖਾਓ",
|
||||
"block_modal.title": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਹੈ?",
|
||||
"boost_modal.reblog": "ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰਨਾ ਹੈ?",
|
||||
"bundle_column_error.error.title": "ਓਹ ਹੋ!",
|
||||
"bundle_column_error.network.title": "ਨੈੱਟਵਰਕ ਦੀ ਸਮੱਸਿਆ",
|
||||
"bundle_column_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ",
|
||||
|
@ -62,18 +81,29 @@
|
|||
"bundle_modal_error.close": "ਬੰਦ ਕਰੋ",
|
||||
"bundle_modal_error.message": "ਭਾਗ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਕੁਝ ਗਲਤ ਵਾਪਰਿਆ ਹੈ।",
|
||||
"bundle_modal_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ",
|
||||
"closed_registrations_modal.title": "Mastodon ਲਈ ਸਾਈਨ ਅੱਪ ਕਰੋ",
|
||||
"column.about": "ਸਾਡੇ ਬਾਰੇ",
|
||||
"column.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ",
|
||||
"column.bookmarks": "ਬੁੱਕਮਾਰਕ",
|
||||
"column.community": "ਲੋਕਲ ਸਮਾਂ-ਲਾਈਨ",
|
||||
"column.create_list": "ਸੂਚੀ ਬਣਾਓ",
|
||||
"column.direct": "ਨਿੱਜੀ ਜ਼ਿਕਰ",
|
||||
"column.directory": "ਪ੍ਰੋਫਾਈਲਾਂ ਨੂੰ ਦੇਖੋ",
|
||||
"column.domain_blocks": "ਪਾਬੰਦੀ ਲਾਏ ਡੋਮੇਨ",
|
||||
"column.edit_list": "ਸੂਚੀ ਨੂੰ ਸੋਧੋ",
|
||||
"column.favourites": "ਮਨਪਸੰਦ",
|
||||
"column.firehose": "ਲਾਈਵ ਫੀਡ",
|
||||
"column.follow_requests": "ਫ਼ਾਲੋ ਦੀਆਂ ਬੇਨਤੀਆਂ",
|
||||
"column.home": "ਮੁੱਖ ਸਫ਼ਾ",
|
||||
"column.list_members": "ਸੂਚੀ ਦੇ ਮੈਂਬਰ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ",
|
||||
"column.lists": "ਸੂਚੀਆਂ",
|
||||
"column.mutes": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ",
|
||||
"column.notifications": "ਸੂਚਨਾਵਾਂ",
|
||||
"column.pins": "ਟੰਗੀਆਂ ਪੋਸਟਾਂ",
|
||||
"column_back_button.label": "ਪਿੱਛੇ",
|
||||
"column_header.hide_settings": "ਸੈਟਿੰਗਾਂ ਨੂੰ ਲੁਕਾਓ",
|
||||
"column_header.moveLeft_settings": "ਕਾਲਮ ਨੂੰ ਖੱਬੇ ਪਾਸੇ ਭੇਜੋ",
|
||||
"column_header.moveRight_settings": "ਕਾਲਮ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਭੇਜੋ",
|
||||
"column_header.pin": "ਟੰਗੋ",
|
||||
"column_header.show_settings": "ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ",
|
||||
"column_header.unpin": "ਲਾਹੋ",
|
||||
|
@ -83,16 +113,20 @@
|
|||
"community.column_settings.remote_only": "ਸਿਰਫ਼ ਰਿਮੋਟ ਹੀ",
|
||||
"compose.language.change": "ਭਾਸ਼ਾ ਬਦਲੋ",
|
||||
"compose.language.search": "ਭਾਸ਼ਾਵਾਂ ਦੀ ਖੋਜ...",
|
||||
"compose.published.body": "ਪੋਸਟ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤੀ।",
|
||||
"compose.published.open": "ਖੋਲ੍ਹੋ",
|
||||
"compose.saved.body": "ਪੋਸਟ ਸੰਭਾਲੀ ਗਈ।",
|
||||
"compose_form.direct_message_warning_learn_more": "ਹੋਰ ਜਾਣੋ",
|
||||
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
|
||||
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
|
||||
"compose_form.lock_disclaimer": "ਤੁਹਾਡਾ ਖਾਤਾ {locked} ਨਹੀਂ ਹੈ। ਕੋਈ ਵੀ ਤੁਹਾਡੀਆਂ ਸਿਰਫ਼-ਫ਼ਾਲੋਅਰ ਪੋਸਟਾਂ ਵੇਖਣ ਵਾਸਤੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰ ਸਕਦਾ ਹੈ।",
|
||||
"compose_form.lock_disclaimer.lock": "ਲਾਕ ਹੈ",
|
||||
"compose_form.placeholder": "What is on your mind?",
|
||||
"compose_form.placeholder": "ਤੁਹਾਡੇ ਮਨ ਵਿੱਚ ਕੀ ਹੈ?",
|
||||
"compose_form.poll.option_placeholder": "{number} ਚੋਣ",
|
||||
"compose_form.poll.single": "ਇਕੱਲੀ ਚੋਣ",
|
||||
"compose_form.poll.type": "ਸਟਾਈਲ",
|
||||
"compose_form.publish": "ਪੋਸਟ",
|
||||
"compose_form.publish_form": "Publish",
|
||||
"compose_form.publish_form": "ਨਵੀਂ ਪੋਸਟ",
|
||||
"compose_form.reply": "ਜਵਾਬ ਦਿਓ",
|
||||
"compose_form.save_changes": "ਅੱਪਡੇਟ",
|
||||
"compose_form.spoiler.marked": "ਸਮੱਗਰੀ ਚੇਤਾਵਨੀ ਨੂੰ ਹਟਾਓ",
|
||||
|
@ -102,20 +136,49 @@
|
|||
"confirmations.block.confirm": "ਪਾਬੰਦੀ",
|
||||
"confirmations.delete.confirm": "ਹਟਾਓ",
|
||||
"confirmations.delete.message": "ਕੀ ਤੁਸੀਂ ਇਹ ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?",
|
||||
"confirmations.delete.title": "ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?",
|
||||
"confirmations.delete_list.confirm": "ਹਟਾਓ",
|
||||
"confirmations.delete_list.message": "ਕੀ ਤੁਸੀਂ ਇਸ ਸੂਚੀ ਨੂੰ ਪੱਕੇ ਤੌਰ ਉੱਤੇ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?",
|
||||
"confirmations.delete_list.title": "ਸੂਚੀ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?",
|
||||
"confirmations.discard_edit_media.confirm": "ਰੱਦ ਕਰੋ",
|
||||
"confirmations.edit.confirm": "ਸੋਧ",
|
||||
"confirmations.logout.confirm": "ਬਾਹਰ ਹੋਵੋ",
|
||||
"confirmations.logout.message": "ਕੀ ਤੁਸੀਂ ਲਾਗ ਆਉਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",
|
||||
"confirmations.logout.title": "ਲਾਗ ਆਉਟ ਕਰਨਾ ਹੈ?",
|
||||
"confirmations.mute.confirm": "ਮੌਨ ਕਰੋ",
|
||||
"confirmations.redraft.confirm": "ਹਟਾਓ ਤੇ ਮੁੜ-ਡਰਾਫਟ",
|
||||
"confirmations.reply.confirm": "ਜਵਾਬ ਦੇਵੋ",
|
||||
"confirmations.unfollow.confirm": "ਅਣ-ਫ਼ਾਲੋ",
|
||||
"confirmations.unfollow.message": "ਕੀ ਤੁਸੀਂ {name} ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",
|
||||
"confirmations.unfollow.title": "ਵਰਤੋਂਕਾਰ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰਨਾ ਹੈ?",
|
||||
"content_warning.hide": "ਪੋਸਟ ਨੂੰ ਲੁਕਾਓ",
|
||||
"content_warning.show": "ਕਿਵੇਂ ਵੀ ਵੇਖਾਓ",
|
||||
"content_warning.show_more": "ਹੋਰ ਵੇਖਾਓ",
|
||||
"conversation.delete": "ਗੱਲਬਾਤ ਨੂੰ ਹਟਾਓ",
|
||||
"conversation.mark_as_read": "ਪੜ੍ਹੇ ਵਜੋਂ ਨਿਸ਼ਾਨੀ ਲਾਓ",
|
||||
"conversation.open": "ਗੱਲਬਾਤ ਨੂੰ ਵੇਖੋ",
|
||||
"conversation.with": "{names} ਨਾਲ",
|
||||
"copy_icon_button.copied": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ",
|
||||
"copypaste.copied": "ਕਾਪੀ ਕੀਤਾ",
|
||||
"copypaste.copy_to_clipboard": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ",
|
||||
"directory.local": "ਸਿਰਫ਼ {domain} ਤੋਂ",
|
||||
"directory.new_arrivals": "ਨਵੇਂ ਆਉਣ ਵਾਲੇ",
|
||||
"directory.recently_active": "ਸੱਜਰੇ ਸਰਗਰਮ",
|
||||
"disabled_account_banner.account_settings": "ਖਾਤੇ ਦੀਆਂ ਸੈਟਿੰਗਾਂ",
|
||||
"disabled_account_banner.text": "ਤੁਹਾਡਾ ਖਾਤਾ {disabledAccount} ਇਸ ਵੇਲੇ ਅਸਮਰੱਥ ਕੀਤਾ ਹੈ।",
|
||||
"dismissable_banner.dismiss": "ਰੱਦ ਕਰੋ",
|
||||
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
|
||||
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
|
||||
"embed.instructions": "Embed this status on your website by copying the code below.",
|
||||
"domain_block_modal.block": "ਸਰਵਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ",
|
||||
"domain_block_modal.block_account_instead": "ਇਸ ਦੀ ਬਜਾਏ @{name} ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ",
|
||||
"domain_block_modal.title": "ਡੋਮੇਨ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਹੈ?",
|
||||
"domain_pill.server": "ਸਰਵਰ",
|
||||
"domain_pill.their_handle": "ਇਹ ਹੈਂਡਲ:",
|
||||
"domain_pill.their_server": "ਉਹਨਾਂ ਦਾ ਡਿਜ਼ਿਟਲ ਘਰ, ਜਿੱਥੇ ਉਹਨਾਂ ਦੀਆਂ ਸਾਰੀਆਂ ਪੋਸਟਾਂ ਹੁੰਦੀਆਂ ਹਨ।",
|
||||
"domain_pill.username": "ਵਰਤੋਂਕਾਰ-ਨਾਂ",
|
||||
"domain_pill.whats_in_a_handle": "ਹੈਂਡਲ ਕੀ ਹੁੰਦਾ ਹੈ?",
|
||||
"domain_pill.your_handle": "ਤੁਹਾਡਾ ਹੈਂਡਲ:",
|
||||
"embed.instructions": "ਹੇਠਲੇ ਕੋਡ ਨੂੰ ਕਾਪੀ ਕਰਕੇ ਆਪਣੀ ਵੈੱਬਸਾਈਟ ਉੱਤੇ ਇਸ ਪੋਸਟ ਨੂੰ ਇੰਬੈੱਡ ਕਰੋ।",
|
||||
"emoji_button.activity": "ਗਤੀਵਿਧੀ",
|
||||
"emoji_button.clear": "ਮਿਟਾਓ",
|
||||
"emoji_button.custom": "ਕਸਟਮ",
|
||||
|
@ -124,27 +187,43 @@
|
|||
"emoji_button.nature": "ਕੁਦਰਤ",
|
||||
"emoji_button.objects": "ਇਕਾਈ",
|
||||
"emoji_button.people": "ਲੋਕ",
|
||||
"emoji_button.recent": "ਅਕਸਰ ਵਰਤੇ",
|
||||
"emoji_button.search": "ਖੋਜ ਕਰੋ...",
|
||||
"emoji_button.search_results": "ਖੋਜ ਨਤੀਜੇ",
|
||||
"emoji_button.symbols": "ਚਿੰਨ੍ਹ",
|
||||
"emoji_button.travel": "ਸੈਰ ਸਪਾਟਾ ਤੇ ਥਾਵਾਂ",
|
||||
"empty_column.account_suspended": "ਖਾਤਾ ਸਸਪੈਂਡ ਕੀਤਾ",
|
||||
"empty_column.account_timeline": "ਇੱਥੇ ਕੋਈ ਪੋਸਟ ਨਹੀਂ ਹੈ!",
|
||||
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
|
||||
"empty_column.account_unavailable": "ਪ੍ਰੋਫਾਈਲ ਅਣ-ਉਪਲਬਧ ਹੈ",
|
||||
"empty_column.blocks": "ਤੁਸੀਂ ਹਾਲੇ ਕਿਸੇ ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਨਹੀਂ ਲਾਈ ਹੈ।",
|
||||
"empty_column.bookmarked_statuses": "ਤੁਸੀਂ ਹਾਲੇ ਕਿਸੇ ਵੀ ਪੋਸਟ ਨੂੰ ਬੁੱਕਮਾਰਕ ਨਹੀਂ ਕੀਤਾ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ ਬੁੱਕਮਾਰਕ ਕੀਤਾ ਤਾਂ ਉਹ ਇੱਥੇ ਦਿਖਾਈ ਦਾਵੇਗਾ।",
|
||||
"empty_column.home": "ਤੁਹਾਡੀ ਟਾਈਮ-ਲਾਈਨ ਖਾਲੀ ਹੈ! ਇਸ ਨੂੰ ਭਰਨ ਲਈ ਹੋਰ ਲੋਕਾਂ ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ।",
|
||||
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
|
||||
"empty_column.list": "ਇਸ ਸੂਚੀ ਵਿੱਚ ਹਾਲੇ ਕੁਝ ਵੀ ਨਹੀਂ ਹੈ। ਜਦੋਂ ਇਸ ਸੂਚੀ ਦੇ ਮੈਂਬਰ ਨਵੀਆਂ ਪੋਸਟਾਂ ਪਾਉਂਦੇ ਹਨ ਤਾਂ ਉਹ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ।",
|
||||
"errors.unexpected_crash.report_issue": "ਮੁੱਦੇ ਦੀ ਰਿਪੋਰਟ ਕਰੋ",
|
||||
"explore.search_results": "ਖੋਜ ਦੇ ਨਤੀਜੇ",
|
||||
"explore.suggested_follows": "ਲੋਕ",
|
||||
"explore.title": "ਪੜਚੋਲ ਕਰੋ",
|
||||
"explore.trending_links": "ਖ਼ਬਰਾਂ",
|
||||
"explore.trending_statuses": "ਪੋਸਟਾਂ",
|
||||
"explore.trending_tags": "ਹੈਸ਼ਟੈਗ",
|
||||
"filter_modal.added.expired_title": "ਫਿਲਟਰ ਦੀ ਮਿਆਦ ਪੁੱਗੀ!",
|
||||
"filter_modal.added.review_and_configure_title": "ਫਿਲਟਰ ਸੈਟਿੰਗਾਂ",
|
||||
"filter_modal.added.settings_link": "ਸੈਟਿੰਗਾਂ ਸਫ਼ਾ",
|
||||
"filter_modal.added.title": "ਫਿਲਟਰ ਨੂੰ ਜੋੜਿਆ!",
|
||||
"filter_modal.select_filter.expired": "ਮਿਆਦ ਪੁੱਗੀ",
|
||||
"filter_modal.select_filter.prompt_new": "ਨਵੀਂ ਕੈਟਾਗਰੀ: {name}",
|
||||
"filter_modal.select_filter.search": "ਖੋਜੋ ਜਾਂ ਬਣਾਓ",
|
||||
"firehose.all": "ਸਭ",
|
||||
"firehose.local": "ਇਹ ਸਰਵਰ",
|
||||
"firehose.remote": "ਹੋਰ ਸਰਵਰ",
|
||||
"follow_request.reject": "ਰੱਦ ਕਰੋ",
|
||||
"follow_suggestions.dismiss": "ਮੁੜ ਨਾ ਵੇਖਾਓ",
|
||||
"follow_suggestions.personalized_suggestion": "ਨਿੱਜੀ ਸੁਝਾਅ",
|
||||
"follow_suggestions.popular_suggestion": "ਹਰਮਨਪਿਆਰੇ ਸੁਝਾਅ",
|
||||
"follow_suggestions.popular_suggestion_longer": "{domain} ਉੱਤੇ ਹਰਮਨਪਿਆਰੇ",
|
||||
"follow_suggestions.view_all": "ਸਭ ਵੇਖੋ",
|
||||
"follow_suggestions.who_to_follow": "ਕਿਸ ਨੂੰ ਫ਼ਾਲੋ ਕਰੀਏ",
|
||||
"followed_tags": "ਫ਼ਾਲੋ ਕੀਤੇ ਹੈਸ਼ਟੈਗ",
|
||||
"footer.about": "ਸਾਡੇ ਬਾਰੇ",
|
||||
"footer.directory": "ਪਰੋਫਾਇਲ ਡਾਇਰੈਕਟਰੀ",
|
||||
"footer.get_app": "ਐਪ ਲਵੋ",
|
||||
|
@ -159,53 +238,94 @@
|
|||
"hashtag.column_header.tag_mode.any": "ਜਾਂ {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "{additional} ਬਿਨਾਂ",
|
||||
"hashtag.column_settings.select.no_options_message": "ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ ਲੱਭਾ",
|
||||
"hashtag.column_settings.select.placeholder": "ਹੈਸ਼ਟੈਗ ਦਿਓ…",
|
||||
"hashtag.column_settings.tag_mode.all": "ਇਹ ਸਭ",
|
||||
"hashtag.column_settings.tag_mode.any": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ",
|
||||
"hashtag.column_settings.tag_mode.none": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਹੀਂ",
|
||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
||||
"hashtag.follow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ",
|
||||
"hashtag.unfollow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ",
|
||||
"hints.profiles.see_more_followers": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋਅਰ ਵੇਖੋ",
|
||||
"hints.profiles.see_more_follows": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋ ਨੂੰ ਵੇਖੋ",
|
||||
"hints.profiles.see_more_posts": "{domain} ਉੱਤੇ ਹੋਰ ਪੋਸਟਾਂ ਨੂੰ ਵੇਖੋ",
|
||||
"home.column_settings.show_reblogs": "ਬੂਸਟਾਂ ਨੂੰ ਵੇਖੋ",
|
||||
"home.column_settings.show_replies": "ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ",
|
||||
"home.hide_announcements": "ਐਲਾਨਾਂ ਨੂੰ ਓਹਲੇ ਕਰੋ",
|
||||
"home.pending_critical_update.link": "ਅੱਪਡੇਟ ਵੇਖੋ",
|
||||
"ignore_notifications_modal.ignore": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ",
|
||||
"interaction_modal.login.action": "ਮੈਨੂੰ ਮੁੱਖ ਸਫ਼ੇ ਉੱਤੇ ਲੈ ਜਾਓ",
|
||||
"interaction_modal.no_account_yet": "Mastodon ਉੱਤੇ ਨਹੀਂ ਹੋ?",
|
||||
"interaction_modal.on_another_server": "ਵੱਖਰੇ ਸਰਵਰ ਉੱਤੇ",
|
||||
"interaction_modal.on_this_server": "ਇਸ ਸਰਵਰ ਉੱਤੇ",
|
||||
"interaction_modal.title.favourite": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ",
|
||||
"interaction_modal.title.follow": "{name} ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ",
|
||||
"interaction_modal.title.reblog": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰੋ",
|
||||
"interaction_modal.title.reply": "{name} ਦੀ ਪੋਸਟ ਦਾ ਜਵਾਬ ਦਿਓ",
|
||||
"interaction_modal.title.vote": "{name} ਦੀ ਚੋਣ ਵਾਸਤੇ ਵੋਟ ਪਾਓ",
|
||||
"intervals.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# ਮਿੰਟ} other {# ਮਿੰਟ}}",
|
||||
"keyboard_shortcuts.back": "ਪਿੱਛੇ ਜਾਓ",
|
||||
"keyboard_shortcuts.blocked": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰਾਂ ਦੀ ਸੂਚੀ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.boost": "ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰੋ",
|
||||
"keyboard_shortcuts.column": "ਫੋਕਸ ਕਾਲਮ",
|
||||
"keyboard_shortcuts.compose": "to focus the compose textarea",
|
||||
"keyboard_shortcuts.description": "ਵਰਣਨ",
|
||||
"keyboard_shortcuts.direct": "to open direct messages column",
|
||||
"keyboard_shortcuts.down": "to move down in the list",
|
||||
"keyboard_shortcuts.enter": "to open status",
|
||||
"keyboard_shortcuts.federated": "to open federated timeline",
|
||||
"keyboard_shortcuts.direct": "ਪ੍ਰਾਈਵੇਟ ਜ਼ਿਕਰ ਕੀਤੇ ਕਾਲਮ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ",
|
||||
"keyboard_shortcuts.down": "ਸੂਚੀ ਵਿੱਚ ਹੇਠਾਂ ਭੇਜੋ",
|
||||
"keyboard_shortcuts.enter": "ਪੋਸਟ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.favourite": "ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ",
|
||||
"keyboard_shortcuts.federated": "",
|
||||
"keyboard_shortcuts.heading": "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ",
|
||||
"keyboard_shortcuts.home": "to open home timeline",
|
||||
"keyboard_shortcuts.legend": "to display this legend",
|
||||
"keyboard_shortcuts.local": "to open local timeline",
|
||||
"keyboard_shortcuts.mention": "to mention author",
|
||||
"keyboard_shortcuts.muted": "to open muted users list",
|
||||
"keyboard_shortcuts.my_profile": "to open your profile",
|
||||
"keyboard_shortcuts.home": "ਮੁੱਖ-ਸਫ਼ਾ ਟਾਈਮ-ਲਾਈਨ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.legend": "ਇਸ ਸੰਕੇਤ ਨੂੰ ਵੇਖਾਓ",
|
||||
"keyboard_shortcuts.local": "ਲੋਕਲ ਸਮਾਂ-ਲਾਈਨ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.mention": "ਲੇਖਕ ਦਾ ਜ਼ਿਕਰ",
|
||||
"keyboard_shortcuts.muted": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ ਦੀ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.my_profile": "ਆਪਣੇ ਪਰੋਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.notifications": "ਨੋਟੀਫਿਕੇਸ਼ਨ ਕਾਲਮ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.open_media": "to open media",
|
||||
"keyboard_shortcuts.pinned": "to open pinned toots list",
|
||||
"keyboard_shortcuts.open_media": "ਮੀਡੀਏ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.pinned": "ਪਿੰਨ ਕੀਤੀਆਂ ਪੋਸਟਾਂ ਦੀ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.profile": "ਲੇਖਕ ਦਾ ਪਰੋਫਾਈਲ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.reply": "ਪੋਸਟ ਨੂੰ ਜਵਾਬ ਦਿਓ",
|
||||
"keyboard_shortcuts.requests": "to open follow requests list",
|
||||
"keyboard_shortcuts.search": "to focus search",
|
||||
"keyboard_shortcuts.spoilers": "to show/hide CW field",
|
||||
"keyboard_shortcuts.requests": "ਫ਼ਾਲੋ ਦੀਆਂ ਬੇਨਤੀਆਂ ਦੀ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"keyboard_shortcuts.search": "ਖੋਜ ਪੱਟੀ ਨੂੰ ਫੋਕਸ ਕਰੋ",
|
||||
"keyboard_shortcuts.spoilers": "CW ਖੇਤਰ ਨੂੰ ਵੇਖਾਓ/ਓਹਲੇ ਕਰੋ",
|
||||
"keyboard_shortcuts.start": "to open \"get started\" column",
|
||||
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "ਮੀਡੀਆ ਦਿਖਾਉਣ/ਲੁਕਾਉਣ ਲਈ",
|
||||
"keyboard_shortcuts.toot": "ਨਵੀਂ ਪੋਸਟ ਸ਼ੁਰੂ ਕਰੋ",
|
||||
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
|
||||
"keyboard_shortcuts.up": "to move up in the list",
|
||||
"keyboard_shortcuts.up": "ਸੂਚੀ ਵਿੱਚ ਉੱਤੇ ਭੇਜੋ",
|
||||
"lightbox.close": "ਬੰਦ ਕਰੋ",
|
||||
"lightbox.next": "ਅਗਲੀ",
|
||||
"lightbox.previous": "ਪਿਛਲੀ",
|
||||
"link_preview.author": "{name} ਵਲੋਂ",
|
||||
"link_preview.more_from_author": "{name} ਵਲੋਂ ਹੋਰ",
|
||||
"link_preview.shares": "{count, plural, one {{counter} ਪੋਸਟ} other {{counter} ਪੋਸਟਾਂ}}",
|
||||
"lists.add_member": "ਜੋੜੋ",
|
||||
"lists.add_to_list": "ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ",
|
||||
"lists.create": "ਬਣਾਓ",
|
||||
"lists.create_list": "ਸੂਚੀ ਬਣਾਓ",
|
||||
"lists.delete": "ਸੂਚੀ ਹਟਾਓ",
|
||||
"lists.done": "ਮੁਕੰਮਲ",
|
||||
"lists.edit": "ਸੂਚੀ ਨੂੰ ਸੋਧੋ",
|
||||
"lists.find_users_to_add": "ਜੋੜਨ ਲਈ ਵਰਤੋਂਕਾਰ ਲੱਭੋ",
|
||||
"lists.list_members": "ਮੈਂਬਰਾਂ ਦੀ ਸੂਚੀ",
|
||||
"lists.list_members_count": "{count, plural, one {# ਮੈਂਬਰ} other {# ਮੈਂਬਰ}}",
|
||||
"lists.list_name": "ਸੂਚੀ ਦਾ ਨਾਂ",
|
||||
"lists.new_list_name": "ਨਵੀਂ ਸੂਚੀਂ ਦਾ ਨਾਂ",
|
||||
"lists.no_lists_yet": "ਹਾਲੇ ਕੋਈ ਵੀ ਸੂਚੀ ਨਹੀਂ ਹੈ।",
|
||||
"lists.remove_member": "ਹਟਾਓ",
|
||||
"lists.replies_policy.followed": "ਕੋਈ ਵੀ ਫ਼ਾਲੋ ਕੀਤਾ ਵਰਤੋਂਕਾਰ",
|
||||
"lists.replies_policy.list": "ਸੂਚੀ ਦੇ ਮੈਂਬਰ",
|
||||
"lists.replies_policy.none": "ਕੋਈ ਨਹੀਂ",
|
||||
"lists.save": "ਸੰਭਾਲੋ",
|
||||
"loading_indicator.label": "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ…",
|
||||
"media_gallery.hide": "ਲੁਕਾਓ",
|
||||
"mute_modal.show_options": "ਚੋਣਾਂ ਨੂੰ ਵੇਖਾਓ",
|
||||
"navigation_bar.about": "ਇਸ ਬਾਰੇ",
|
||||
"navigation_bar.administration": "ਪਰਸ਼ਾਸ਼ਨ",
|
||||
"navigation_bar.advanced_interface": "ਤਕਨੀਕੀ ਵੈੱਬ ਇੰਟਰਫੇਸ ਵਿੱਚ ਖੋਲ੍ਹੋ",
|
||||
"navigation_bar.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ",
|
||||
"navigation_bar.bookmarks": "ਬੁੱਕਮਾਰਕ",
|
||||
|
@ -229,20 +349,57 @@
|
|||
"navigation_bar.search": "ਖੋਜੋ",
|
||||
"navigation_bar.security": "ਸੁਰੱਖਿਆ",
|
||||
"not_signed_in_indicator.not_signed_in": "ਇਹ ਸਰੋਤ ਵਰਤਣ ਲਈ ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।",
|
||||
"notification.admin.sign_up": "{name} ਨੇ ਸਾਈਨ ਅੱਪ ਕੀਤਾ",
|
||||
"notification.follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕੀਤਾ",
|
||||
"notification.follow.name_and_others": "{name} ਅਤੇ <a>{count, plural, one {# ਹੋਰ} other {# ਹੋਰਾਂ}}</a> ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕੀਤਾ",
|
||||
"notification.follow_request": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ",
|
||||
"notification.label.mention": "ਜ਼ਿਕਰ",
|
||||
"notification.label.private_mention": "ਨਿੱਜੀ ਜ਼ਿਕਰ",
|
||||
"notification.label.private_reply": "ਪ੍ਰਾਈਵੇਟ ਜਵਾਬ",
|
||||
"notification.label.reply": "ਜਵਾਬ",
|
||||
"notification.mention": "ਜ਼ਿਕਰ",
|
||||
"notification.mentioned_you": "{name} ਨੇ ਤੁਹਾਡਾ ਜ਼ਿਕਰ ਕੀਤਾ",
|
||||
"notification.moderation-warning.learn_more": "ਹੋਰ ਜਾਣੋ",
|
||||
"notification.moderation_warning.action_disable": "ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰਅਸਮਰੱਥ ਕੀਤਾ ਹੈ।",
|
||||
"notification.reblog": "{name} boosted your status",
|
||||
"notification.relationships_severance_event.learn_more": "ਹੋਰ ਜਾਣੋ",
|
||||
"notification.status": "{name} ਨੇ ਹੁਣੇ ਪੋਸਟ ਕੀਤਾ",
|
||||
"notification.update": "{name} ਨੋ ਪੋਸਟ ਨੂੰ ਸੋਧਿਆ",
|
||||
"notification_requests.accept": "ਮਨਜ਼ੂਰ",
|
||||
"notification_requests.confirm_accept_multiple.title": "ਨੋਟੀਫਿਕੇਸ਼ਨ ਬੇਨਤੀਆਂ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨਾ ਹੈ?",
|
||||
"notification_requests.confirm_dismiss_multiple.title": "ਨੋਟੀਫਿਕੇਸ਼ਨ ਬੇਨਤੀਆਂ ਨੂੰ ਖ਼ਾਰਜ ਕਰਨਾ ਹੈ?",
|
||||
"notification_requests.dismiss": "ਖ਼ਾਰਜ ਕਰੋ",
|
||||
"notification_requests.edit_selection": "ਸੋਧੋ",
|
||||
"notification_requests.exit_selection": "ਮੁਕੰਮਲ",
|
||||
"notification_requests.notifications_from": "{name} ਵਲੋਂ ਨੋਟੀਫਿਕੇਸ਼ਨ",
|
||||
"notifications.clear_title": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?",
|
||||
"notifications.column_settings.admin.report": "ਨਵੀਆਂ ਰਿਪੋਰਟਾਂ:",
|
||||
"notifications.column_settings.alert": "ਡੈਸਕਟਾਪ ਸੂਚਨਾਵਾਂ",
|
||||
"notifications.column_settings.favourite": "ਮਨਪਸੰਦ:",
|
||||
"notifications.column_settings.filter_bar.category": "ਫੌਰੀ ਫਿਲਟਰ ਪੱਟੀ",
|
||||
"notifications.column_settings.follow": "ਨਵੇਂ ਫ਼ਾਲੋਅਰ:",
|
||||
"notifications.column_settings.follow_request": "ਨਵੀਆਂ ਫ਼ਾਲੋ ਬੇਨਤੀਆਂ:",
|
||||
"notifications.column_settings.group": "ਗਰੁੱਪ",
|
||||
"notifications.column_settings.mention": "ਜ਼ਿਕਰ:",
|
||||
"notifications.column_settings.poll": "ਪੋਲ ਦੇ ਨਤੀਜੇ:",
|
||||
"notifications.column_settings.reblog": "ਬੂਸਟ:",
|
||||
"notifications.column_settings.show": "ਕਾਲਮ ਵਿੱਚ ਵੇਖਾਓ",
|
||||
"notifications.column_settings.sound": "ਆਵਾਜ਼ ਚਲਾਓ",
|
||||
"notifications.column_settings.status": "ਨਵੀਆਂ ਪੋਸਟਾਂ:",
|
||||
"notifications.column_settings.unread_notifications.category": "ਨਾ-ਪੜ੍ਹੇ ਨੋਟੀਫਿਕੇਸ਼ਨ",
|
||||
"notifications.column_settings.unread_notifications.highlight": "ਨਾ-ਪੜ੍ਹੇ ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਉਘਾੜੋ",
|
||||
"notifications.column_settings.update": "ਸੋਧ:",
|
||||
"notifications.filter.all": "ਸਭ",
|
||||
"notifications.filter.boosts": "ਬੂਸਟ",
|
||||
"notifications.filter.favourites": "ਮਨਪਸੰਦ",
|
||||
"notifications.filter.follows": "ਫ਼ਾਲੋ",
|
||||
"notifications.filter.mentions": "ਜ਼ਿਕਰ",
|
||||
"notifications.filter.polls": "ਪੋਲ ਦੇ ਨਤੀਜੇ",
|
||||
"notifications.grant_permission": "ਇਜਾਜ਼ਤ ਦਿਓ।",
|
||||
"notifications.group": "{count} ਨੋਟੀਫਿਕੇਸ਼ਨ",
|
||||
"notifications.policy.accept": "ਮਨਜ਼ੂਰ",
|
||||
"notifications.policy.accept_hint": "ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵੇਖਾਓ",
|
||||
"notifications.policy.drop": "ਅਣਡਿੱਠਾ",
|
||||
"onboarding.actions.go_to_explore": "ਮੈਨੂੰ ਰੁਝਾਨ ਵੇਖਾਓ",
|
||||
"onboarding.actions.go_to_home": "ਮੇਰੀ ਮੁੱਖ ਫੀਡ ਉੱਤੇ ਲੈ ਜਾਓ",
|
||||
"onboarding.follows.lead": "",
|
||||
|
@ -265,13 +422,23 @@
|
|||
"onboarding.steps.share_profile.title": "ਆਪਣੇ ਮਸਟਾਡੋਨ ਪਰੋਫਾਈਲ ਨੂੰ ਸਾਂਝਾ ਕਰੋ",
|
||||
"poll.closed": "ਬੰਦ ਹੈ",
|
||||
"poll.refresh": "ਤਾਜ਼ਾ ਕਰੋ",
|
||||
"poll.reveal": "ਨਤੀਜਿਆਂ ਨੂੰ ਵੇਖੋ",
|
||||
"poll.vote": "ਵੋਟ ਪਾਓ",
|
||||
"poll.voted": "ਤੁਸੀਂ ਇਸ ਜਵਾਬ ਲਈ ਵੋਟ ਕੀਤਾ",
|
||||
"privacy.change": "ਪੋਸਟ ਦੀ ਪਰਦੇਦਾਰੀ ਨੂੰ ਬਦਲੋ",
|
||||
"privacy.private.short": "ਫ਼ਾਲੋਅਰ",
|
||||
"privacy.public.short": "ਜਨਤਕ",
|
||||
"privacy_policy.title": "ਪਰਦੇਦਾਰੀ ਨੀਤੀ",
|
||||
"recommended": "ਸਿਫ਼ਾਰਸ਼ੀ",
|
||||
"refresh": "ਤਾਜ਼ਾ ਕਰੋ",
|
||||
"regeneration_indicator.label": "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ...",
|
||||
"relative_time.days": "{number}ਦਿਨ",
|
||||
"relative_time.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}} ਪਹਿਲਾਂ",
|
||||
"relative_time.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}} ਪਹਿਲਾਂ",
|
||||
"relative_time.full.just_now": "ਹੁਣੇ ਹੀ",
|
||||
"relative_time.full.minutes": "{number, plural, one {# ਮਿੰਟ} other {# ਮਿੰਟ}} ਪਹਿਲਾਂ",
|
||||
"relative_time.full.seconds": "{number, plural, one {# ਸਕਿੰਟ} other {# ਸਕਿੰਟ}} ਪਹਿਲਾਂ",
|
||||
"relative_time.hours": "{number}ਘੰ",
|
||||
"relative_time.just_now": "ਹੁਣੇ",
|
||||
"relative_time.minutes": "{number}ਮਿੰ",
|
||||
"relative_time.seconds": "{number}ਸ",
|
||||
|
@ -295,11 +462,19 @@
|
|||
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
|
||||
"report_notification.categories.legal": "ਕਨੂੰਨੀ",
|
||||
"report_notification.categories.other": "ਬਾਕੀ",
|
||||
"report_notification.categories.other_sentence": "ਹੋਰ",
|
||||
"report_notification.categories.spam": "ਸਪੈਮ",
|
||||
"report_notification.categories.spam_sentence": "ਸਪੈਮ",
|
||||
"report_notification.categories.violation": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ",
|
||||
"report_notification.categories.violation_sentence": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ",
|
||||
"report_notification.open": "ਰਿਪੋਰਟ ਨੂੰ ਖੋਲ੍ਹੋ",
|
||||
"search.placeholder": "ਖੋਜੋ",
|
||||
"search.quick_action.go_to_account": "ਪਰੋਫਾਈਲ {x} ਉੱਤੇ ਜਾਓ",
|
||||
"search.quick_action.go_to_hashtag": "ਹੈਸ਼ਟੈਗ {x} ਉੱਤੇ ਜਾਓ",
|
||||
"search_popout.language_code": "ISO ਭਾਸ਼ਾ ਕੋਡ",
|
||||
"search_popout.options": "ਖੋਜ ਲਈ ਚੋਣਾਂ",
|
||||
"search_popout.quick_actions": "ਫੌਰੀ ਕਾਰਵਾਈਆਂ",
|
||||
"search_popout.recent": "ਸੱਜਰੀਆਂ ਖੋਜੋ",
|
||||
"search_popout.specific_date": "ਖਾਸ ਤਾਰੀਖ",
|
||||
"search_popout.user": "ਵਰਤੋਂਕਾਰ",
|
||||
"search_results.accounts": "ਪਰੋਫਾਈਲ",
|
||||
|
@ -308,6 +483,7 @@
|
|||
"search_results.see_all": "ਸਭ ਵੇਖੋ",
|
||||
"search_results.statuses": "ਪੋਸਟਾਂ",
|
||||
"search_results.title": "{q} ਲਈ ਖੋਜ",
|
||||
"server_banner.active_users": "ਸਰਗਰਮ ਵਰਤੋਂਕਾਰ",
|
||||
"sign_in_banner.create_account": "ਖਾਤਾ ਬਣਾਓ",
|
||||
"sign_in_banner.sign_in": "ਲਾਗਇਨ",
|
||||
"sign_in_banner.sso_redirect": "ਲਾਗਇਨ ਜਾਂ ਰਜਿਸਟਰ ਕਰੋ",
|
||||
|
@ -316,7 +492,10 @@
|
|||
"status.bookmark": "ਬੁੱਕਮਾਰਕ",
|
||||
"status.copy": "ਪੋਸਟ ਲਈ ਲਿੰਕ ਕਾਪੀ ਕਰੋ",
|
||||
"status.delete": "ਹਟਾਓ",
|
||||
"status.direct": "{name} ਪ੍ਰਾਈਵੇਟ ਜ਼ਿਕਰ",
|
||||
"status.direct_indicator": "ਪ੍ਰਾਈਵੇਟ ਜ਼ਿਕਰ",
|
||||
"status.edit": "ਸੋਧ",
|
||||
"status.edited": "ਆਖਰੀ ਸੋਧ ਦੀ ਤਾਰੀਖ {date}",
|
||||
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
|
||||
"status.favourite": "ਪਸੰਦ",
|
||||
"status.history.created": "{name} ਨੇ {date} ਨੂੰ ਬਣਾਇਆ",
|
||||
|
@ -340,10 +519,12 @@
|
|||
"status.share": "ਸਾਂਝਾ ਕਰੋ",
|
||||
"status.title.with_attachments": "{user} ਨੇ {attachmentCount, plural,one {ਅਟੈਚਮੈਂਟ} other {{attachmentCount}ਅਟੈਚਮੈਂਟਾਂ}} ਪੋਸਟ ਕੀਤੀਆਂ",
|
||||
"status.translate": "ਉਲੱਥਾ ਕਰੋ",
|
||||
"status.unpin": "ਪਰੋਫਾਈਲ ਤੋਂ ਲਾਹੋ",
|
||||
"subscribed_languages.save": "ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੋ",
|
||||
"tabs_bar.home": "ਘਰ",
|
||||
"tabs_bar.notifications": "ਸੂਚਨਾਵਾਂ",
|
||||
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
|
||||
"trends.trending_now": "ਹੁਣ ਰੁਝਾਨ ਵਿੱਚ",
|
||||
"units.short.billion": "{count}ਿਬ",
|
||||
"units.short.million": "{count}ਮਿ",
|
||||
"units.short.thousand": "{count}ਹਜ਼ਾਰ",
|
||||
|
@ -357,8 +538,13 @@
|
|||
"upload_modal.edit_media": "ਮੀਡੀਆ ਸੋਧੋ",
|
||||
"upload_progress.label": "ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...",
|
||||
"upload_progress.processing": "ਕਾਰਵਾਈ ਚੱਲ ਰਹੀ ਹੈ…",
|
||||
"username.taken": "ਉਹ ਵਰਤੋਂਕਾਰ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਲੈ ਲਿਆ ਹੈ। ਹੋਰ ਅਜ਼ਮਾਓ",
|
||||
"video.close": "ਵੀਡੀਓ ਨੂੰ ਬੰਦ ਕਰੋ",
|
||||
"video.download": "ਫ਼ਾਈਲ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰੋ",
|
||||
"video.exit_fullscreen": "ਪੂਰੀ ਸਕਰੀਨ ਵਿੱਚੋਂ ਬਾਹਰ ਨਿਕਲੋ",
|
||||
"video.expand": "ਵੀਡੀਓ ਨੂੰ ਫੈਲਾਓ",
|
||||
"video.fullscreen": "ਪੂਰੀ ਸਕਰੀਨ",
|
||||
"video.hide": "ਵੀਡੀਓ ਨੂੰ ਲੁਕਾਓ",
|
||||
"video.pause": "ਠਹਿਰੋ",
|
||||
"video.play": "ਚਲਾਓ"
|
||||
}
|
||||
|
|
|
@ -104,6 +104,7 @@
|
|||
"annual_report.summary.most_used_hashtag.none": "Нет",
|
||||
"annual_report.summary.new_posts.new_posts": "новых постов",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Всё это помещает вас в топ</topLabel><percentage></percentage><bottomLabel>пользователей Mastodon.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Роскомнадзор об этом не узнает.",
|
||||
"annual_report.summary.thanks": "Спасибо за то, что были вместе с Mastodon!",
|
||||
"attachments_list.unprocessed": "(не обработан)",
|
||||
"audio.hide": "Скрыть аудио",
|
||||
|
@ -139,13 +140,16 @@
|
|||
"column.blocks": "Заблокированные пользователи",
|
||||
"column.bookmarks": "Закладки",
|
||||
"column.community": "Локальная лента",
|
||||
"column.create_list": "Создать список",
|
||||
"column.direct": "Личные упоминания",
|
||||
"column.directory": "Просмотр профилей",
|
||||
"column.domain_blocks": "Заблокированные домены",
|
||||
"column.edit_list": "Изменить список",
|
||||
"column.favourites": "Избранные",
|
||||
"column.firehose": "Живая лента",
|
||||
"column.follow_requests": "Запросы на подписку",
|
||||
"column.home": "Главная",
|
||||
"column.list_members": "Управление участниками списка",
|
||||
"column.lists": "Списки",
|
||||
"column.mutes": "Игнорируемые пользователи",
|
||||
"column.notifications": "Уведомления",
|
||||
|
@ -463,11 +467,32 @@
|
|||
"link_preview.author": "Автор: {name}",
|
||||
"link_preview.more_from_author": "Больше от {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} пост} other {{counter} посты}}",
|
||||
"lists.add_member": "Добавить",
|
||||
"lists.add_to_list": "Добавить в список",
|
||||
"lists.add_to_lists": "Добавить {name} в списки",
|
||||
"lists.create": "Создать",
|
||||
"lists.create_a_list_to_organize": "Создать новый список, чтобы упорядочить домашнюю ленту",
|
||||
"lists.create_list": "Создать список",
|
||||
"lists.delete": "Удалить список",
|
||||
"lists.done": "Готово",
|
||||
"lists.edit": "Изменить список",
|
||||
"lists.replies_policy.followed": "Любой подписанный пользователь",
|
||||
"lists.exclusive": "Не показывать участников в домашней ленте",
|
||||
"lists.exclusive_hint": "Если кто-то есть в этом списке, скрыть его в домашней ленте, чтобы не видеть его посты дважды.",
|
||||
"lists.find_users_to_add": "Найти пользователей для добавления",
|
||||
"lists.list_members": "Участники списка",
|
||||
"lists.list_members_count": "{count, plural, one {# участник} few {# участника} other {# участников}}",
|
||||
"lists.list_name": "Название списка",
|
||||
"lists.new_list_name": "Новое имя списка",
|
||||
"lists.no_lists_yet": "Пока нет списков.",
|
||||
"lists.no_members_yet": "Пока нет участников.",
|
||||
"lists.no_results_found": "Не найдено.",
|
||||
"lists.remove_member": "Удалить",
|
||||
"lists.replies_policy.followed": "Пользователи, на которых вы подписаны",
|
||||
"lists.replies_policy.list": "Пользователи в списке",
|
||||
"lists.replies_policy.none": "Никого",
|
||||
"lists.save": "Сохранить",
|
||||
"lists.search_placeholder": "Искать среди подписок",
|
||||
"lists.show_replies_to": "Показывать ответы участников списка на посты",
|
||||
"load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}",
|
||||
"loading_indicator.label": "Загрузка…",
|
||||
"media_gallery.hide": "Скрыть",
|
||||
|
|
|
@ -87,10 +87,17 @@
|
|||
"alert.unexpected.title": "อุปส์!",
|
||||
"alt_text_badge.title": "ข้อความแสดงแทน",
|
||||
"announcement.announcement": "ประกาศ",
|
||||
"annual_report.summary.archetype.booster": "ผู้ล่าความเจ๋ง",
|
||||
"annual_report.summary.archetype.lurker": "ผู้ซุ่มอ่านข่าว",
|
||||
"annual_report.summary.archetype.oracle": "ผู้ให้คำปรึกษา",
|
||||
"annual_report.summary.archetype.pollster": "ผู้สำรวจความคิดเห็น",
|
||||
"annual_report.summary.archetype.replier": "ผู้ชอบเข้าสังคม",
|
||||
"annual_report.summary.followers.followers": "ผู้ติดตาม",
|
||||
"annual_report.summary.followers.total": "รวม {count}",
|
||||
"annual_report.summary.highlighted_post.by_favourites": "โพสต์ที่ได้รับการชื่นชอบมากที่สุด",
|
||||
"annual_report.summary.highlighted_post.by_reblogs": "โพสต์ที่ได้รับการดันมากที่สุด",
|
||||
"annual_report.summary.highlighted_post.by_replies": "โพสต์ที่มีการตอบกลับมากที่สุด",
|
||||
"annual_report.summary.most_used_hashtag.none": "ไม่มี",
|
||||
"annual_report.summary.new_posts.new_posts": "โพสต์ใหม่",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "เราจะไม่บอก Bernie",
|
||||
"annual_report.summary.thanks": "ขอบคุณสำหรับการเป็นส่วนหนึ่งของ Mastodon!",
|
||||
|
@ -128,13 +135,16 @@
|
|||
"column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
|
||||
"column.bookmarks": "ที่คั่นหน้า",
|
||||
"column.community": "เส้นเวลาในเซิร์ฟเวอร์",
|
||||
"column.create_list": "สร้างรายการ",
|
||||
"column.direct": "การกล่าวถึงแบบส่วนตัว",
|
||||
"column.directory": "เรียกดูโปรไฟล์",
|
||||
"column.domain_blocks": "โดเมนที่ปิดกั้นอยู่",
|
||||
"column.edit_list": "แก้ไขรายการ",
|
||||
"column.favourites": "รายการโปรด",
|
||||
"column.firehose": "ฟีดสด",
|
||||
"column.follow_requests": "คำขอติดตาม",
|
||||
"column.home": "หน้าแรก",
|
||||
"column.list_members": "จัดการสมาชิกของรายการ",
|
||||
"column.lists": "รายการ",
|
||||
"column.mutes": "ผู้ใช้ที่ซ่อนอยู่",
|
||||
"column.notifications": "การแจ้งเตือน",
|
||||
|
@ -452,11 +462,32 @@
|
|||
"link_preview.author": "โดย {name}",
|
||||
"link_preview.more_from_author": "เพิ่มเติมจาก {name}",
|
||||
"link_preview.shares": "{count, plural, other {{counter} โพสต์}}",
|
||||
"lists.add_member": "เพิ่ม",
|
||||
"lists.add_to_list": "เพิ่มไปยังรายการ",
|
||||
"lists.add_to_lists": "เพิ่ม {name} ไปยังรายการ",
|
||||
"lists.create": "สร้าง",
|
||||
"lists.create_a_list_to_organize": "สร้างรายการใหม่เพื่อจัดระเบียบฟีดหน้าแรกของคุณ",
|
||||
"lists.create_list": "สร้างรายการ",
|
||||
"lists.delete": "ลบรายการ",
|
||||
"lists.done": "เสร็จสิ้น",
|
||||
"lists.edit": "แก้ไขรายการ",
|
||||
"lists.exclusive": "ซ่อนสมาชิกในหน้าแรก",
|
||||
"lists.exclusive_hint": "หากใครสักคนอยู่ในรายการนี้ ให้ซ่อนเขาในฟีดหน้าแรกของคุณเพื่อหลีกเลี่ยงการเห็นโพสต์ของเขาสองครั้ง",
|
||||
"lists.find_users_to_add": "ค้นหาผู้ใช้ที่จะเพิ่ม",
|
||||
"lists.list_members": "สมาชิกของรายการ",
|
||||
"lists.list_members_count": "{count, plural, other {# สมาชิก}}",
|
||||
"lists.list_name": "ชื่อรายการ",
|
||||
"lists.new_list_name": "ชื่อรายการใหม่",
|
||||
"lists.no_lists_yet": "ยังไม่มีรายการ",
|
||||
"lists.no_members_yet": "ยังไม่มีสมาชิก",
|
||||
"lists.no_results_found": "ไม่พบผลลัพธ์",
|
||||
"lists.remove_member": "เอาออก",
|
||||
"lists.replies_policy.followed": "ผู้ใช้ใด ๆ ที่ติดตาม",
|
||||
"lists.replies_policy.list": "สมาชิกของรายการ",
|
||||
"lists.replies_policy.none": "ไม่มีใคร",
|
||||
"lists.save": "บันทึก",
|
||||
"lists.search_placeholder": "ค้นหาผู้คนที่คุณติดตาม",
|
||||
"lists.show_replies_to": "รวมการตอบกลับจากสมาชิกของรายการถึง",
|
||||
"load_pending": "{count, plural, other {# รายการใหม่}}",
|
||||
"loading_indicator.label": "กำลังโหลด…",
|
||||
"media_gallery.hide": "ซ่อน",
|
||||
|
|
|
@ -492,6 +492,7 @@
|
|||
"lists.replies_policy.none": "Hiç kimse",
|
||||
"lists.save": "Kaydet",
|
||||
"lists.search_placeholder": "Takip ettiğiniz kişilerde arama yapın",
|
||||
"lists.show_replies_to": "Liste üyelerinin yanıtlarını içer",
|
||||
"load_pending": "{count, plural, one {# yeni öğe} other {# yeni öğe}}",
|
||||
"loading_indicator.label": "Yükleniyor…",
|
||||
"media_gallery.hide": "Gizle",
|
||||
|
|
|
@ -43,8 +43,8 @@
|
|||
"account.in_memoriam": "谨此悼念。",
|
||||
"account.joined_short": "加入于",
|
||||
"account.languages": "更改订阅语言",
|
||||
"account.link_verified_on": "此链接的所有权已在 {date} 检查",
|
||||
"account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注者。",
|
||||
"account.link_verified_on": "已于 {date} 验证此链接的所有权",
|
||||
"account.locked_info": "此账户已锁嘟。账户所有人会手动审核新关注者。",
|
||||
"account.media": "媒体",
|
||||
"account.mention": "提及 @{name}",
|
||||
"account.moved_to": "{name} 的新账号是:",
|
||||
|
@ -60,9 +60,9 @@
|
|||
"account.report": "举报 @{name}",
|
||||
"account.requested": "正在等待对方同意。点击取消发送关注请求",
|
||||
"account.requested_follow": "{name} 向你发送了关注请求",
|
||||
"account.share": "分享 @{name} 的个人资料页",
|
||||
"account.share": "分享 @{name} 的账户页",
|
||||
"account.show_reblogs": "显示来自 @{name} 的转嘟",
|
||||
"account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}",
|
||||
"account.statuses_counter": "{count, plural, other {{counter} 嘟文}}",
|
||||
"account.unblock": "取消屏蔽 @{name}",
|
||||
"account.unblock_domain": "取消屏蔽 {domain} 域名",
|
||||
"account.unblock_short": "取消屏蔽",
|
||||
|
@ -77,7 +77,7 @@
|
|||
"admin.dashboard.retention.average": "平均",
|
||||
"admin.dashboard.retention.cohort": "注册月份",
|
||||
"admin.dashboard.retention.cohort_size": "新用户",
|
||||
"admin.impact_report.instance_accounts": "将要删除的账户资料",
|
||||
"admin.impact_report.instance_accounts": "将被删除的账户",
|
||||
"admin.impact_report.instance_followers": "本实例用户即将丢失的关注者",
|
||||
"admin.impact_report.instance_follows": "对方实例用户将会丢失的关注者",
|
||||
"admin.impact_report.title": "影响摘要",
|
||||
|
@ -102,7 +102,7 @@
|
|||
"annual_report.summary.most_used_app.most_used_app": "最常用的应用",
|
||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "最常用的话题",
|
||||
"annual_report.summary.most_used_hashtag.none": "无",
|
||||
"annual_report.summary.new_posts.new_posts": "新嘟嘟",
|
||||
"annual_report.summary.new_posts.new_posts": "发嘟",
|
||||
"annual_report.summary.percentile.text": "<topLabel>这使你跻身 Mastodon 用户的前</topLabel><percentage></percentage><bottomLabel></bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉扣税国王的(他知道的话要来收你发嘟税了)。",
|
||||
"annual_report.summary.thanks": "感谢你这一年与 Mastodon 一路同行!",
|
||||
|
@ -131,7 +131,7 @@
|
|||
"bundle_modal_error.close": "关闭",
|
||||
"bundle_modal_error.message": "载入这个组件时发生了错误。",
|
||||
"bundle_modal_error.retry": "重试",
|
||||
"closed_registrations.other_server_instructions": "基于 Mastodon 去中心化的特性,你可以在其它服务器上创建账号并继续与此服务器互动。",
|
||||
"closed_registrations.other_server_instructions": "基于 Mastodon 的去中心化特性,你可以在其它服务器上创建账号,并与本站用户保持互动。",
|
||||
"closed_registrations_modal.description": "你目前无法在 {domain} 上创建账户,但请注意,使用 Mastodon 并非需要专门在 {domain} 上注册账户。",
|
||||
"closed_registrations_modal.find_another_server": "查找其他服务器",
|
||||
"closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以无论在哪个实例创建账号,都可以关注本服务器上的账号并与之交流。 或者你还可以自己搭建实例!",
|
||||
|
@ -175,7 +175,7 @@
|
|||
"compose_form.encryption_warning": "Mastodon 上的嘟文未经端到端加密。请勿在 Mastodon 上分享敏感信息。",
|
||||
"compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开的嘟文才能通过话题标签进行搜索。",
|
||||
"compose_form.lock_disclaimer": "你的账户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。",
|
||||
"compose_form.lock_disclaimer.lock": "开启保护",
|
||||
"compose_form.lock_disclaimer.lock": "锁嘟",
|
||||
"compose_form.placeholder": "想写什么?",
|
||||
"compose_form.poll.duration": "投票期限",
|
||||
"compose_form.poll.multiple": "多选",
|
||||
|
@ -248,19 +248,19 @@
|
|||
"domain_block_modal.you_will_lose_num_followers": "你将失去 {followersCount, plural, other {{followersCountDisplay} 名关注者}}和 {followingCount, plural, other {{followingCountDisplay} 名关注}}。",
|
||||
"domain_block_modal.you_will_lose_relationships": "你将失去在此实例上的所有关注和关注者。",
|
||||
"domain_block_modal.you_wont_see_posts": "你将不会看到此服务器上用户的嘟文或通知。",
|
||||
"domain_pill.activitypub_lets_connect": "它让你不仅能与 Mastodon 上的人交流互动,还能与其它不同社交应用上的人联系。",
|
||||
"domain_pill.activitypub_lets_connect": "它可以让你与不同社交应用上的人交流互动,而不仅限于 Mastodon。",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub 好比 Mastodon 与其它社交网络交流时使用的语言。",
|
||||
"domain_pill.server": "服务器",
|
||||
"domain_pill.their_handle": "对方代号:",
|
||||
"domain_pill.their_handle": "对方用户名:",
|
||||
"domain_pill.their_server": "对方的数字家园,对方的所有嘟文都存放在那里。",
|
||||
"domain_pill.their_username": "对方在其服务器上的唯一标识符。不同服务器上可能会存在相同用户名的用户。",
|
||||
"domain_pill.their_username": "对方在其服务器上的唯一标识。不同服务器上可能会存在相同用户名的用户。",
|
||||
"domain_pill.username": "用户名",
|
||||
"domain_pill.whats_in_a_handle": "代号里都有什么?",
|
||||
"domain_pill.who_they_are": "代号可以表明用户和其所在站点,你可以在社交网络上与<button>由 ActivityPub 驱动的不同平台</button>的人们互动。",
|
||||
"domain_pill.who_you_are": "代号可以表明你自己和你所在站点,社交网络上来自<button>由 ActivityPub 驱动的不同平台</button>的人们因此可以与你互动。",
|
||||
"domain_pill.your_handle": "你的代号:",
|
||||
"domain_pill.your_server": "你的数字家园,你的所有嘟文都存放在这里。不喜欢这个服务器吗?随时带上你的关注者一起迁移到其它服务器。",
|
||||
"domain_pill.your_username": "你在这个服务器上的唯一标识符。不同服务器上可能会存在相同用户名的用户。",
|
||||
"domain_pill.whats_in_a_handle": "用户名的构成",
|
||||
"domain_pill.who_they_are": "用户名可以表明用户的身份和其所在站点,这样你就可以通过<button>基于 ActivityPub 的平台</button>在社交网络和人们互动。",
|
||||
"domain_pill.who_you_are": "用户名可以表明你的身份和你所在的站点,这样人们就可以通过<button>基于 ActivityPub 的平台</button>在社交网络与你互动。",
|
||||
"domain_pill.your_handle": "你的用户名:",
|
||||
"domain_pill.your_server": "你的数字家园,你的所有嘟文都在此存储。不喜欢这里吗?你可以随时迁移到其它服务器,并带上你的关注者。",
|
||||
"domain_pill.your_username": "你在此服务器上的唯一标识。不同服务器上可能存在相同用户名的用户。",
|
||||
"embed.instructions": "复制下列代码以在你的网站中嵌入此嘟文。",
|
||||
"embed.preview": "这是它的预览效果:",
|
||||
"emoji_button.activity": "活动",
|
||||
|
@ -311,31 +311,31 @@
|
|||
"explore.trending_links": "新闻",
|
||||
"explore.trending_statuses": "嘟文",
|
||||
"explore.trending_tags": "话题标签",
|
||||
"filter_modal.added.context_mismatch_explanation": "此过滤器类别不适用访问过嘟文的环境中。如要在此环境中过滤嘟文,你必须编辑此过滤器。",
|
||||
"filter_modal.added.context_mismatch_title": "环境不匹配!",
|
||||
"filter_modal.added.expired_explanation": "此过滤器类别已过期,你需要修改到期日期才能应用。",
|
||||
"filter_modal.added.expired_title": "过滤器已过期!",
|
||||
"filter_modal.added.review_and_configure": "要审核并进一步配置此过滤器分类,请前往{settings_link}。",
|
||||
"filter_modal.added.review_and_configure_title": "过滤器设置",
|
||||
"filter_modal.added.context_mismatch_explanation": "这条过滤规则不适用于你当前访问此嘟文的场景。要在此场景下过滤嘟文,你必须编辑此过滤规则。",
|
||||
"filter_modal.added.context_mismatch_title": "场景不匹配!",
|
||||
"filter_modal.added.expired_explanation": "此过滤规则类别已过期,你需要修改到期日期才能应用。",
|
||||
"filter_modal.added.expired_title": "过滤规则已过期!",
|
||||
"filter_modal.added.review_and_configure": "要检查并进一步配置此过滤规则分类,请前往{settings_link}。",
|
||||
"filter_modal.added.review_and_configure_title": "过滤规则设置",
|
||||
"filter_modal.added.settings_link": "设置页面",
|
||||
"filter_modal.added.short_explanation": "此嘟文已添加到以下过滤器类别:{title}。",
|
||||
"filter_modal.added.title": "过滤器已添加 !",
|
||||
"filter_modal.select_filter.context_mismatch": "不适用于此环境",
|
||||
"filter_modal.added.short_explanation": "此嘟文已被添加到以下过滤规则:{title}。",
|
||||
"filter_modal.added.title": "已添加过滤规则 !",
|
||||
"filter_modal.select_filter.context_mismatch": "不适用于此场景",
|
||||
"filter_modal.select_filter.expired": "已过期",
|
||||
"filter_modal.select_filter.prompt_new": "新类别:{name}",
|
||||
"filter_modal.select_filter.prompt_new": "新条目:{name}",
|
||||
"filter_modal.select_filter.search": "搜索或创建",
|
||||
"filter_modal.select_filter.subtitle": "使用一个已存在类别,或创建一个新类别",
|
||||
"filter_modal.select_filter.subtitle": "使用一个已存在条目,或创建新条目",
|
||||
"filter_modal.select_filter.title": "过滤此嘟文",
|
||||
"filter_modal.title.status": "过滤一条嘟文",
|
||||
"filter_warning.matches_filter": "命中过滤规则 “<span>{title}</span>”",
|
||||
"filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}",
|
||||
"filtered_notifications_banner.title": "通知(已过滤)",
|
||||
"filtered_notifications_banner.title": "被过滤的通知",
|
||||
"firehose.all": "全部",
|
||||
"firehose.local": "此服务器",
|
||||
"firehose.remote": "其他服务器",
|
||||
"follow_request.authorize": "同意",
|
||||
"follow_request.reject": "拒绝",
|
||||
"follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的站务人员认为你也许会想手动审核审核这些账号的关注请求。",
|
||||
"follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的站务人员认为你也许会想手动审核这些账号的关注请求。",
|
||||
"follow_suggestions.curated_suggestion": "站务人员精选",
|
||||
"follow_suggestions.dismiss": "不再显示",
|
||||
"follow_suggestions.featured_longer": "由 {domain} 管理团队精选",
|
||||
|
@ -343,8 +343,8 @@
|
|||
"follow_suggestions.hints.featured": "该用户已被 {domain} 管理团队精选。",
|
||||
"follow_suggestions.hints.friends_of_friends": "该用户在你关注的人中很受欢迎。",
|
||||
"follow_suggestions.hints.most_followed": "该用户是 {domain} 上关注度最高的用户之一。",
|
||||
"follow_suggestions.hints.most_interactions": "该用户最近在 {domain} 上获得了很多关注。",
|
||||
"follow_suggestions.hints.similar_to_recently_followed": "该用户与你最近关注的用户类似。",
|
||||
"follow_suggestions.hints.most_interactions": "该用户最近在 {domain} 获得了很多关注。",
|
||||
"follow_suggestions.hints.similar_to_recently_followed": "该用户与你最近关注的人类似。",
|
||||
"follow_suggestions.personalized_suggestion": "个性化建议",
|
||||
"follow_suggestions.popular_suggestion": "热门建议",
|
||||
"follow_suggestions.popular_suggestion_longer": "在 {domain} 上很受欢迎",
|
||||
|
@ -353,7 +353,7 @@
|
|||
"follow_suggestions.who_to_follow": "推荐关注",
|
||||
"followed_tags": "已关注话题标签",
|
||||
"footer.about": "关于",
|
||||
"footer.directory": "用户目录",
|
||||
"footer.directory": "用户列表",
|
||||
"footer.get_app": "获取应用",
|
||||
"footer.invite": "邀请",
|
||||
"footer.keyboard_shortcuts": "快捷键",
|
||||
|
@ -395,7 +395,7 @@
|
|||
"ignore_notifications_modal.disclaimer": "Mastodon无法通知对方用户你忽略了他们的通知。忽略通知不会阻止消息本身的发送。",
|
||||
"ignore_notifications_modal.filter_instead": "改为过滤",
|
||||
"ignore_notifications_modal.filter_to_act_users": "你仍然可以接受、拒绝或举报用户",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "选择过滤有助于避免潜在的混淆",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "过滤有助于避免潜在的混淆",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "你可以单独查看被过滤的通知",
|
||||
"ignore_notifications_modal.ignore": "忽略通知",
|
||||
"ignore_notifications_modal.limited_accounts_title": "是否忽略来自受限账号的通知?",
|
||||
|
@ -403,17 +403,17 @@
|
|||
"ignore_notifications_modal.not_followers_title": "是否忽略未关注你的人的通知?",
|
||||
"ignore_notifications_modal.not_following_title": "是否忽略你未关注的人的通知?",
|
||||
"ignore_notifications_modal.private_mentions_title": "是否忽略不请自来的私下提及?",
|
||||
"interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,对嘟文的作者展示你欣赏的态度,并保存嘟文以供日后使用。",
|
||||
"interaction_modal.description.follow": "拥有一个 Mastodon 账号,你就可以关注 {name} 并在自己的主页上接收对方的新嘟文。",
|
||||
"interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你就可以向自己的关注者们转发此嘟文。",
|
||||
"interaction_modal.description.reply": "拥有一个 Mastodon 账号,你就可以回复此嘟文。",
|
||||
"interaction_modal.description.vote": "拥有一个 Mastodon 账号,你就可以参与此投票。",
|
||||
"interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,向作者展示你欣赏的态度,并将其保存以供日后查看。",
|
||||
"interaction_modal.description.follow": "只需一个 Mastodon 账号,即可关注 {name} 并在自己的主页接收对方的新嘟文。",
|
||||
"interaction_modal.description.reblog": "只需一个 Mastodon 账号,即可转发此嘟文,向你的关注者分享它。",
|
||||
"interaction_modal.description.reply": "只需一个 Mastodon 账号,即可回复此嘟文。",
|
||||
"interaction_modal.description.vote": "只需一个 Mastodon 账号,即可参与此投票。",
|
||||
"interaction_modal.login.action": "转到主页",
|
||||
"interaction_modal.login.prompt": "你所入驻的服务器域名,如:mastodon.social",
|
||||
"interaction_modal.no_account_yet": "不在 Mastodon 上?",
|
||||
"interaction_modal.no_account_yet": "还没加入 Mastodon?",
|
||||
"interaction_modal.on_another_server": "在另一服务器",
|
||||
"interaction_modal.on_this_server": "在此服务器",
|
||||
"interaction_modal.sign_in": "你尚未登录此服务器,你的账号托管在哪?",
|
||||
"interaction_modal.sign_in": "你尚未登录此服务器,你的账号是在哪里注册的?",
|
||||
"interaction_modal.sign_in_hint": "提示:这是你注册的网站,如果你不记得了,请在邮箱的收件箱中查找欢迎邮件。你还可以输入完整的用户名!(例如 @Mastodon@mastodon.social)",
|
||||
"interaction_modal.title.favourite": "喜欢 {name} 的嘟文",
|
||||
"interaction_modal.title.follow": "关注 {name}",
|
||||
|
@ -442,11 +442,11 @@
|
|||
"keyboard_shortcuts.local": "打开本站时间线",
|
||||
"keyboard_shortcuts.mention": "提及嘟文作者",
|
||||
"keyboard_shortcuts.muted": "打开隐藏用户列表",
|
||||
"keyboard_shortcuts.my_profile": "打开你的个人资料",
|
||||
"keyboard_shortcuts.my_profile": "打开你的账户页",
|
||||
"keyboard_shortcuts.notifications": "打开通知栏",
|
||||
"keyboard_shortcuts.open_media": "打开媒体",
|
||||
"keyboard_shortcuts.pinned": "打开置顶嘟文列表",
|
||||
"keyboard_shortcuts.profile": "打开作者的个人资料",
|
||||
"keyboard_shortcuts.profile": "打开作者的账户页",
|
||||
"keyboard_shortcuts.reply": "回复嘟文",
|
||||
"keyboard_shortcuts.requests": "打开关注请求列表",
|
||||
"keyboard_shortcuts.search": "选中搜索框",
|
||||
|
@ -526,7 +526,7 @@
|
|||
"navigation_bar.logout": "退出登录",
|
||||
"navigation_bar.moderation": "审核",
|
||||
"navigation_bar.mutes": "已隐藏的用户",
|
||||
"navigation_bar.opened_in_classic_interface": "嘟文、账户和其他特定页面默认在经典网页界面中打开。",
|
||||
"navigation_bar.opened_in_classic_interface": "嘟文页、账户页与其他某些页面默认在经典网页界面中打开。",
|
||||
"navigation_bar.personal": "个人",
|
||||
"navigation_bar.pins": "置顶嘟文",
|
||||
"navigation_bar.preferences": "偏好设置",
|
||||
|
@ -569,8 +569,8 @@
|
|||
"notification.reblog": "{name} 转发了你的嘟文",
|
||||
"notification.reblog.name_and_others_with_link": "{name} 和 <a>{count, plural, other {另外 # 人}}</a> 转嘟了你的嘟文",
|
||||
"notification.relationships_severance_event": "与 {name} 的联系已断开",
|
||||
"notification.relationships_severance_event.account_suspension": "来自 {from} 的管理员封禁了 {target},这意味着你将无法再收到对方的更新或与其互动。",
|
||||
"notification.relationships_severance_event.domain_block": "来自 {from} 的管理员屏蔽了 {target},其中包括你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。",
|
||||
"notification.relationships_severance_event.account_suspension": "{from} 的管理员封禁了 {target},这意味着你将无法再收到对方的更新或与其互动。",
|
||||
"notification.relationships_severance_event.domain_block": "{from} 的管理员屏蔽了 {target},其中包括你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。",
|
||||
"notification.relationships_severance_event.learn_more": "了解更多",
|
||||
"notification.relationships_severance_event.user_domain_block": "你已经屏蔽了 {target},移除了你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。",
|
||||
"notification.status": "{name} 刚刚发布嘟文",
|
||||
|
@ -587,12 +587,12 @@
|
|||
"notification_requests.dismiss_multiple": "{count, plural, other {拒绝 # 个请求…}}",
|
||||
"notification_requests.edit_selection": "编辑",
|
||||
"notification_requests.exit_selection": "完成",
|
||||
"notification_requests.explainer_for_limited_account": "来自该账户的通知已被过滤,因为该账户已被管理员限制。",
|
||||
"notification_requests.explainer_for_limited_remote_account": "来自该账户的通知已被过滤,因为该账户或其所在的实例已被管理员限制。",
|
||||
"notification_requests.explainer_for_limited_account": "来自此账户的通知已被过滤,因为此账户已被管理员限制。",
|
||||
"notification_requests.explainer_for_limited_remote_account": "来自此账户的通知已被过滤,因为此账户或其所在的服务器已被管理员限制。",
|
||||
"notification_requests.maximize": "最大化",
|
||||
"notification_requests.minimize_banner": "最小化被过滤通知的横幅",
|
||||
"notification_requests.minimize_banner": "最小化被过滤通知横幅",
|
||||
"notification_requests.notifications_from": "来自 {name} 的通知",
|
||||
"notification_requests.title": "通知(已过滤)",
|
||||
"notification_requests.title": "被过滤的通知",
|
||||
"notification_requests.view": "查看通知",
|
||||
"notifications.clear": "清空通知列表",
|
||||
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
|
||||
|
@ -634,16 +634,16 @@
|
|||
"notifications.policy.drop": "忽略",
|
||||
"notifications.policy.drop_hint": "送入虚空,再也不查看",
|
||||
"notifications.policy.filter": "过滤",
|
||||
"notifications.policy.filter_hint": "发送到被过滤通知收件箱",
|
||||
"notifications.policy.filter_limited_accounts_hint": "被实例管理员限制",
|
||||
"notifications.policy.filter_hint": "发送到被过滤通知列表",
|
||||
"notifications.policy.filter_limited_accounts_hint": "被服务器管理员限制的账号",
|
||||
"notifications.policy.filter_limited_accounts_title": "受限账号",
|
||||
"notifications.policy.filter_new_accounts.hint": "在 {days, plural, other {# 天}}内创建的账户",
|
||||
"notifications.policy.filter_new_accounts.hint": "注册未满 {days, plural, other {# 天}} 的账号",
|
||||
"notifications.policy.filter_new_accounts_title": "新账户",
|
||||
"notifications.policy.filter_not_followers_hint": "包括关注你少于 {days, plural, other {# 天}}的人",
|
||||
"notifications.policy.filter_not_followers_title": "未关注你的人",
|
||||
"notifications.policy.filter_not_following_hint": "直到你手动批准",
|
||||
"notifications.policy.filter_not_followers_hint": "包括关注你未满 {days, plural, other {# 天}}的人",
|
||||
"notifications.policy.filter_not_followers_title": "没有关注你的人",
|
||||
"notifications.policy.filter_not_following_hint": "需要你手动批准",
|
||||
"notifications.policy.filter_not_following_title": "你没有关注的人",
|
||||
"notifications.policy.filter_private_mentions_hint": "过滤通知,除非通知是在回复提及你自己的内容,或发送者是你关注的人",
|
||||
"notifications.policy.filter_private_mentions_hint": "过滤通知,除非对应嘟文是在回复你的私下提及,或来自你关注的人。",
|
||||
"notifications.policy.filter_private_mentions_title": "不请自来的私下提及",
|
||||
"notifications.policy.title": "管理来自 … 的通知",
|
||||
"notifications_permission_banner.enable": "启用桌面通知",
|
||||
|
@ -657,21 +657,21 @@
|
|||
"onboarding.follows.empty": "很抱歉,现在无法显示任何结果。你可以尝试使用搜索或浏览探索页面来查找要关注的人,或稍后再试。",
|
||||
"onboarding.follows.lead": "你管理你自己的家庭饲料。你关注的人越多,它将越活跃和有趣。 这些配置文件可能是一个很好的起点——你可以随时取消关注它们!",
|
||||
"onboarding.follows.title": "定制你的主页动态",
|
||||
"onboarding.profile.discoverable": "让我的资料卡可被他人发现",
|
||||
"onboarding.profile.discoverable_hint": "当你选择在 Mastodon 上启用发现功能时,你的嘟文可能会出现在搜索结果和热门中,你的账户可能会被推荐给与你兴趣相似的人。",
|
||||
"onboarding.profile.discoverable": "让我的账户可被他人发现",
|
||||
"onboarding.profile.discoverable_hint": "当你在 Mastodon 上启用发现功能时,你的嘟文可能会出现在搜索结果与热门中,你的账户可能会被推荐给与你兴趣相似的人。",
|
||||
"onboarding.profile.display_name": "昵称",
|
||||
"onboarding.profile.display_name_hint": "你的全名或昵称…",
|
||||
"onboarding.profile.lead": "你可以稍后在设置中完成此操作,设置中有更多的自定义选项。",
|
||||
"onboarding.profile.note": "简介",
|
||||
"onboarding.profile.note_hint": "你可以提及 @其他人 或 #标签…",
|
||||
"onboarding.profile.note_hint": "你可以提及 @其他人 或使用 #话题标签…",
|
||||
"onboarding.profile.save_and_continue": "保存并继续",
|
||||
"onboarding.profile.title": "设置个人资料",
|
||||
"onboarding.profile.upload_avatar": "上传头像",
|
||||
"onboarding.profile.upload_header": "上传个人资料背景横幅",
|
||||
"onboarding.profile.upload_header": "上传账户页封面图",
|
||||
"onboarding.share.lead": "让人们知道他们如何在Mastodon找到你!",
|
||||
"onboarding.share.message": "我是来自 #Mastodon 的 {username}!请在 {url} 关注我。",
|
||||
"onboarding.share.next_steps": "可能的下一步:",
|
||||
"onboarding.share.title": "分享你的个人资料",
|
||||
"onboarding.share.title": "分享你的账户页",
|
||||
"onboarding.start.lead": "你的新 Mastodon 账户已准备好。下面是如何最大限度地利用它:",
|
||||
"onboarding.start.skip": "想要在前面跳过吗?",
|
||||
"onboarding.start.title": "你已经成功了!",
|
||||
|
@ -679,14 +679,14 @@
|
|||
"onboarding.steps.follow_people.title": "定制你的主页动态",
|
||||
"onboarding.steps.publish_status.body": "向世界问声好吧。",
|
||||
"onboarding.steps.publish_status.title": "发布你的第一篇嘟文",
|
||||
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
|
||||
"onboarding.steps.setup_profile.title": "自定义你的个人资料",
|
||||
"onboarding.steps.share_profile.body": "让你的朋友知道怎样在 Mastodon 找到你",
|
||||
"onboarding.steps.share_profile.title": "分享你的个人资料",
|
||||
"onboarding.steps.setup_profile.body": "完善个人资料,提升你的互动体验。",
|
||||
"onboarding.steps.setup_profile.title": "自定义你的账户",
|
||||
"onboarding.steps.share_profile.body": "让你的朋友知道如何在 Mastodon 找到你",
|
||||
"onboarding.steps.share_profile.title": "分享你的账户页",
|
||||
"onboarding.tips.2fa": "<strong>你知道吗?</strong>你可以在账户设置中配置双因素认证来保护账户安全。可以使用你选择的任何 TOTP 应用,无需电话号码!",
|
||||
"onboarding.tips.accounts_from_other_servers": "<strong>你知道吗?</strong> 既然Mastodon是去中心化的,你所看到的一些账户将被托管在你以外的服务器上。 但你可以无缝地与他们交互!他们的服务器在他们的用户名的后半部分!",
|
||||
"onboarding.tips.accounts_from_other_servers": "<strong>你知道吗?</strong> Mastodon 是去中心化的,所以你看到的一些账号实际上是在别的服务器上。不过你仍然可以和他们无缝交流!他们的服务器地址就在他们用户名的后半部分!",
|
||||
"onboarding.tips.migration": "<strong>你知道吗?</strong>如果你将来觉得 {domain} 不再符合您的需求,你可以在保留现有关注者的情况下迁移至其他 Mastodon 服务器。你甚至可以部署自己的服务器!",
|
||||
"onboarding.tips.verification": "<strong>你知道吗?</strong> 你可以通过在自己的网站上放置一个链接到你的 Mastodon 个人资料并将网站添加到你的个人资料来验证你的账户。 无需收费或文书工作!",
|
||||
"onboarding.tips.verification": "<strong>你知道吗?</strong> 你可以在自己的网站上添加指向你 Mastodon 账户页的链接,并在你的 Mastodon 账户页中添加对应的网站链接,以此来验证您的账号。此验证方式无需任何费用或文件。",
|
||||
"password_confirmation.exceeds_maxlength": "密码确认超过最大密码长度",
|
||||
"password_confirmation.mismatching": "确认密码与密码不一致。",
|
||||
"picture_in_picture.restore": "恢复",
|
||||
|
@ -705,9 +705,9 @@
|
|||
"privacy.direct.short": "特定的人",
|
||||
"privacy.private.long": "仅限你的关注者",
|
||||
"privacy.private.short": "关注者",
|
||||
"privacy.public.long": "",
|
||||
"privacy.public.long": "所有 Mastodon 内外的人",
|
||||
"privacy.public.short": "公开",
|
||||
"privacy.unlisted.additional": "该模式的行为与“公开”完全相同,只是嘟文不会出现在实时动态、话题标签、探索或 Mastodon 搜索中,即使你已在账户级设置中选择加入。",
|
||||
"privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题标签、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
|
||||
"privacy.unlisted.long": "减少算法影响",
|
||||
"privacy.unlisted.short": "悄悄公开",
|
||||
"privacy_policy.last_updated": "最近更新于 {date}",
|
||||
|
@ -738,7 +738,7 @@
|
|||
"report.categories.violation": "内容违反一条或多条服务器规则",
|
||||
"report.category.subtitle": "选择最佳匹配",
|
||||
"report.category.title": "告诉我们此 {type} 存在的问题",
|
||||
"report.category.title_account": "个人资料",
|
||||
"report.category.title_account": "账户",
|
||||
"report.category.title_status": "嘟文",
|
||||
"report.close": "完成",
|
||||
"report.comment.title": "还有什么你认为我们应该知道的吗?",
|
||||
|
@ -782,11 +782,11 @@
|
|||
"report_notification.open": "打开举报",
|
||||
"search.no_recent_searches": "无最近搜索",
|
||||
"search.placeholder": "搜索",
|
||||
"search.quick_action.account_search": "匹配 {x} 的个人资料",
|
||||
"search.quick_action.go_to_account": "前往 {x} 个人资料",
|
||||
"search.quick_action.go_to_hashtag": "前往标签 {x}",
|
||||
"search.quick_action.open_url": "在 Mastodon 中打开网址",
|
||||
"search.quick_action.status_search": "匹配 {x} 的嘟文",
|
||||
"search.quick_action.account_search": "包含 {x} 的账户",
|
||||
"search.quick_action.go_to_account": "打开 {x} 的账户页",
|
||||
"search.quick_action.go_to_hashtag": "打开话题标签 {x}",
|
||||
"search.quick_action.open_url": "在 Mastodon 中打开此链接",
|
||||
"search.quick_action.status_search": "包含 {x} 的嘟文",
|
||||
"search.search_or_paste": "搜索或输入网址",
|
||||
"search_popout.full_text_search_disabled_message": "在 {domain} 不可用",
|
||||
"search_popout.full_text_search_logged_out_message": "只有登录后才可用。",
|
||||
|
@ -844,7 +844,7 @@
|
|||
"status.mute": "隐藏 @{name}",
|
||||
"status.mute_conversation": "禁用此对话的消息提醒",
|
||||
"status.open": "展开嘟文",
|
||||
"status.pin": "在个人资料页面置顶",
|
||||
"status.pin": "在账户页置顶",
|
||||
"status.pinned": "置顶嘟文",
|
||||
"status.read_more": "查看更多",
|
||||
"status.reblog": "转嘟",
|
||||
|
@ -869,7 +869,7 @@
|
|||
"status.translated_from_with": "由 {provider} 翻译自 {lang}",
|
||||
"status.uncached_media_warning": "预览不可用",
|
||||
"status.unmute_conversation": "恢复此对话的通知提醒",
|
||||
"status.unpin": "在个人资料页面取消置顶",
|
||||
"status.unpin": "在账户页取消置顶",
|
||||
"subscribed_languages.lead": "更改此选择后,只有选定语言的嘟文才会出现在你的主页和列表时间线上。选择「无」将显示所有语言的嘟文。",
|
||||
"subscribed_languages.save": "保存更改",
|
||||
"subscribed_languages.target": "更改 {target} 的订阅语言",
|
||||
|
|
|
@ -471,13 +471,13 @@
|
|||
"lists.add_to_list": "新增至列表",
|
||||
"lists.add_to_lists": "新增 {name} 至列表",
|
||||
"lists.create": "建立",
|
||||
"lists.create_a_list_to_organize": "建立新列表以整理您的首頁動態",
|
||||
"lists.create_a_list_to_organize": "建立新列表以整理您的首頁時間軸",
|
||||
"lists.create_list": "建立列表",
|
||||
"lists.delete": "刪除列表",
|
||||
"lists.done": "完成",
|
||||
"lists.edit": "編輯列表",
|
||||
"lists.exclusive": "在首頁隱藏成員",
|
||||
"lists.exclusive_hint": "如果某個帳號於此列表中,將自您的首頁動態中隱藏此帳號,以防重複見到他們的嘟文。",
|
||||
"lists.exclusive": "於首頁隱藏成員",
|
||||
"lists.exclusive_hint": "如果某個帳號於此列表中,將自您的首頁時間軸中隱藏此帳號,以防重複見到他們的嘟文。",
|
||||
"lists.find_users_to_add": "尋找欲新增之使用者",
|
||||
"lists.list_members": "列表成員",
|
||||
"lists.list_members_count": "{count, plural, other {# 個成員}}",
|
||||
|
|
|
@ -173,7 +173,9 @@ table + p {
|
|||
}
|
||||
|
||||
.email-prose {
|
||||
p {
|
||||
p,
|
||||
ul,
|
||||
ol {
|
||||
color: #17063b;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
|
|
|
@ -253,6 +253,10 @@ $content-width: 840px;
|
|||
.time-period {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.back-link {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
h2 small {
|
||||
|
@ -1940,3 +1944,76 @@ a.sparkline {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.admin {
|
||||
&__terms-of-service {
|
||||
&__container {
|
||||
background: var(--surface-background-color);
|
||||
border-radius: 8px;
|
||||
border: 1px solid var(--background-border-color);
|
||||
overflow: hidden;
|
||||
|
||||
&__header {
|
||||
padding: 16px;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
color: $secondary-text-color;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
&__body {
|
||||
background: var(--background-color);
|
||||
padding: 16px;
|
||||
overflow-y: scroll;
|
||||
height: 30vh;
|
||||
}
|
||||
}
|
||||
|
||||
&__history {
|
||||
& > li {
|
||||
border-bottom: 1px solid var(--background-border-color);
|
||||
|
||||
&:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&__item {
|
||||
padding: 16px 0;
|
||||
padding-bottom: 8px;
|
||||
|
||||
h5 {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dot-indicator {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 500;
|
||||
|
||||
&__indicator {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background: $dark-text-color;
|
||||
}
|
||||
|
||||
&.success {
|
||||
color: $valid-value-color;
|
||||
|
||||
.dot-indicator__indicator {
|
||||
background-color: $valid-value-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,9 +82,9 @@
|
|||
|
||||
.accounts-table {
|
||||
width: 100%;
|
||||
table-layout: fixed;
|
||||
|
||||
.account {
|
||||
max-width: calc(56px + 30ch);
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ class FeedManager
|
|||
# @param [Boolean] update
|
||||
# @return [Boolean]
|
||||
def push_to_home(account, status, update: false)
|
||||
return false unless account.user&.signed_in_recently?
|
||||
return false unless add_to_feed(:home, account.id, status, aggregate_reblogs: account.user&.aggregates_reblogs?)
|
||||
|
||||
trim(:home, account.id)
|
||||
|
@ -83,7 +84,9 @@ class FeedManager
|
|||
# @param [Boolean] update
|
||||
# @return [Boolean]
|
||||
def push_to_list(list, status, update: false)
|
||||
return false if filter_from_list?(status, list) || !add_to_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?)
|
||||
return false if filter_from_list?(status, list)
|
||||
return false unless list.account.user&.signed_in_recently?
|
||||
return false unless add_to_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?)
|
||||
|
||||
trim(:list, list.id)
|
||||
PushUpdateWorker.perform_async(list.account_id, status.id, "timeline:list:#{list.id}", { 'update' => update }) if push_update_required?("timeline:list:#{list.id}")
|
||||
|
|
|
@ -209,6 +209,16 @@ class UserMailer < Devise::Mailer
|
|||
end
|
||||
end
|
||||
|
||||
def terms_of_service_changed(user, terms_of_service)
|
||||
@resource = user
|
||||
@terms_of_service = terms_of_service
|
||||
@markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, escape_html: true, no_images: true)
|
||||
|
||||
I18n.with_locale(locale) do
|
||||
mail subject: default_i18n_subject
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def default_devise_subject
|
||||
|
|
|
@ -57,6 +57,7 @@ class Admin::ActionLogFilter
|
|||
enable_relay: { target_type: 'Relay', action: 'enable' }.freeze,
|
||||
memorialize_account: { target_type: 'Account', action: 'memorialize' }.freeze,
|
||||
promote_user: { target_type: 'User', action: 'promote' }.freeze,
|
||||
publish_terms_of_service: { target_type: 'TermsOfService', action: 'publish' }.freeze,
|
||||
remove_avatar_user: { target_type: 'User', action: 'remove_avatar' }.freeze,
|
||||
reopen_report: { target_type: 'Report', action: 'reopen' }.freeze,
|
||||
resend_user: { target_type: 'User', action: 'resend' }.freeze,
|
||||
|
|
|
@ -88,6 +88,9 @@ module Account::Interactions
|
|||
has_many :remote_severed_relationships, foreign_key: 'remote_account_id', inverse_of: :remote_account
|
||||
end
|
||||
|
||||
# Hashtag follows
|
||||
has_many :tag_follows, inverse_of: :account, dependent: :destroy
|
||||
|
||||
# Account notes
|
||||
has_many :account_notes, dependent: :destroy
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ module Account::Merging
|
|||
Follow, FollowRequest, Block, Mute,
|
||||
AccountModerationNote, AccountPin, AccountStat, ListAccount,
|
||||
PollVote, Mention, AccountDeletionRequest, AccountNote, FollowRecommendationSuppression,
|
||||
Appeal
|
||||
Appeal, TagFollow
|
||||
]
|
||||
|
||||
owned_classes.each do |klass|
|
||||
|
|
34
app/models/terms_of_service.rb
Normal file
34
app/models/terms_of_service.rb
Normal file
|
@ -0,0 +1,34 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: terms_of_services
|
||||
#
|
||||
# id :bigint(8) not null, primary key
|
||||
# changelog :text default(""), not null
|
||||
# notification_sent_at :datetime
|
||||
# published_at :datetime
|
||||
# text :text default(""), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
class TermsOfService < ApplicationRecord
|
||||
scope :published, -> { where.not(published_at: nil).order(published_at: :desc) }
|
||||
scope :live, -> { published.limit(1) }
|
||||
scope :draft, -> { where(published_at: nil).order(id: :desc).limit(1) }
|
||||
|
||||
validates :text, presence: true
|
||||
validates :changelog, presence: true, if: -> { published? }
|
||||
|
||||
def published?
|
||||
published_at.present?
|
||||
end
|
||||
|
||||
def notified?
|
||||
notification_sent_at.present?
|
||||
end
|
||||
|
||||
def scope_for_notification
|
||||
User.confirmed.joins(:account).merge(Account.without_suspended).where(created_at: (..published_at))
|
||||
end
|
||||
end
|
25
app/models/terms_of_service/generator.rb
Normal file
25
app/models/terms_of_service/generator.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class TermsOfService::Generator
|
||||
include ActiveModel::Model
|
||||
|
||||
TEMPLATE = Rails.root.join('config', 'templates', 'terms-of-service.md').read
|
||||
|
||||
VARIABLES = %i(
|
||||
domain
|
||||
admin_email
|
||||
dmca_email
|
||||
dmca_address
|
||||
arbitration_address
|
||||
arbitration_website
|
||||
jurisdiction
|
||||
).freeze
|
||||
|
||||
attr_accessor(*VARIABLES)
|
||||
|
||||
validates(*VARIABLES, presence: true)
|
||||
|
||||
def render
|
||||
format(TEMPLATE, VARIABLES.index_with { |key| public_send(key) })
|
||||
end
|
||||
end
|
|
@ -165,6 +165,10 @@ class User < ApplicationRecord
|
|||
end
|
||||
end
|
||||
|
||||
def signed_in_recently?
|
||||
current_sign_in_at.present? && current_sign_in_at >= ACTIVE_DURATION.ago
|
||||
end
|
||||
|
||||
def confirmed?
|
||||
confirmed_at.present?
|
||||
end
|
||||
|
|
|
@ -53,7 +53,7 @@ class Webhook < ApplicationRecord
|
|||
end
|
||||
|
||||
def required_permissions
|
||||
events.map { |event| Webhook.permission_for_event(event) }
|
||||
events.map { |event| Webhook.permission_for_event(event) }.uniq
|
||||
end
|
||||
|
||||
def self.permission_for_event(event)
|
||||
|
|
23
app/policies/terms_of_service_policy.rb
Normal file
23
app/policies/terms_of_service_policy.rb
Normal file
|
@ -0,0 +1,23 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class TermsOfServicePolicy < ApplicationPolicy
|
||||
def index?
|
||||
role.can?(:manage_settings)
|
||||
end
|
||||
|
||||
def create?
|
||||
role.can?(:manage_settings)
|
||||
end
|
||||
|
||||
def distribute?
|
||||
record.published? && !record.notified? && role.can?(:manage_settings)
|
||||
end
|
||||
|
||||
def update?
|
||||
!record.published? && role.can?(:manage_settings)
|
||||
end
|
||||
|
||||
def destroy?
|
||||
!record.published? && role.can?(:manage_settings)
|
||||
end
|
||||
end
|
|
@ -50,6 +50,7 @@ class DeleteAccountService < BaseService
|
|||
owned_lists
|
||||
scheduled_statuses
|
||||
status_pins
|
||||
tag_follows
|
||||
)
|
||||
|
||||
ASSOCIATIONS_ON_DESTROY = %w(
|
||||
|
|
6
app/views/admin/terms_of_service/_links.html.haml
Normal file
6
app/views/admin/terms_of_service/_links.html.haml
Normal file
|
@ -0,0 +1,6 @@
|
|||
.content__heading__tabs
|
||||
= render_navigation renderer: :links do |primary|
|
||||
:ruby
|
||||
primary.item :current, safe_join([material_symbol('description'), t('admin.terms_of_service.current')]), admin_terms_of_service_index_path
|
||||
primary.item :draft, safe_join([material_symbol('description'), t('admin.terms_of_service.draft')]), admin_terms_of_service_draft_path
|
||||
primary.item :previous, safe_join([material_symbol('history'), t('admin.terms_of_service.history')]), admin_terms_of_service_history_path
|
19
app/views/admin/terms_of_service/drafts/show.html.haml
Normal file
19
app/views/admin/terms_of_service/drafts/show.html.haml
Normal file
|
@ -0,0 +1,19 @@
|
|||
- content_for :page_title do
|
||||
= t('admin.terms_of_service.title')
|
||||
|
||||
- content_for :heading do
|
||||
%h2= t('admin.terms_of_service.title')
|
||||
= render partial: 'admin/terms_of_service/links'
|
||||
|
||||
= simple_form_for @terms_of_service, url: admin_terms_of_service_draft_path, method: :put do |form|
|
||||
= render 'shared/error_messages', object: @terms_of_service
|
||||
|
||||
.fields-group
|
||||
= form.input :text, wrapper: :with_block_label, input_html: { rows: 8 }
|
||||
|
||||
.fields-group
|
||||
= form.input :changelog, wrapper: :with_block_label, input_html: { rows: 8 }
|
||||
|
||||
.actions
|
||||
= form.button :button, t('admin.terms_of_service.save_draft'), type: :submit, name: :action_type, value: :save_draft, class: 'button button-secondary'
|
||||
= form.button :button, t('admin.terms_of_service.publish'), type: :submit, name: :action_type, value: :publish
|
41
app/views/admin/terms_of_service/generates/show.html.haml
Normal file
41
app/views/admin/terms_of_service/generates/show.html.haml
Normal file
|
@ -0,0 +1,41 @@
|
|||
- content_for :page_title do
|
||||
= t('admin.terms_of_service.generates.title')
|
||||
|
||||
- content_for :heading_actions do
|
||||
.back-link
|
||||
= link_to admin_terms_of_service_index_path do
|
||||
= material_symbol 'chevron_left'
|
||||
= t('admin.terms_of_service.back')
|
||||
|
||||
%p.lead= t('admin.terms_of_service.generates.explanation_html')
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
= simple_form_for @generator, url: admin_terms_of_service_generate_path, method: :post do |form|
|
||||
= render 'shared/error_messages', object: @generator
|
||||
|
||||
.fields-group
|
||||
= form.input :domain, wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= form.input :admin_email, wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= form.input :jurisdiction, wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= form.input :dmca_address, wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= form.input :dmca_email, wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= form.input :arbitration_address, wrapper: :with_label
|
||||
|
||||
.fields-group
|
||||
= form.input :arbitration_website, wrapper: :with_label
|
||||
|
||||
.actions
|
||||
= form.button :button, t('admin.terms_of_service.generates.action'), type: :submit
|
||||
|
||||
%p.hint.subtle-hint= t('admin.terms_of_service.generates.chance_to_review')
|
16
app/views/admin/terms_of_service/histories/show.html.haml
Normal file
16
app/views/admin/terms_of_service/histories/show.html.haml
Normal file
|
@ -0,0 +1,16 @@
|
|||
- content_for :page_title do
|
||||
= t('admin.terms_of_service.history')
|
||||
|
||||
- content_for :heading do
|
||||
%h2= t('admin.terms_of_service.title')
|
||||
= render partial: 'admin/terms_of_service/links'
|
||||
|
||||
- if @terms_of_service.empty?
|
||||
%p= t('admin.terms_of_service.no_history')
|
||||
- else
|
||||
%ol.admin__terms-of-service__history
|
||||
- @terms_of_service.each do |terms_of_service|
|
||||
%li
|
||||
.admin__terms-of-service__history__item
|
||||
%h5= l(terms_of_service.published_at)
|
||||
.prose= markdown(terms_of_service.changelog)
|
39
app/views/admin/terms_of_service/index.html.haml
Normal file
39
app/views/admin/terms_of_service/index.html.haml
Normal file
|
@ -0,0 +1,39 @@
|
|||
- content_for :page_title do
|
||||
= t('admin.terms_of_service.title')
|
||||
|
||||
- content_for :heading do
|
||||
%h2= t('admin.terms_of_service.title')
|
||||
= render partial: 'links'
|
||||
|
||||
- if @terms_of_service.present?
|
||||
.admin__terms-of-service__container
|
||||
.admin__terms-of-service__container__header
|
||||
.dot-indicator.success
|
||||
.dot-indicator__indicator
|
||||
%span= t('admin.terms_of_service.live')
|
||||
·
|
||||
%span
|
||||
= t('admin.terms_of_service.published_on_html', date: content_tag(:time, l(@terms_of_service.published_at.to_date), class: 'formatted', date: @terms_of_service.published_at.to_date.iso8601))
|
||||
·
|
||||
- if @terms_of_service.notified?
|
||||
%span
|
||||
= t('admin.terms_of_service.notified_on_html', date: content_tag(:time, l(@terms_of_service.notification_sent_at.to_date), class: 'formatted', date: @terms_of_service.notification_sent_at.to_date.iso8601))
|
||||
- else
|
||||
= link_to t('admin.terms_of_service.notify_users'), admin_terms_of_service_preview_path(@terms_of_service), class: 'link-button'
|
||||
|
||||
.admin__terms-of-service__container__body
|
||||
.prose
|
||||
= markdown(@terms_of_service.text)
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
%h3= t('admin.terms_of_service.changelog')
|
||||
|
||||
.prose
|
||||
= markdown(@terms_of_service.changelog)
|
||||
- else
|
||||
%p.lead= t('admin.terms_of_service.no_terms_of_service_html')
|
||||
|
||||
.content__heading__actions
|
||||
= link_to t('admin.terms_of_service.create'), admin_terms_of_service_draft_path, class: 'button'
|
||||
= link_to t('admin.terms_of_service.generate'), admin_terms_of_service_generate_path, class: 'button button-secondary'
|
20
app/views/admin/terms_of_service/previews/show.html.haml
Normal file
20
app/views/admin/terms_of_service/previews/show.html.haml
Normal file
|
@ -0,0 +1,20 @@
|
|||
- content_for :page_title do
|
||||
= t('admin.terms_of_service.preview.title')
|
||||
|
||||
- content_for :heading_actions do
|
||||
.back-link
|
||||
= link_to admin_terms_of_service_index_path do
|
||||
= material_symbol 'chevron_left'
|
||||
= t('admin.terms_of_service.back')
|
||||
|
||||
%p.lead
|
||||
= t('admin.terms_of_service.preview.explanation_html', count: @user_count, display_count: number_with_delimiter(@user_count), date: l(@terms_of_service.published_at.to_date))
|
||||
|
||||
.prose
|
||||
= markdown(@terms_of_service.changelog)
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
.content__heading__actions
|
||||
= link_to t('admin.terms_of_service.preview.send_preview', email: current_user.email), test_admin_terms_of_service_preview_path(@terms_of_service), method: :post, class: 'button button-secondary'
|
||||
= link_to t('admin.terms_of_service.preview.send_to_all', count: @user_count, display_count: number_with_delimiter(@user_count)), distribute_admin_terms_of_service_preview_path(@terms_of_service), method: :post, class: 'button', data: { confirm: t('admin.reports.are_you_sure') }
|
|
@ -71,7 +71,7 @@
|
|||
.fields-group
|
||||
= f.input :agreement,
|
||||
as: :boolean,
|
||||
label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path),
|
||||
label: t('auth.user_agreement_html', privacy_policy_path: privacy_policy_path, terms_of_service_path: terms_of_service_path),
|
||||
required: true,
|
||||
wrapper: :with_label
|
||||
|
||||
|
|
17
app/views/user_mailer/terms_of_service_changed.html.haml
Normal file
17
app/views/user_mailer/terms_of_service_changed.html.haml
Normal file
|
@ -0,0 +1,17 @@
|
|||
= content_for :heading do
|
||||
= render 'application/mailer/heading',
|
||||
image_url: frontend_asset_url('images/mailer-new/heading/user.png'),
|
||||
subtitle: t('user_mailer.terms_of_service_changed.subtitle', domain: site_hostname),
|
||||
title: t('user_mailer.terms_of_service_changed.title')
|
||||
%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
|
||||
%tr
|
||||
%td.email-body-padding-td
|
||||
%table.email-inner-card-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
|
||||
%tr
|
||||
%td.email-inner-card-td.email-prose
|
||||
%p= t('user_mailer.terms_of_service_changed.description_html', path: terms_of_service_url, domain: site_hostname)
|
||||
%p
|
||||
%strong= t('user_mailer.terms_of_service_changed.changelog')
|
||||
= markdown(@terms_of_service.changelog)
|
||||
%p= t('user_mailer.terms_of_service_changed.agreement', domain: site_hostname)
|
||||
%p= t('user_mailer.terms_of_service_changed.sign_off', domain: site_hostname)
|
14
app/views/user_mailer/terms_of_service_changed.text.erb
Normal file
14
app/views/user_mailer/terms_of_service_changed.text.erb
Normal file
|
@ -0,0 +1,14 @@
|
|||
<%= t('user_mailer.terms_of_service_changed.title') %>
|
||||
|
||||
===
|
||||
|
||||
<%= t('user_mailer.terms_of_service_changed.description', domain: site_hostname) %>
|
||||
|
||||
=> <%= terms_of_service_url %>
|
||||
|
||||
<%= t('user_mailer.terms_of_service_changed.changelog') %>
|
||||
|
||||
<%= @terms_of_service.changelog %>
|
||||
<%= t('user_mailer.terms_of_service_changed.agreement', domain: site_hostname) %>
|
||||
|
||||
<%= t('user_mailer.terms_of_service_changed.sign_off', domain: site_hostname) %>
|
|
@ -0,0 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Admin::DistributeTermsOfServiceNotificationWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
def perform(terms_of_service_id)
|
||||
terms_of_service = TermsOfService.find(terms_of_service_id)
|
||||
|
||||
terms_of_service.scope_for_notification.find_each do |user|
|
||||
UserMailer.terms_of_service_changed(user, terms_of_service).deliver_later!
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
true
|
||||
end
|
||||
end
|
27
bin/bundler-audit
Executable file
27
bin/bundler-audit
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# This file was generated by Bundler.
|
||||
#
|
||||
# The application 'bundler-audit' is installed as part of a gem, and
|
||||
# this file is here to facilitate running it.
|
||||
#
|
||||
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||
|
||||
bundle_binstub = File.expand_path("bundle", __dir__)
|
||||
|
||||
if File.file?(bundle_binstub)
|
||||
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
|
||||
load(bundle_binstub)
|
||||
else
|
||||
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||
end
|
||||
end
|
||||
|
||||
require "rubygems"
|
||||
require "bundler/setup"
|
||||
|
||||
load Gem.bin_path("bundler-audit", "bundler-audit")
|
27
bin/haml-lint
Executable file
27
bin/haml-lint
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# This file was generated by Bundler.
|
||||
#
|
||||
# The application 'haml-lint' is installed as part of a gem, and
|
||||
# this file is here to facilitate running it.
|
||||
#
|
||||
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||
|
||||
bundle_binstub = File.expand_path("bundle", __dir__)
|
||||
|
||||
if File.file?(bundle_binstub)
|
||||
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
|
||||
load(bundle_binstub)
|
||||
else
|
||||
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||
end
|
||||
end
|
||||
|
||||
require "rubygems"
|
||||
require "bundler/setup"
|
||||
|
||||
load Gem.bin_path("haml_lint", "haml-lint")
|
27
bin/i18n-tasks
Executable file
27
bin/i18n-tasks
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# This file was generated by Bundler.
|
||||
#
|
||||
# The application 'i18n-tasks' is installed as part of a gem, and
|
||||
# this file is here to facilitate running it.
|
||||
#
|
||||
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||
|
||||
bundle_binstub = File.expand_path("bundle", __dir__)
|
||||
|
||||
if File.file?(bundle_binstub)
|
||||
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
|
||||
load(bundle_binstub)
|
||||
else
|
||||
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||
end
|
||||
end
|
||||
|
||||
require "rubygems"
|
||||
require "bundler/setup"
|
||||
|
||||
load Gem.bin_path("i18n-tasks", "i18n-tasks")
|
16
bin/rspec
16
bin/rspec
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# This file was generated by Bundler.
|
||||
#
|
||||
|
@ -7,9 +8,18 @@
|
|||
# this file is here to facilitate running it.
|
||||
#
|
||||
|
||||
require "pathname"
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
||||
Pathname.new(__FILE__).realpath)
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||
|
||||
bundle_binstub = File.expand_path("bundle", __dir__)
|
||||
|
||||
if File.file?(bundle_binstub)
|
||||
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
|
||||
load(bundle_binstub)
|
||||
else
|
||||
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||
end
|
||||
end
|
||||
|
||||
require "rubygems"
|
||||
require "bundler/setup"
|
||||
|
|
|
@ -37,6 +37,11 @@ Rails.application.configure do
|
|||
|
||||
config.action_controller.forgery_protection_origin_check = ENV['DISABLE_FORGERY_REQUEST_PROTECTION'].nil?
|
||||
|
||||
ActiveSupport::Logger.new($stdout).tap do |logger|
|
||||
logger.formatter = config.log_formatter
|
||||
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
||||
end
|
||||
|
||||
# Generate random VAPID keys
|
||||
Webpush.generate_key.tap do |vapid_key|
|
||||
config.x.vapid_private_key = vapid_key.private_key
|
||||
|
|
|
@ -919,7 +919,6 @@ an:
|
|||
migrate_account: Mudar-se a unatra cuenta
|
||||
migrate_account_html: Si deseyas reendrezar esta cuenta a unatra distinta, puetz <a href="%{path}">configurar-lo aquí</a>.
|
||||
or_log_in_with: U inicia sesión con
|
||||
privacy_policy_agreement_html: He leyiu y accepto la <a href="%{privacy_policy_path}" target="_blank">politica de privacidat</a>
|
||||
providers:
|
||||
cas: CAS
|
||||
saml: SAML
|
||||
|
|
|
@ -1118,7 +1118,6 @@ ar:
|
|||
migrate_account: الانتقال إلى حساب مختلف
|
||||
migrate_account_html: إن كنت ترغب في تحويل هذا الحساب نحو حساب آخَر، يُمكِنُك <a href="%{path}">إعداده هنا</a>.
|
||||
or_log_in_with: أو قم بتسجيل الدخول بواسطة
|
||||
privacy_policy_agreement_html: لقد قرأتُ وأوافق على سياسة الخصوصية <a href="%{privacy_policy_path}" target="_blank"></a>
|
||||
progress:
|
||||
confirm: تأكيد عنوان البريد الإلكتروني
|
||||
details: تفاصيلك
|
||||
|
|
|
@ -459,7 +459,6 @@ ast:
|
|||
logout: Zarrar la sesión
|
||||
migrate_account: Cambéu de cuenta
|
||||
migrate_account_html: Si quies redirixir esta cuenta a otra diferente, pues <a href="%{path}">configurar esta opción equí</a>.
|
||||
privacy_policy_agreement_html: Lleí y acepto la <a href="%{privacy_policy_path}" target="_blank">política de privacidá</a>
|
||||
providers:
|
||||
cas: CAS
|
||||
saml: SAML
|
||||
|
|
|
@ -1134,7 +1134,6 @@ be:
|
|||
migrate_account: Пераехаць на іншы ўліковы запіс
|
||||
migrate_account_html: Калі вы хочаце перанакіраваць гэты ўліковы запіс на іншы, то можаце <a href="%{path}">наладзіць яго тут</a>.
|
||||
or_log_in_with: Або ўвайсці з дапамогай
|
||||
privacy_policy_agreement_html: Я азнаёміўся і пагаджаюся з <a href="%{privacy_policy_path}" target="_blank">палітыкай канфідэнцыйнасці</a>
|
||||
progress:
|
||||
confirm: Пацвердзіць email
|
||||
details: Вашы дадзеныя
|
||||
|
|
|
@ -1082,7 +1082,6 @@ bg:
|
|||
migrate_account: Преместване в различен акаунт
|
||||
migrate_account_html: Ако желаете да пренасочите този акаунт към друг, можете да <a href="%{path}">настроите това тук</a>.
|
||||
or_log_in_with: Или влизане с помощта на
|
||||
privacy_policy_agreement_html: Прочетох и има съгласието ми за <a href="%{privacy_policy_path}" target="_blank">политиката за поверителност</a>
|
||||
progress:
|
||||
details: Вашите подробности
|
||||
review: Нашият преглед
|
||||
|
|
|
@ -826,8 +826,10 @@ ca:
|
|||
back_to_account: Torna a la pàgina del compte
|
||||
back_to_report: Torna a la pàgina de l'informe
|
||||
batch:
|
||||
add_to_report: 'Afegiu a l''informe #%{id}'
|
||||
remove_from_report: Treu de l'informe
|
||||
report: Denuncia
|
||||
contents: Continguts
|
||||
deleted: Eliminada
|
||||
favourites: Favorits
|
||||
history: Històric de versions
|
||||
|
@ -836,12 +838,17 @@ ca:
|
|||
media:
|
||||
title: Contingut multimèdia
|
||||
metadata: Metadada
|
||||
no_history: Aquesta publicació no s'ha editat
|
||||
no_status_selected: No s’han canviat els estatus perquè cap no ha estat seleccionat
|
||||
open: Obre la publicació
|
||||
original_status: Publicació original
|
||||
reblogs: Impulsos
|
||||
replied_to_html: En resposta a %{acct_link}
|
||||
status_changed: Publicació canviada
|
||||
status_title: Publicació de @%{name}
|
||||
title: Publicacions del compte - @%{name}
|
||||
trending: Tendència
|
||||
view_publicly: Vegeu en públic
|
||||
visibility: Visibilitat
|
||||
with_media: Amb contingut multimèdia
|
||||
strikes:
|
||||
|
@ -1125,7 +1132,6 @@ ca:
|
|||
migrate_account: Mou a un compte diferent
|
||||
migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots <a href="%{path}">configurar aquí</a>.
|
||||
or_log_in_with: O inicia sessió amb
|
||||
privacy_policy_agreement_html: He llegit i estic d'acord amb la <a href="%{privacy_policy_path}" target="_blank">política de privacitat</a>
|
||||
progress:
|
||||
confirm: Confirmar email
|
||||
details: Els teus detalls
|
||||
|
@ -1173,8 +1179,11 @@ ca:
|
|||
use_security_key: Usa clau de seguretat
|
||||
author_attribution:
|
||||
example_title: Text d'exemple
|
||||
hint_html: Escriviu notícies o un blog fora de Mastodon? Controleu quin crèdit rebeu quan es comparteixen aquí.
|
||||
instructions: 'Assegureu-vos que aquest codi és a l''HTML de l''article:'
|
||||
more_from_html: Més de %{name}
|
||||
s_blog: Blog de %{name}
|
||||
then_instructions: Després, afegiu el nom del domini de la publicació aquí sota.
|
||||
title: Atribució d'autor
|
||||
challenge:
|
||||
confirm: Continua
|
||||
|
|
|
@ -1099,7 +1099,6 @@ cs:
|
|||
migrate_account: Přesunout se na jiný účet
|
||||
migrate_account_html: Zde můžete <a href="%{path}">nastavit přesměrování tohoto účtu na jiný</a>.
|
||||
or_log_in_with: Nebo se přihlaste pomocí
|
||||
privacy_policy_agreement_html: Četl jsem a souhlasím se zásadami <a href="%{privacy_policy_path}" target="_blank">ochrany osobních údajů</a>
|
||||
progress:
|
||||
details: Vaše údaje
|
||||
review: Naše hodnocení
|
||||
|
|
|
@ -1197,7 +1197,6 @@ cy:
|
|||
migrate_account: Symud i gyfrif gwahanol
|
||||
migrate_account_html: Os hoffech chi ailgyfeirio'r cyfrif hwn at un gwahanol, mae modd <a href="%{path}">ei ffurfweddu yma</a>.
|
||||
or_log_in_with: Neu mewngofnodwch gyda
|
||||
privacy_policy_agreement_html: Rwyf wedi darllen ac yn cytuno i'r <a href="%{privacy_policy_path}" target="_blank">polisi preifatrwydd</a>
|
||||
progress:
|
||||
confirm: Cadarnhau'r e-bost
|
||||
details: Eich manylion
|
||||
|
|
|
@ -1132,7 +1132,6 @@ da:
|
|||
migrate_account: Flyt til en anden konto
|
||||
migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du <a href="%{path}">opsætte dette hér</a>.
|
||||
or_log_in_with: Eller log ind med
|
||||
privacy_policy_agreement_html: Jeg accepterer <a href="%{privacy_policy_path}" target="_blank">privatlivspolitikken</a>
|
||||
progress:
|
||||
confirm: Bekræft e-mail
|
||||
details: Dine detaljer
|
||||
|
|
|
@ -1132,7 +1132,6 @@ de:
|
|||
migrate_account: Zu einem anderen Konto umziehen
|
||||
migrate_account_html: Wenn du dieses Konto auf ein anderes weiterleiten möchtest, kannst du es <a href="%{path}">hier konfigurieren</a>.
|
||||
or_log_in_with: Oder anmelden mit
|
||||
privacy_policy_agreement_html: Ich habe die <a href="%{privacy_policy_path}" target="_blank">Datenschutzerklärung</a> gelesen und stimme ihr zu
|
||||
progress:
|
||||
confirm: E-Mail bestätigen
|
||||
details: Deine Daten
|
||||
|
|
|
@ -129,7 +129,7 @@ zh-CN:
|
|||
conversations: 会话
|
||||
crypto: 端到端加密
|
||||
favourites: 喜欢
|
||||
filters: 过滤器
|
||||
filters: 过滤规则
|
||||
follow: 关注,隐藏与屏蔽
|
||||
follows: 关注
|
||||
lists: 列表
|
||||
|
@ -167,14 +167,14 @@ zh-CN:
|
|||
admin:write:reports: 对举报执行管理操作
|
||||
crypto: 使用端到端加密
|
||||
follow: 关注或屏蔽用户
|
||||
profile: 仅读取你账号的个人资料信息
|
||||
profile: 仅读取你账户的个人资料信息
|
||||
push: 接收你的账户的推送通知
|
||||
read: 读取你的账户数据
|
||||
read:accounts: 查看账号信息
|
||||
read:blocks: 查看你的屏蔽列表
|
||||
read:bookmarks: 查看你的书签
|
||||
read:favourites: 查看喜欢的嘟文
|
||||
read:filters: 查看你的过滤器
|
||||
read:filters: 查看你的过滤规则
|
||||
read:follows: 查看你的关注
|
||||
read:lists: 查看你的列表
|
||||
read:mutes: 查看你的隐藏列表
|
||||
|
@ -188,7 +188,7 @@ zh-CN:
|
|||
write:bookmarks: 为嘟文添加书签
|
||||
write:conversations: 静音并删除会话
|
||||
write:favourites: 喜欢嘟文
|
||||
write:filters: 创建过滤器
|
||||
write:filters: 创建过滤规则
|
||||
write:follows: 关注其他人
|
||||
write:lists: 创建列表
|
||||
write:media: 上传媒体文件
|
||||
|
|
|
@ -1085,7 +1085,6 @@ el:
|
|||
migrate_account: Μεταφορά σε διαφορετικό λογαριασμό
|
||||
migrate_account_html: Αν θέλεις να ανακατευθύνεις αυτό τον λογαριασμό σε έναν διαφορετικό, μπορείς να το <a href="%{path}">διαμορφώσεις εδώ</a>.
|
||||
or_log_in_with: Ή συνδέσου με
|
||||
privacy_policy_agreement_html: Έχω διαβάσει και συμφωνώ με την <a href="%{privacy_policy_path}" target="_blank">πολιτική απορρήτου</a>
|
||||
progress:
|
||||
confirm: Επιβεβαίωση email
|
||||
details: Τα στοιχεία σας
|
||||
|
|
|
@ -1116,7 +1116,6 @@ en-GB:
|
|||
migrate_account: Move to a different account
|
||||
migrate_account_html: If you wish to redirect this account to a different one, you can <a href="%{path}">configure it here</a>.
|
||||
or_log_in_with: Or log in with
|
||||
privacy_policy_agreement_html: I have read and agree to the <a href="%{privacy_policy_path}" target="_blank">privacy policy</a>
|
||||
progress:
|
||||
confirm: Confirm email
|
||||
details: Your details
|
||||
|
|
|
@ -214,6 +214,7 @@ en:
|
|||
enable_user: Enable User
|
||||
memorialize_account: Memorialize Account
|
||||
promote_user: Promote User
|
||||
publish_terms_of_service: Publish Terms of Service
|
||||
reject_appeal: Reject Appeal
|
||||
reject_user: Reject User
|
||||
remove_avatar_user: Remove Avatar
|
||||
|
@ -278,6 +279,7 @@ en:
|
|||
enable_user_html: "%{name} enabled login for user %{target}"
|
||||
memorialize_account_html: "%{name} turned %{target}'s account into a memoriam page"
|
||||
promote_user_html: "%{name} promoted user %{target}"
|
||||
publish_terms_of_service_html: "%{name} published updates to the terms of service"
|
||||
reject_appeal_html: "%{name} rejected moderation decision appeal from %{target}"
|
||||
reject_user_html: "%{name} rejected sign-up from %{target}"
|
||||
remove_avatar_user_html: "%{name} removed %{target}'s avatar"
|
||||
|
@ -925,6 +927,35 @@ en:
|
|||
search: Search
|
||||
title: Hashtags
|
||||
updated_msg: Hashtag settings updated successfully
|
||||
terms_of_service:
|
||||
back: Back to terms of service
|
||||
changelog: What's changed
|
||||
create: Use your own
|
||||
current: Current
|
||||
draft: Draft
|
||||
generate: Use template
|
||||
generates:
|
||||
action: Generate
|
||||
chance_to_review: The generated terms of service will not be published automatically. You will have a chance to review the results.
|
||||
explanation_html: You can use Mastodon's template terms of service. To proceed, you will need to fill in a few necessary pieces of information.
|
||||
title: Terms of Service Setup
|
||||
history: History
|
||||
live: Live
|
||||
no_history: There are no recorded changes of the terms of service yet.
|
||||
no_terms_of_service_html: You don't currently have any terms of service configured. Unlike the privacy policy, terms of service are optional for online services, however, they are meant to protect you from potential liabilities in disputes with your users.
|
||||
notified_on_html: Users notified on %{date}
|
||||
notify_users: Notify users
|
||||
preview:
|
||||
explanation_html: 'The email will be sent to <strong>%{display_count} users</strong> who have signed up before %{date}. The following text will be included in the e-mail:'
|
||||
send_preview: Send preview to %{email}
|
||||
send_to_all:
|
||||
one: Send %{display_count} email
|
||||
other: Send %{display_count} emails
|
||||
title: Preview terms of service notification
|
||||
publish: Publish
|
||||
published_on_html: Published on %{date}
|
||||
save_draft: Save draft
|
||||
title: Terms of Service
|
||||
title: Administration
|
||||
trends:
|
||||
allow: Allow
|
||||
|
@ -1132,7 +1163,6 @@ en:
|
|||
migrate_account: Move to a different account
|
||||
migrate_account_html: If you wish to redirect this account to a different one, you can <a href="%{path}">configure it here</a>.
|
||||
or_log_in_with: Or log in with
|
||||
privacy_policy_agreement_html: I have read and agree to the <a href="%{privacy_policy_path}" target="_blank">privacy policy</a>
|
||||
progress:
|
||||
confirm: Confirm email
|
||||
details: Your details
|
||||
|
@ -1178,6 +1208,7 @@ en:
|
|||
view_strikes: View past strikes against your account
|
||||
too_fast: Form submitted too fast, try again.
|
||||
use_security_key: Use security key
|
||||
user_agreement_html: I have read and agree to the <a href="%{terms_of_service_path}" target="_blank">terms of service</a> and <a href="%{privacy_policy_path}" target="_blank">privacy policy</a>
|
||||
author_attribution:
|
||||
example_title: Sample text
|
||||
hint_html: Are you writing news or blog articles outside of Mastodon? Control how you get credited when they are shared on Mastodon.
|
||||
|
@ -1900,6 +1931,15 @@ en:
|
|||
further_actions_html: If this wasn't you, we recommend that you %{action} immediately and enable two-factor authentication to keep your account secure.
|
||||
subject: Your account has been accessed from a new IP address
|
||||
title: A new sign-in
|
||||
terms_of_service_changed:
|
||||
agreement: By continuing to use %{domain}, you are agreeing to these terms. If you disagree with the updated terms, you may terminate your agreement with %{domain} at any time by deleting your account.
|
||||
changelog: 'At a glance, here is what this update means for you:'
|
||||
description: 'You are receiving this e-mail because we''re making some changes to our terms of service at %{domain}. We encourage you to review the updated terms in full here:'
|
||||
description_html: You are receiving this e-mail because we're making some changes to our terms of service at %{domain}. We encourage you to review the <a href="%{path}" target="_blank">updated terms in full here</a>.
|
||||
sign_off: The %{domain} team
|
||||
subject: Updates to our terms of service
|
||||
subtitle: The terms of service of %{domain} are changing
|
||||
title: Important update
|
||||
warning:
|
||||
appeal: Submit an appeal
|
||||
appeal_description: If you believe this is an error, you can submit an appeal to the staff of %{instance}.
|
||||
|
|
|
@ -1091,7 +1091,6 @@ eo:
|
|||
migrate_account: Movi al alia konto
|
||||
migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas <a href="%{path}">agordi ĝin ĉi tie</a>.
|
||||
or_log_in_with: Aŭ saluti per
|
||||
privacy_policy_agreement_html: Mi legis kaj konsentis pri <a href="%{privacy_policy_path}" target="_blank">privatpolitiko</a>
|
||||
progress:
|
||||
confirm: Konfirmi retadreson
|
||||
details: Viaj detaloj
|
||||
|
|
|
@ -1132,7 +1132,6 @@ es-AR:
|
|||
migrate_account: Mudarse a otra cuenta
|
||||
migrate_account_html: Si querés redireccionar esta cuenta a otra distinta, podés <a href="%{path}">configurar eso acá</a>.
|
||||
or_log_in_with: O iniciar sesión con
|
||||
privacy_policy_agreement_html: Leí y acepto la <a href="%{privacy_policy_path}" target="_blank">política de privacidad</a>
|
||||
progress:
|
||||
confirm: Confirmar correo electrónico
|
||||
details: Tus detalles
|
||||
|
|
|
@ -1132,7 +1132,6 @@ es-MX:
|
|||
migrate_account: Mudarse a otra cuenta
|
||||
migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes <a href="%{path}">configurarlo aquí</a>.
|
||||
or_log_in_with: O inicia sesión con
|
||||
privacy_policy_agreement_html: He leído y acepto la <a href="%{privacy_policy_path}" target="_blank">política de privacidad</a>
|
||||
progress:
|
||||
confirm: Confirmar dirección de correo
|
||||
details: Tus detalles
|
||||
|
|
|
@ -1073,7 +1073,7 @@ es:
|
|||
remove: Desvincular alias
|
||||
appearance:
|
||||
advanced_web_interface: Interfaz web avanzada
|
||||
advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, línea de tiempo federada, cualquier número de listas y etiquetas.'
|
||||
advanced_web_interface_hint: 'Si quieres aprovechar todo el ancho de tu pantalla, la interfaz web avanzada te permite configurar muchas columnas diferentes para ver toda la información que quieras al mismo tiempo: Inicio, notificaciones, cronología federada, cualquier número de listas y etiquetas.'
|
||||
animations_and_accessibility: Animaciones y accesibilidad
|
||||
confirmation_dialogs: Diálogos de confirmación
|
||||
discovery: Descubrir
|
||||
|
@ -1115,7 +1115,7 @@ es:
|
|||
welcome_title: "¡Te damos la bienvenida, %{name}!"
|
||||
wrong_email_hint: Si esa dirección de correo electrónico no es correcta, puedes cambiarla en la configuración de la cuenta.
|
||||
delete_account: Borrar cuenta
|
||||
delete_account_html: Si desea eliminar su cuenta, puede <a href="%{path}">proceder aquí</a>. Será pedido de una confirmación.
|
||||
delete_account_html: Si deseas eliminar tu cuenta, puedes <a href="%{path}">hacerlo aquí</a>. Se te pedirá una confirmación.
|
||||
description:
|
||||
prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodon!"
|
||||
prefix_sign_up: "¡Únete a Mastodon hoy!"
|
||||
|
@ -1132,7 +1132,6 @@ es:
|
|||
migrate_account: Mudarse a otra cuenta
|
||||
migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes <a href="%{path}">configurarlo aquí</a>.
|
||||
or_log_in_with: O inicia sesión con
|
||||
privacy_policy_agreement_html: He leído y acepto la <a href="%{privacy_policy_path}" target="_blank">política de privacidad</a>
|
||||
progress:
|
||||
confirm: Confirmar dirección de correo
|
||||
details: Tus detalles
|
||||
|
@ -1157,7 +1156,7 @@ es:
|
|||
set_new_password: Establecer nueva contraseña
|
||||
setup:
|
||||
email_below_hint_html: Comprueba tu carpeta de correo no deseado o solicita otro enlace de confirmación. Puedes corregir tu dirección de correo electrónico si está mal.
|
||||
email_settings_hint_html: Pulsa el enlace que te hemos enviado para verificar %{email}. Esperaremos aquí mismo.
|
||||
email_settings_hint_html: Haz clic en el enlace que te hemos enviado para verificar %{email}. Te esperamos aquí.
|
||||
link_not_received: "¿No recibiste un enlace?"
|
||||
new_confirmation_instructions_sent: "¡Recibirás un nuevo correo electrónico con el enlace de confirmación en unos minutos!"
|
||||
title: Revisa tu bandeja de entrada
|
||||
|
@ -1299,7 +1298,7 @@ es:
|
|||
featured_tags:
|
||||
add_new: Añadir nuevo
|
||||
errors:
|
||||
limit: Ya has alcanzado la cantidad máxima de hashtags
|
||||
limit: Ya has alcanzado la cantidad máxima de etiquetas
|
||||
hint_html: "<strong>¿Qué son las etiquetas destacadas?</strong> Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo."
|
||||
filters:
|
||||
contexts:
|
||||
|
@ -1352,7 +1351,7 @@ es:
|
|||
one: "<strong>%{count}</strong> elemento que coincide con su búsqueda está seleccionado."
|
||||
other: Todos los <strong>%{count}</strong> elementos que coinciden con su búsqueda están seleccionados.
|
||||
cancel: Cancelar
|
||||
changes_saved_msg: "¡Cambios guardados con éxito!"
|
||||
changes_saved_msg: "¡Los cambios se han guardado correctamente!"
|
||||
confirm: Confirmar
|
||||
copy: Copiar
|
||||
delete: Eliminar
|
||||
|
@ -1376,7 +1375,7 @@ es:
|
|||
too_large: El archivo es demasiado grande
|
||||
failures: Fallos
|
||||
imported: Importado
|
||||
mismatched_types_warning: Parece que podrías haber seleccionado el tipo incorrecto para esta importación, por favor vuelve a verificarlo.
|
||||
mismatched_types_warning: Parece que has seleccionado el tipo incorrecto para esta importación, vuelve a comprobarlo.
|
||||
modes:
|
||||
merge: Unir
|
||||
merge_long: Mantener registros existentes y añadir nuevos
|
||||
|
@ -1737,7 +1736,7 @@ es:
|
|||
development: Desarrollo
|
||||
edit_profile: Editar perfil
|
||||
export: Exportar
|
||||
featured_tags: Hashtags destacados
|
||||
featured_tags: Etiquetas destacadas
|
||||
import: Importar
|
||||
import_and_export: Importar y exportar
|
||||
migrate: Migración de cuenta
|
||||
|
@ -1777,8 +1776,8 @@ es:
|
|||
content_warning: 'Alerta de contenido: %{warning}'
|
||||
default_language: Igual que el idioma de la interfaz
|
||||
disallowed_hashtags:
|
||||
one: 'contenía un hashtag no permitido: %{tags}'
|
||||
other: 'contenía los hashtags no permitidos: %{tags}'
|
||||
one: 'contenía una etiqueta no permitida: %{tags}'
|
||||
other: 'contenía las etiquetas no permitidas: %{tags}'
|
||||
edited_at_html: Editado %{date}
|
||||
errors:
|
||||
in_reply_not_found: La publicación a la que intentas responder no existe.
|
||||
|
@ -1803,9 +1802,9 @@ es:
|
|||
exceptions: Excepciones
|
||||
explanation: Debido a que la eliminación de mensajes es una operación costosa, esto se hace lentamente, a lo largo de un tiempo, cuando el servidor no está ocupado. Por este motivo, puede que tus publicaciones sean borradas algo después de que alcancen el umbral de tiempo especificado.
|
||||
ignore_favs: Ignorar favoritos
|
||||
ignore_reblogs: Ignorar reblogueos
|
||||
ignore_reblogs: Ignorar impulsos
|
||||
interaction_exceptions: Excepciones basadas en interacciones
|
||||
interaction_exceptions_explanation: Ten en cuenta que no hay garantía de que se eliminen las publicaciones que están por debajo de los umbrales de favoritos o de reblogueos si los han superado en algún momento.
|
||||
interaction_exceptions_explanation: Ten en cuenta que no hay garantía de que se eliminen las publicaciones que están por debajo de los umbrales de favoritos o de impulsos si los han superado en algún momento.
|
||||
keep_direct: Mantener mensajes directos
|
||||
keep_direct_hint: No elimina ninguno de tus mensajes directos
|
||||
keep_media: Mantener publicaciones con multimedia adjunto
|
||||
|
@ -1831,7 +1830,7 @@ es:
|
|||
min_favs: Mantener mensajes con un número de favoritos mayor que
|
||||
min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
|
||||
min_reblogs: Mantener publicaciones reblogueadas más de
|
||||
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos
|
||||
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido impulsadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de impulsos
|
||||
stream_entries:
|
||||
sensitive_content: Contenido sensible
|
||||
strikes:
|
||||
|
@ -1982,7 +1981,7 @@ es:
|
|||
verification:
|
||||
extra_instructions_html: <strong>Consejo:</strong> El enlace en tu web puede ser invisible. La parte importante es <code>rel="me"</code>, que evita la suplantación de identidad en sitios con contenido generado por el usuario. Puedes incluso usar una etiqueta <code>enlace</code> en el encabezado de la página en vez de <code>a</code>, pero el HTML debe ser accesible sin ejecutar JavaScript.
|
||||
here_is_how: Así es como se hace
|
||||
hint_html: "<strong>Verificar tu identidad en Mastodon es para todos.</strong> Basado en estándares web abiertos, ahora y para siempre. Todo lo que necesitas es un sitio web propio que la gente reconozca. Cuando enlaces a este sitio web desde tu perfil, comprobaremos que el sitio web se enlaza a tu perfil y mostraremos un indicador visual en él."
|
||||
hint_html: "<strong>Verificar tu identidad en Mastodon es para todos.</strong> Basado en estándares web abiertos, ahora y siempre gratis. Todo lo que necesitas es un sitio web personal por el que la gente te reconozca. Cuando enlaces a este sitio web desde tu perfil, comprobaremos que el sitio web enlaza con tu perfil y mostraremos un indicador visual en él."
|
||||
instructions_html: Copia y pega el siguiente código en el HTML de tu sitio web. A continuación, añade la dirección de su sitio web en uno de los campos extra de tu perfil desde la pestaña "Editar perfil" y guarda los cambios.
|
||||
verification: Verificación
|
||||
verified_links: Tus enlaces verificados
|
||||
|
|
|
@ -1117,7 +1117,6 @@ et:
|
|||
migrate_account: Teisele kontole ära kolimine
|
||||
migrate_account_html: Kui soovid konto siit ära kolida, <a href="%{path}">saad seda teha siin</a>.
|
||||
or_log_in_with: Või logi sisse koos
|
||||
privacy_policy_agreement_html: Olen tutvunud <a href="%{privacy_policy_path}" target="_blank">isikuandmete kaitse põhimõtetega</a> ja nõustun nendega
|
||||
progress:
|
||||
confirm: E-posti kinnitamine
|
||||
details: Sinu üksikasjad
|
||||
|
|
|
@ -1041,7 +1041,6 @@ eu:
|
|||
migrate_account: Migratu beste kontu batera
|
||||
migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, <a href="%{path}">hemen konfiguratu</a> dezakezu.
|
||||
or_log_in_with: Edo hasi saioa honekin
|
||||
privacy_policy_agreement_html: <a href="%{privacy_policy_path}" target="_blank">Pribatutasun politika</a> irakurri dut eta ados nago
|
||||
progress:
|
||||
details: Zure xehetasunak
|
||||
review: Gure berrikuspena
|
||||
|
|
|
@ -978,7 +978,6 @@ fa:
|
|||
migrate_account: نقل مکان به یک حساب دیگر
|
||||
migrate_account_html: اگر میخواهید این حساب را به حساب دیگری منتقل کنید، <a href="%{path}">اینجا را کلیک کنید</a>.
|
||||
or_log_in_with: یا ورود به وسیلهٔ
|
||||
privacy_policy_agreement_html: <a href="%{privacy_policy_path}" target="_blank">سیاست محرمانگی</a> را خوانده و پذیرفتهام
|
||||
progress:
|
||||
confirm: تأیید رایانامه
|
||||
details: جزئیات شما
|
||||
|
|
|
@ -1132,7 +1132,6 @@ fi:
|
|||
migrate_account: Muuta toiseen tiliin
|
||||
migrate_account_html: Jos haluat ohjata tämän tilin toiseen, voit <a href="%{path}">asettaa toisen tilin tästä</a>.
|
||||
or_log_in_with: Tai käytä kirjautumiseen
|
||||
privacy_policy_agreement_html: Olen lukenut ja hyväksyn <a href="%{privacy_policy_path}" target="_blank">tietosuojakäytännön</a>
|
||||
progress:
|
||||
confirm: Vahvista sähköpostiosoite
|
||||
details: Omat tietosi
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user