Compare commits

...

13 Commits

Author SHA1 Message Date
Eugen Rochko
ce0c4da86a Add terms of service 2024-11-26 06:14:17 +01:00
Matt Jankowski
6d62581da1
Update binstub templates (#32335)
Some checks are pending
Bundler Audit / security (push) Waiting to run
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
Haml Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
2024-11-25 16:49:24 +00:00
Claire
9a7130d6da
Fix direct inbox delivery pushing posts into inactive followers' timelines (#33067) 2024-11-25 15:54:18 +00:00
Claire
2d8fed23e6
Fix TagFollow records not being correctly handled in account operations (#33063)
Some checks are pending
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
CSS Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
2024-11-25 10:27:58 +00:00
Eugen Rochko
1a88c05274
Fix arrow in the wrong place on empty list members screen in web UI (#33054) 2024-11-25 10:23:09 +00:00
Claire
1be83c6982
Fix username and display name being hidden on narrow screens in moderation interface (#33064) 2024-11-25 09:18:06 +00:00
Matt Jankowski
74df47ad9c
Add coverage for Webhook validations (#33026) 2024-11-25 08:19:16 +00:00
Matt Jankowski
ab9c62e8c7
Add coverage for User validations (#33028) 2024-11-25 08:18:10 +00:00
Matt Jankowski
fd90f04f0e
Add coverage for UserRole validations (#33029) 2024-11-25 08:18:07 +00:00
renovate[bot]
7fb0880e1e
Update dependency husky to v9.1.7 (#33058)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 08:17:52 +00:00
github-actions[bot]
4521390163
New Crowdin Translations (automated) (#33043)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-11-25 08:17:41 +00:00
renovate[bot]
1333ed4d4e
Update docker/dockerfile Docker tag to v1.11 (#33060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 07:58:05 +00:00
Matt Jankowski
a20dca7327
Restore stdout logging setting in development environment (#33057)
Some checks failed
Check i18n / check-i18n (push) Waiting to run
Check formatting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Bundler Audit / security (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (ruby) (push) Has been cancelled
2024-11-24 20:00:37 +00:00
168 changed files with 2172 additions and 502 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View 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

View File

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

View File

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

View File

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

View 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

View File

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

View File

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

View 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');

View File

@ -0,0 +1,9 @@
export interface ApiTermsOfServiceJSON {
updated_at: string;
content: string;
}
export interface ApiPrivacyPolicyJSON {
updated_at: string;
content: string;
}

View File

@ -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' },

View File

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

View File

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

View File

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

View 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;

View 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;

View File

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

View File

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

View File

@ -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>
);
};

View File

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

View File

@ -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');
}

View File

@ -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');

View File

@ -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": "Редактиране",

View File

@ -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}}",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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": "نهفتن",

View File

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

View File

@ -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": "Loracle",
"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 {daucune 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",

View File

@ -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": "Loracle",
"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 {daucune 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",

View File

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

View File

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

View File

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

View File

@ -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": "ਚਲਾਓ"
}

View File

@ -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": "Скрыть",

View File

@ -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": "ซ่อน",

View File

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

View File

@ -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} 的订阅语言",

View File

@ -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 {# 個成員}}",

View File

@ -173,7 +173,9 @@ table + p {
}
.email-prose {
p {
p,
ul,
ol {
color: #17063b;
font-size: 14px;
line-height: 20px;

View File

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

View File

@ -82,9 +82,9 @@
.accounts-table {
width: 100%;
table-layout: fixed;
.account {
max-width: calc(56px + 30ch);
padding: 0;
border: 0;
}

View File

@ -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}")

View File

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

View File

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

View File

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

View File

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

View 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

View 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

View File

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

View File

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

View 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

View File

@ -50,6 +50,7 @@ class DeleteAccountService < BaseService
owned_lists
scheduled_statuses
status_pins
tag_follows
)
ASSOCIATIONS_ON_DESTROY = %w(

View 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

View 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

View 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')

View 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)

View 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'

View 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') }

View File

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

View 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)

View 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) %>

View File

@ -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
View 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
View 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
View 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")

View File

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

View File

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

View File

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

View File

@ -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: تفاصيلك

View File

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

View File

@ -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: Вашы дадзеныя

View File

@ -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: Нашият преглед

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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: 上传媒体文件

View File

@ -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: Τα στοιχεία σας

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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: جزئیات شما

View File

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