From ca19ea30d4325e30e016d5fe957e7de99adc72f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:53:25 +0200 Subject: [PATCH 01/71] Update dependency aws-sdk-s3 to v1.132.0 (#26227) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 151a372017..10a6464c84 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -103,8 +103,8 @@ GEM attr_required (1.0.1) awrence (1.2.1) aws-eventstream (1.2.0) - aws-partitions (1.791.0) - aws-sdk-core (3.178.0) + aws-partitions (1.793.0) + aws-sdk-core (3.180.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) @@ -112,8 +112,8 @@ GEM aws-sdk-kms (1.71.0) aws-sdk-core (~> 3, >= 3.177.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.131.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-s3 (1.132.0) + aws-sdk-core (~> 3, >= 3.179.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) aws-sigv4 (1.6.0) From 8da99ffb0dcf5012179e4142799ff473910f5a66 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Thu, 3 Aug 2023 15:41:51 +0200 Subject: [PATCH 02/71] Add alt text for preview card thumbnails (#26184) --- .../features/explore/components/story.jsx | 5 +- .../mastodon/features/explore/links.jsx | 1 + .../features/status/components/card.jsx | 3 +- app/lib/link_details_extractor.rb | 5 + app/models/preview_card.rb | 1 + .../rest/preview_card_serializer.rb | 2 +- ..._add_image_description_to_preview_cards.rb | 17 + db/schema.rb | 1 + spec/lib/link_details_extractor_spec.rb | 323 ++++++++++++------ 9 files changed, 258 insertions(+), 100 deletions(-) create mode 100644 db/migrate/20230725213448_add_image_description_to_preview_cards.rb diff --git a/app/javascript/mastodon/features/explore/components/story.jsx b/app/javascript/mastodon/features/explore/components/story.jsx index 92eb41cff8..80dd5200fc 100644 --- a/app/javascript/mastodon/features/explore/components/story.jsx +++ b/app/javascript/mastodon/features/explore/components/story.jsx @@ -22,6 +22,7 @@ export default class Story extends PureComponent { author: PropTypes.string, sharedTimes: PropTypes.number, thumbnail: PropTypes.string, + thumbnailDescription: PropTypes.string, blurhash: PropTypes.string, expanded: PropTypes.bool, }; @@ -33,7 +34,7 @@ export default class Story extends PureComponent { handleImageLoad = () => this.setState({ thumbnailLoaded: true }); render () { - const { expanded, url, title, lang, publisher, author, publishedAt, sharedTimes, thumbnail, blurhash } = this.props; + const { expanded, url, title, lang, publisher, author, publishedAt, sharedTimes, thumbnail, thumbnailDescription, blurhash } = this.props; const { thumbnailLoaded } = this.state; @@ -49,7 +50,7 @@ export default class Story extends PureComponent { {thumbnail ? ( <>
- + {thumbnailDescription} ) : } diff --git a/app/javascript/mastodon/features/explore/links.jsx b/app/javascript/mastodon/features/explore/links.jsx index 489ab6dd61..663aa6d80f 100644 --- a/app/javascript/mastodon/features/explore/links.jsx +++ b/app/javascript/mastodon/features/explore/links.jsx @@ -67,6 +67,7 @@ class Links extends PureComponent { author={link.get('author_name')} sharedTimes={link.getIn(['history', 0, 'accounts']) * 1 + link.getIn(['history', 1, 'accounts']) * 1} thumbnail={link.get('image')} + thumbnailDescription={link.get('image_description')} blurhash={link.get('blurhash')} /> ))} diff --git a/app/javascript/mastodon/features/status/components/card.jsx b/app/javascript/mastodon/features/status/components/card.jsx index 6ac3c1d0f2..07fb1db9e2 100644 --- a/app/javascript/mastodon/features/status/components/card.jsx +++ b/app/javascript/mastodon/features/status/components/card.jsx @@ -167,7 +167,8 @@ export default class Card extends PureComponent { /> ); - let thumbnail = ; + const thumbnailDescription = card.get('image_description'); + const thumbnail = {thumbnailDescription}; let spoilerButton = ( + if(registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + signUpOrSignInButton = ( + <> + + + + {signupButton} + ); } @@ -353,6 +371,13 @@ class InteractionModal extends React.PureComponent {

{actionDescription}

+
+
+

+ {signUpOrSignInButton} +
+
+

diff --git a/app/javascript/mastodon/features/ui/components/header.jsx b/app/javascript/mastodon/features/ui/components/header.jsx index 3d249e8d4f..68484b59ab 100644 --- a/app/javascript/mastodon/features/ui/components/header.jsx +++ b/app/javascript/mastodon/features/ui/components/header.jsx @@ -12,7 +12,7 @@ import { fetchServer } from 'mastodon/actions/server'; import { Avatar } from 'mastodon/components/avatar'; import { Icon } from 'mastodon/components/icon'; import { WordmarkLogo, SymbolLogo } from 'mastodon/components/logo'; -import { registrationsOpen, me } from 'mastodon/initial_state'; +import { registrationsOpen, me, sso_redirect } from 'mastodon/initial_state'; const Account = connect(state => ({ account: state.getIn(['accounts', me]), @@ -73,28 +73,35 @@ class Header extends PureComponent { ); } else { - let signupButton; - if (registrationsOpen) { - signupButton = ( - - - - ); + if (sso_redirect) { + content = ( + + ) } else { - signupButton = ( - + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + content = ( + <> + {signupButton} + + ); } - - content = ( - <> - {signupButton} - - - ); } return ( diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx index e44b797692..db85c6cbfb 100644 --- a/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx +++ b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx @@ -4,7 +4,7 @@ import { FormattedMessage } from 'react-intl'; import { openModal } from 'mastodon/actions/modal'; -import { registrationsOpen } from 'mastodon/initial_state'; +import { registrationsOpen, sso_redirect } from 'mastodon/initial_state'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; const SignInBanner = () => { @@ -17,7 +17,16 @@ const SignInBanner = () => { let signupButton; - const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); + const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); + + if (sso_redirect) { + return ( +
+

+ +
+ ) + } if (registrationsOpen) { signupButton = ( diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js index 1ada5bfb93..85792a4ea4 100644 --- a/app/javascript/mastodon/initial_state.js +++ b/app/javascript/mastodon/initial_state.js @@ -80,6 +80,7 @@ * @property {boolean} use_blurhash * @property {boolean=} use_pending_items * @property {string} version + * @property {string} sso_redirect */ /** @@ -141,5 +142,6 @@ export const version = getMeta('version'); export const languages = initialState?.languages; // @ts-expect-error export const statusPageUrl = getMeta('status_page_url'); +export const sso_redirect = getMeta('sso_redirect'); export default initialState; diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 1457db329b..2c901f3bd6 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -598,6 +598,7 @@ "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Login", + "sign_in_banner.sso_redirect": "Login or Register", "sign_in_banner.text": "Login to follow profiles or hashtags, favorite, share and reply to posts. You can also interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_domain": "Open moderation interface for {domain}", diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index bda06ef1f1..9660c941d0 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -32,6 +32,7 @@ class InitialStateSerializer < ActiveModel::Serializer single_user_mode: Rails.configuration.x.single_user_mode, trends_as_landing_page: Setting.trends_as_landing_page, status_page_url: Setting.status_page_url, + sso_redirect: sso_redirect, } if object.current_account @@ -108,4 +109,8 @@ class InitialStateSerializer < ActiveModel::Serializer def instance_presenter @instance_presenter ||= InstancePresenter.new end + + def sso_redirect + "/auth/auth/#{Devise.omniauth_providers[0]}" if ENV['OMNIAUTH_ONLY'] == 'true' && Devise.omniauth_providers.length == 1 + end end From 12c43e4ab51e0558628e39f7cf2bb2a84341018d Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 3 Aug 2023 20:28:14 +0200 Subject: [PATCH 12/71] Re-add StatsD support through the `nsa` gem (#26310) --- Gemfile | 1 + Gemfile.lock | 13 +++++++++++++ config/initializers/statsd.rb | 15 +++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 config/initializers/statsd.rb diff --git a/Gemfile b/Gemfile index 478d2cfe99..a1eba4efe0 100644 --- a/Gemfile +++ b/Gemfile @@ -58,6 +58,7 @@ gem 'kaminari', '~> 1.2' gem 'link_header', '~> 0.0' gem 'mime-types', '~> 3.4.1', require: 'mime/types/columnar' gem 'nokogiri', '~> 1.15' +gem 'nsa', github: 'jhawthorn/nsa', ref: 'e020fcc3a54d993ab45b7194d89ab720296c111b' gem 'oj', '~> 3.14' gem 'ox', '~> 2.14' gem 'parslet' diff --git a/Gemfile.lock b/Gemfile.lock index b379ec5000..a44538d16f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,6 +7,17 @@ GIT hkdf (~> 0.2) jwt (~> 2.0) +GIT + remote: https://github.com/jhawthorn/nsa.git + revision: e020fcc3a54d993ab45b7194d89ab720296c111b + ref: e020fcc3a54d993ab45b7194d89ab720296c111b + specs: + nsa (0.2.8) + activesupport (>= 4.2, < 7.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + sidekiq (>= 3.5) + statsd-ruby (~> 1.4, >= 1.4.0) + GIT remote: https://github.com/mastodon/rails-settings-cached.git revision: 86328ef0bd04ce21cc0504ff5e334591e8c2ccab @@ -706,6 +717,7 @@ GEM net-scp (>= 1.1.2) net-ssh (>= 2.8.0) stackprof (0.2.25) + statsd-ruby (1.5.0) stoplight (3.0.1) redlock (~> 1.0) strong_migrations (0.8.0) @@ -857,6 +869,7 @@ DEPENDENCIES net-http (~> 0.3.2) net-ldap (~> 0.18) nokogiri (~> 1.15) + nsa! oj (~> 3.14) omniauth (~> 1.9) omniauth-cas (~> 2.0) diff --git a/config/initializers/statsd.rb b/config/initializers/statsd.rb new file mode 100644 index 0000000000..a655c10716 --- /dev/null +++ b/config/initializers/statsd.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +if ENV['STATSD_ADDR'].present? + host, port = ENV['STATSD_ADDR'].split(':') + + statsd = Statsd.new(host, port) + statsd.namespace = ENV.fetch('STATSD_NAMESPACE') { ['Mastodon', Rails.env].join('.') } + + NSA.inform_statsd(statsd) do |informant| + informant.collect(:action_controller, :web) + informant.collect(:active_record, :db) + informant.collect(:active_support_cache, :cache) + informant.collect(:sidekiq, :sidekiq) if ENV['STATSD_SIDEKIQ'] == 'true' + end +end From 9d719bcd85a6a4bea74f6f34a7f4fae40cad7782 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 3 Aug 2023 20:39:33 +0200 Subject: [PATCH 13/71] Change reblogs to be excluded from "Posts and replies" tab in web UI (#26302) --- app/javascript/mastodon/actions/timelines.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 96dc4a2a1e..08561c71f4 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -145,7 +145,7 @@ export function fillTimelineGaps(timelineId, path, params = {}, done = noOp) { export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('home', '/api/v1/timelines/home', { max_id: maxId }, done); export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, max_id: maxId, only_media: !!onlyMedia }, done); export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); -export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, tagged, max_id: maxId }); +export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, exclude_reblogs: withReplies, tagged, max_id: maxId }); export const expandAccountFeaturedTimeline = (accountId, { tagged } = {}) => expandTimeline(`account:${accountId}:pinned${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true, tagged }); export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); From 04e7efac3f2ebb4336c48335720611120eae19ba Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 3 Aug 2023 20:39:45 +0200 Subject: [PATCH 14/71] Change design of hidden media overlay (again) in web UI (#26330) --- app/javascript/styles/mastodon/components.scss | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 76928ba1fa..f46ac68531 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4249,16 +4249,19 @@ a.status-card { display: flex; align-items: center; justify-content: center; - background: rgba($black, 0.5); + background: transparent; width: 100%; height: 100%; padding: 0; margin: 0; border: 0; - border-radius: 4px; color: $white; &__label { + background-color: rgba($black, 0.45); + backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%); + border-radius: 6px; + padding: 10px 15px; display: flex; align-items: center; justify-content: center; @@ -4272,6 +4275,13 @@ a.status-card { font-weight: 400; font-size: 13px; } + + &:hover, + &:focus { + .spoiler-button__overlay__label { + background-color: rgba($black, 0.9); + } + } } } From 9405e9af58c0d63158a2902236243a897a12ec4f Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 4 Aug 2023 09:00:31 +0200 Subject: [PATCH 15/71] Fix incorrect model annotation for List#exclusive (#26313) --- app/models/list.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/list.rb b/app/models/list.rb index 7dc96f01b3..fcef49e6e9 100644 --- a/app/models/list.rb +++ b/app/models/list.rb @@ -10,7 +10,7 @@ # created_at :datetime not null # updated_at :datetime not null # replies_policy :integer default("list"), not null -# exclusive :boolean default(FALSE) +# exclusive :boolean default(FALSE), not null # class List < ApplicationRecord From 93372fee1e9373833891a778b3f9cf321ca65723 Mon Sep 17 00:00:00 2001 From: Trevor Wolf Date: Fri, 4 Aug 2023 17:41:17 +1000 Subject: [PATCH 16/71] Fix light theme select option for hashtags (#26311) --- app/javascript/styles/mastodon-light/diff.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 601d515765..3777fccbfb 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -424,6 +424,10 @@ html { border-bottom: 0; } +.column-settings__hashtags .column-select__option { + color: $white; +} + .dashboard__quick-access, .focal-point__preview strong, .admin-wrapper .content__heading__tabs a.selected { From b59053ff8c5e15dcbc5b6a46463bc89495c0b0e1 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 4 Aug 2023 15:48:29 +0200 Subject: [PATCH 17/71] Fix confirmation when closing media edition modal with unsaved changes (#26342) --- .../features/ui/components/focal_point_modal.jsx | 2 +- .../mastodon/features/ui/components/modal_root.jsx | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx index 7169b8a279..0c2e3901ea 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx @@ -434,4 +434,4 @@ class FocalPointModal extends ImmutablePureComponent { export default connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true, -})(injectIntl(FocalPointModal, { withRef: true })); +})(injectIntl(FocalPointModal, { forwardRef: true })); diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx index d5edb45b36..fb6acfaeaa 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.jsx +++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx @@ -97,14 +97,7 @@ export default class ModalRoot extends PureComponent { handleClose = (ignoreFocus = false) => { const { onClose } = this.props; - let message = null; - try { - message = this._modal?.getWrappedInstance?.().getCloseConfirmationMessage?.(); - } catch (_) { - // injectIntl defines `getWrappedInstance` but errors out if `withRef` - // isn't set. - // This would be much smoother with react-intl 3+ and `forwardRef`. - } + const message = this._modal?.getCloseConfirmationMessage?.(); onClose(message, ignoreFocus); }; From 65096c1ccd04adef6e0b071f1b50f12fc45ef9f9 Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Fri, 4 Aug 2023 16:11:30 +0200 Subject: [PATCH 18/71] Change streaming `/metrics` to include additional metrics (#26299) --- package.json | 1 + streaming/index.js | 230 ++++++++++++++++++++++++++++++++------------- yarn.lock | 19 ++++ 3 files changed, 187 insertions(+), 63 deletions(-) diff --git a/package.json b/package.json index 72a378299f..76ece5f15e 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,7 @@ "pg-connection-string": "^2.6.0", "postcss": "^8.4.24", "postcss-loader": "^4.3.0", + "prom-client": "^14.2.0", "prop-types": "^15.8.1", "punycode": "^2.3.0", "react": "^18.2.0", diff --git a/streaming/index.js b/streaming/index.js index 8a34c273bd..2112ca4336 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -10,6 +10,7 @@ const { JSDOM } = require('jsdom'); const log = require('npmlog'); const pg = require('pg'); const dbUrlToConfig = require('pg-connection-string').parse; +const metrics = require('prom-client'); const redis = require('redis'); const uuid = require('uuid'); const WebSocket = require('ws'); @@ -183,6 +184,73 @@ const startServer = async () => { const redisSubscribeClient = await redisUrlToClient(redisParams, redisUrl); const redisClient = await redisUrlToClient(redisParams, redisUrl); + // Collect metrics from Node.js + metrics.collectDefaultMetrics(); + + new metrics.Gauge({ + name: 'pg_pool_total_connections', + help: 'The total number of clients existing within the pool', + collect() { + this.set(pgPool.totalCount); + }, + }); + + new metrics.Gauge({ + name: 'pg_pool_idle_connections', + help: 'The number of clients which are not checked out but are currently idle in the pool', + collect() { + this.set(pgPool.idleCount); + }, + }); + + new metrics.Gauge({ + name: 'pg_pool_waiting_queries', + help: 'The number of queued requests waiting on a client when all clients are checked out', + collect() { + this.set(pgPool.waitingCount); + }, + }); + + const connectedClients = new metrics.Gauge({ + name: 'connected_clients', + help: 'The number of clients connected to the streaming server', + labelNames: ['type'], + }); + + connectedClients.set({ type: 'websocket' }, 0); + connectedClients.set({ type: 'eventsource' }, 0); + + const connectedChannels = new metrics.Gauge({ + name: 'connected_channels', + help: 'The number of channels the streaming server is streaming to', + labelNames: [ 'type', 'channel' ] + }); + + const redisSubscriptions = new metrics.Gauge({ + name: 'redis_subscriptions', + help: 'The number of Redis channels the streaming server is subscribed to', + }); + + // When checking metrics in the browser, the favicon is requested this + // prevents the request from falling through to the API Router, which would + // error for this endpoint: + app.get('/favicon.ico', (req, res) => res.status(404).end()); + + app.get('/api/v1/streaming/health', (req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('OK'); + }); + + app.get('/metrics', async (req, res) => { + try { + res.set('Content-Type', metrics.register.contentType); + res.end(await metrics.register.metrics()); + } catch (ex) { + log.error(ex); + res.status(500).end(); + } + }); + /** * @param {string[]} channels * @returns {function(): void} @@ -240,6 +308,7 @@ const startServer = async () => { if (subs[channel].length === 0) { log.verbose(`Subscribe ${channel}`); redisSubscribeClient.subscribe(channel, onRedisMessage); + redisSubscriptions.inc(); } subs[channel].push(callback); @@ -261,6 +330,7 @@ const startServer = async () => { if (subs[channel].length === 0) { log.verbose(`Unsubscribe ${channel}`); redisSubscribeClient.unsubscribe(channel); + redisSubscriptions.dec(); delete subs[channel]; } }; @@ -434,7 +504,7 @@ const startServer = async () => { /** * @param {any} req - * @param {string} channelName + * @param {string|undefined} channelName * @returns {Promise.} */ const checkScopes = (req, channelName) => new Promise((resolve, reject) => { @@ -537,10 +607,14 @@ const startServer = async () => { res.on('close', () => { unsubscribe(`${redisPrefix}${accessTokenChannelId}`, listener); unsubscribe(`${redisPrefix}${systemChannelId}`, listener); + + connectedChannels.labels({ type: 'eventsource', channel: 'system' }).dec(2); }); subscribe(`${redisPrefix}${accessTokenChannelId}`, listener); subscribe(`${redisPrefix}${systemChannelId}`, listener); + + connectedChannels.labels({ type: 'eventsource', channel: 'system' }).inc(2); }; /** @@ -554,7 +628,19 @@ const startServer = async () => { return; } - accountFromRequest(req).then(() => checkScopes(req, channelNameFromPath(req))).then(() => { + const channelName = channelNameFromPath(req); + + // If no channelName can be found for the request, then we should terminate + // the connection, as there's nothing to stream back + if (!channelName) { + const err = new Error('Unknown channel requested'); + err.status = 400; + + next(err); + return; + } + + accountFromRequest(req).then(() => checkScopes(req, channelName)).then(() => { subscribeHttpToSystemChannel(req, res); }).then(() => { next(); @@ -849,6 +935,15 @@ const startServer = async () => { const streamToHttp = (req, res) => { const accountId = req.accountId || req.remoteAddress; + const channelName = channelNameFromPath(req); + + connectedClients.labels({ type: 'eventsource' }).inc(); + + // In theory we'll always have a channel name, but channelNameFromPath can return undefined: + if (typeof channelName === 'string') { + connectedChannels.labels({ type: 'eventsource', channel: channelName }).inc(); + } + res.setHeader('Content-Type', 'text/event-stream'); res.setHeader('Cache-Control', 'no-store'); res.setHeader('Transfer-Encoding', 'chunked'); @@ -859,6 +954,14 @@ const startServer = async () => { req.on('close', () => { log.verbose(req.requestId, `Ending stream for ${accountId}`); + // We decrement these counters here instead of in streamHttpEnd as in that + // method we don't have knowledge of the channel names + connectedClients.labels({ type: 'eventsource' }).dec(); + // In theory we'll always have a channel name, but channelNameFromPath can return undefined: + if (typeof channelName === 'string') { + connectedChannels.labels({ type: 'eventsource', channel: channelName }).dec(); + } + clearInterval(heartbeat); }); @@ -913,40 +1016,18 @@ const startServer = async () => { res.end(JSON.stringify({ error: 'Not found' })); }; - app.use(setRequestId); - app.use(setRemoteAddress); - app.use(allowCrossDomain); + const api = express.Router(); - app.get('/api/v1/streaming/health', (req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('OK'); - }); + app.use(api); - app.get('/metrics', (req, res) => server.getConnections((err, count) => { - res.writeHeader(200, { 'Content-Type': 'application/openmetrics-text; version=1.0.0; charset=utf-8' }); - res.write('# TYPE connected_clients gauge\n'); - res.write('# HELP connected_clients The number of clients connected to the streaming server\n'); - res.write(`connected_clients ${count}.0\n`); - res.write('# TYPE connected_channels gauge\n'); - res.write('# HELP connected_channels The number of Redis channels the streaming server is subscribed to\n'); - res.write(`connected_channels ${Object.keys(subs).length}.0\n`); - res.write('# TYPE pg_pool_total_connections gauge\n'); - res.write('# HELP pg_pool_total_connections The total number of clients existing within the pool\n'); - res.write(`pg_pool_total_connections ${pgPool.totalCount}.0\n`); - res.write('# TYPE pg_pool_idle_connections gauge\n'); - res.write('# HELP pg_pool_idle_connections The number of clients which are not checked out but are currently idle in the pool\n'); - res.write(`pg_pool_idle_connections ${pgPool.idleCount}.0\n`); - res.write('# TYPE pg_pool_waiting_queries gauge\n'); - res.write('# HELP pg_pool_waiting_queries The number of queued requests waiting on a client when all clients are checked out\n'); - res.write(`pg_pool_waiting_queries ${pgPool.waitingCount}.0\n`); - res.write('# EOF\n'); - res.end(); - })); + api.use(setRequestId); + api.use(setRemoteAddress); + api.use(allowCrossDomain); - app.use(authenticationMiddleware); - app.use(errorMiddleware); + api.use(authenticationMiddleware); + api.use(errorMiddleware); - app.get('/api/v1/streaming/*', (req, res) => { + api.get('/api/v1/streaming/*', (req, res) => { channelNameToIds(req, channelNameFromPath(req), req.query).then(({ channelIds, options }) => { const onSend = streamToHttp(req, res); const onEnd = streamHttpEnd(req, subscriptionHeartbeat(channelIds)); @@ -1141,15 +1222,16 @@ const startServer = async () => { * @typedef WebSocketSession * @property {any} socket * @property {any} request - * @property {Object.} subscriptions + * @property {Object.} subscriptions */ /** * @param {WebSocketSession} session * @param {string} channelName * @param {StreamParams} params + * @returns {void} */ - const subscribeWebsocketToChannel = ({ socket, request, subscriptions }, channelName, params) => + const subscribeWebsocketToChannel = ({ socket, request, subscriptions }, channelName, params) => { checkScopes(request, channelName).then(() => channelNameToIds(request, channelName, params)).then(({ channelIds, options, @@ -1162,7 +1244,10 @@ const startServer = async () => { const stopHeartbeat = subscriptionHeartbeat(channelIds); const listener = streamFrom(channelIds, request, onSend, undefined, options.needsFiltering); + connectedChannels.labels({ type: 'websocket', channel: channelName }).inc(); + subscriptions[channelIds.join(';')] = { + channelName, listener, stopHeartbeat, }; @@ -1170,35 +1255,47 @@ const startServer = async () => { log.verbose(request.requestId, 'Subscription error:', err.toString()); socket.send(JSON.stringify({ error: err.toString() })); }); + } + + + const removeSubscription = (subscriptions, channelIds, request) => { + log.verbose(request.requestId, `Ending stream from ${channelIds.join(', ')} for ${request.accountId}`); + + const subscription = subscriptions[channelIds.join(';')]; + + if (!subscription) { + return; + } + + channelIds.forEach(channelId => { + unsubscribe(`${redisPrefix}${channelId}`, subscription.listener); + }); + + connectedChannels.labels({ type: 'websocket', channel: subscription.channelName }).dec(); + subscription.stopHeartbeat(); + + delete subscriptions[channelIds.join(';')]; + } /** * @param {WebSocketSession} session * @param {string} channelName * @param {StreamParams} params + * @returns {void} */ - const unsubscribeWebsocketFromChannel = ({ socket, request, subscriptions }, channelName, params) => + const unsubscribeWebsocketFromChannel = ({ socket, request, subscriptions }, channelName, params) => { channelNameToIds(request, channelName, params).then(({ channelIds }) => { - log.verbose(request.requestId, `Ending stream from ${channelIds.join(', ')} for ${request.accountId}`); - - const subscription = subscriptions[channelIds.join(';')]; - - if (!subscription) { - return; - } - - const { listener, stopHeartbeat } = subscription; - - channelIds.forEach(channelId => { - unsubscribe(`${redisPrefix}${channelId}`, listener); - }); - - stopHeartbeat(); - - delete subscriptions[channelIds.join(';')]; + removeSubscription(subscriptions, channelIds, request); }).catch(err => { - log.verbose(request.requestId, 'Unsubscription error:', err); - socket.send(JSON.stringify({ error: err.toString() })); + log.verbose(request.requestId, 'Unsubscribe error:', err); + + // If we have a socket that is alive and open still, send the error back to the client: + // FIXME: In other parts of the code ws === socket + if (socket.isAlive && socket.readyState === socket.OPEN) { + socket.send(JSON.stringify({ error: "Error unsubscribing from channel" })); + } }); + } /** * @param {WebSocketSession} session @@ -1219,16 +1316,20 @@ const startServer = async () => { subscribe(`${redisPrefix}${systemChannelId}`, listener); subscriptions[accessTokenChannelId] = { + channelName: 'system', listener, stopHeartbeat: () => { }, }; subscriptions[systemChannelId] = { + channelName: 'system', listener, stopHeartbeat: () => { }, }; + + connectedChannels.labels({ type: 'websocket', channel: 'system' }).inc(2); }; /** @@ -1255,6 +1356,8 @@ const startServer = async () => { ws.isAlive = true; }); + connectedClients.labels({ type: 'websocket' }).inc(); + /** * @type {WebSocketSession} */ @@ -1265,17 +1368,18 @@ const startServer = async () => { }; const onEnd = () => { - const keys = Object.keys(session.subscriptions); + const subscriptions = Object.keys(session.subscriptions); - keys.forEach(channelIds => { - const { listener, stopHeartbeat } = session.subscriptions[channelIds]; - - channelIds.split(';').forEach(channelId => { - unsubscribe(`${redisPrefix}${channelId}`, listener); - }); - - stopHeartbeat(); + subscriptions.forEach(channelIds => { + removeSubscription(session.subscriptions, channelIds.split(';'), req) }); + + // ensure garbage collection: + session.socket = null; + session.request = null; + session.subscriptions = {}; + + connectedClients.labels({ type: 'websocket' }).dec(); }; ws.on('close', onEnd); diff --git a/yarn.lock b/yarn.lock index df45395e0c..e72012e065 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3529,6 +3529,11 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bintrees@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" + integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== + blueimp-load-image@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/blueimp-load-image/-/blueimp-load-image-3.0.0.tgz#d71c39440a7d2f1a83e3e86a625e329116a51705" @@ -9659,6 +9664,13 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +prom-client@^14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" + integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== + dependencies: + tdigest "^0.1.1" + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -11562,6 +11574,13 @@ tar@^6.0.2: mkdirp "^1.0.3" yallist "^4.0.0" +tdigest@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" + integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== + dependencies: + bintrees "1.0.2" + temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" From d5bee37c57d75491f1bc882c4aec44d3f8c4e024 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 4 Aug 2023 16:13:47 +0200 Subject: [PATCH 19/71] Fix missing cached preview cards attributes (#26343) --- app/models/status.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/status.rb b/app/models/status.rb index ff85ff2388..5a277269c5 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -162,7 +162,7 @@ class Status < ApplicationRecord REAL_TIME_WINDOW = 6.hours def cache_key - "v2:#{super}" + "v3:#{super}" end def searchable_by(preloaded = nil) From 79936c584f54a9c901f38b8c6507016209221cf0 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 4 Aug 2023 16:25:44 +0200 Subject: [PATCH 20/71] Fix report modal secondary buttons style (#26341) --- app/javascript/styles/mastodon/components.scss | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index f46ac68531..cd9617c94c 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -5825,15 +5825,16 @@ a.status-card { } .button.button-secondary { - border-color: $ui-button-secondary-border-color; - color: $ui-button-secondary-color; + border-color: $inverted-text-color; + color: $inverted-text-color; flex: 0 0 auto; &:hover, &:focus, &:active { - border-color: $ui-button-secondary-focus-background-color; - color: $ui-button-secondary-focus-color; + background: transparent; + border-color: $ui-button-background-color; + color: $ui-button-background-color; } } From e325443b0270edeaf159f010fb1b1078057a6017 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 7 Aug 2023 09:46:11 +0200 Subject: [PATCH 21/71] Change header of hashtag timelines in web UI (#26362) --- .../components/hashtag_header.jsx | 79 +++++++++++++++++++ .../features/hashtag_timeline/index.jsx | 34 ++------ app/javascript/mastodon/locales/en.json | 3 + .../styles/mastodon/components.scss | 30 +++++++ 4 files changed, 118 insertions(+), 28 deletions(-) create mode 100644 app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx b/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx new file mode 100644 index 0000000000..46050309ff --- /dev/null +++ b/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx @@ -0,0 +1,79 @@ +import PropTypes from 'prop-types'; + +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; + +import ImmutablePropTypes from 'react-immutable-proptypes'; + +import Button from 'mastodon/components/button'; +import { ShortNumber } from 'mastodon/components/short_number'; + +const messages = defineMessages({ + followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' }, + unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' }, +}); + +const usesRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +const peopleRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +const usesTodayRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +export const HashtagHeader = injectIntl(({ tag, intl, disabled, onClick }) => { + if (!tag) { + return null; + } + + const [uses, people] = tag.get('history').reduce((arr, day) => [arr[0] + day.get('uses') * 1, arr[1] + day.get('accounts') * 1], [0, 0]); + const dividingCircle = {' · '}; + + return ( +
+
+

#{tag.get('name')}

+
+ +
+ + {dividingCircle} + + {dividingCircle} + +
+
+ ); +}); + +HashtagHeader.propTypes = { + tag: ImmutablePropTypes.map, + disabled: PropTypes.bool, + onClick: PropTypes.func, + intl: PropTypes.object, +}; \ No newline at end of file diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.jsx b/app/javascript/mastodon/features/hashtag_timeline/index.jsx index b6ed29d8de..d00890cb37 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.jsx +++ b/app/javascript/mastodon/features/hashtag_timeline/index.jsx @@ -1,9 +1,8 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { injectIntl, FormattedMessage, defineMessages } from 'react-intl'; +import { FormattedMessage } from 'react-intl'; -import classNames from 'classnames'; import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; @@ -17,17 +16,12 @@ import { fetchHashtag, followHashtag, unfollowHashtag } from 'mastodon/actions/t import { expandHashtagTimeline, clearTimeline } from 'mastodon/actions/timelines'; import Column from 'mastodon/components/column'; import ColumnHeader from 'mastodon/components/column_header'; -import { Icon } from 'mastodon/components/icon'; import StatusListContainer from '../ui/containers/status_list_container'; +import { HashtagHeader } from './components/hashtag_header'; import ColumnSettingsContainer from './containers/column_settings_container'; -const messages = defineMessages({ - followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' }, - unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' }, -}); - const mapStateToProps = (state, props) => ({ hasUnread: state.getIn(['timelines', `hashtag:${props.params.id}${props.params.local ? ':local' : ''}`, 'unread']) > 0, tag: state.getIn(['tags', props.params.id]), @@ -48,7 +42,6 @@ class HashtagTimeline extends PureComponent { hasUnread: PropTypes.bool, tag: ImmutablePropTypes.map, multiColumn: PropTypes.bool, - intl: PropTypes.object, }; handlePin = () => { @@ -188,27 +181,11 @@ class HashtagTimeline extends PureComponent { }; render () { - const { hasUnread, columnId, multiColumn, tag, intl } = this.props; + const { hasUnread, columnId, multiColumn, tag } = this.props; const { id, local } = this.props.params; const pinned = !!columnId; const { signedIn } = this.context.identity; - let followButton; - - if (tag) { - const following = tag.get('following'); - - const classes = classNames('column-header__button', { - active: following, - }); - - followButton = ( - - ); - } - return ( {columnId && } } + alwaysPrepend trackScroll={!pinned} scrollKey={`hashtag_timeline-${columnId}`} timelineId={`hashtag:${id}${local ? ':local' : ''}`} @@ -245,4 +223,4 @@ class HashtagTimeline extends PureComponent { } -export default connect(mapStateToProps)(injectIntl(HashtagTimeline)); +export default connect(mapStateToProps)(HashtagTimeline); diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 2c901f3bd6..5b7b4f6b35 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags for this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} posts}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today", "hashtag.follow": "Follow hashtag", "hashtag.unfollow": "Unfollow hashtag", "home.actions.go_to_explore": "See what's trending", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index cd9617c94c..049c1a3220 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -9231,3 +9231,33 @@ noscript { background: rgba($ui-base-color, 0.85); } } + +.hashtag-header { + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 15px; + font-size: 17px; + line-height: 22px; + color: $darker-text-color; + + strong { + font-weight: 700; + } + + &__header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 15px; + gap: 15px; + + h1 { + color: $primary-text-color; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + font-size: 22px; + line-height: 33px; + font-weight: 700; + } + } +} From d2dbaba407b9f10b10508d7167648acd0687531d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 13:37:54 +0200 Subject: [PATCH 22/71] New Crowdin Translations (automated) (#26209) Co-authored-by: GitHub Actions Co-authored-by: Claire --- app/javascript/mastodon/locales/af.json | 1 - app/javascript/mastodon/locales/an.json | 2 - app/javascript/mastodon/locales/ar.json | 3 - app/javascript/mastodon/locales/ast.json | 3 +- app/javascript/mastodon/locales/be.json | 25 ++++- app/javascript/mastodon/locales/bg.json | 3 - app/javascript/mastodon/locales/br.json | 4 +- app/javascript/mastodon/locales/ca.json | 19 ++-- app/javascript/mastodon/locales/ckb.json | 2 - app/javascript/mastodon/locales/cs.json | 39 ++++++- app/javascript/mastodon/locales/cy.json | 32 +++--- app/javascript/mastodon/locales/da.json | 11 +- app/javascript/mastodon/locales/de.json | 29 ++--- app/javascript/mastodon/locales/el.json | 2 - app/javascript/mastodon/locales/en-GB.json | 67 +++++------ app/javascript/mastodon/locales/eo.json | 2 - app/javascript/mastodon/locales/es-AR.json | 13 ++- app/javascript/mastodon/locales/es-MX.json | 24 +++- app/javascript/mastodon/locales/es.json | 25 ++++- app/javascript/mastodon/locales/et.json | 13 ++- app/javascript/mastodon/locales/eu.json | 9 +- app/javascript/mastodon/locales/fa.json | 4 - app/javascript/mastodon/locales/fi.json | 81 +++++++------- app/javascript/mastodon/locales/fo.json | 11 +- app/javascript/mastodon/locales/fr-QC.json | 11 +- app/javascript/mastodon/locales/fr.json | 11 +- app/javascript/mastodon/locales/fy.json | 3 - app/javascript/mastodon/locales/ga.json | 1 - app/javascript/mastodon/locales/gd.json | 3 - app/javascript/mastodon/locales/gl.json | 11 +- app/javascript/mastodon/locales/he.json | 11 +- app/javascript/mastodon/locales/hi.json | 2 - app/javascript/mastodon/locales/hu.json | 11 +- app/javascript/mastodon/locales/hy.json | 1 - app/javascript/mastodon/locales/id.json | 2 - app/javascript/mastodon/locales/io.json | 2 - app/javascript/mastodon/locales/is.json | 9 +- app/javascript/mastodon/locales/it.json | 9 +- app/javascript/mastodon/locales/ja.json | 13 ++- app/javascript/mastodon/locales/kab.json | 1 - app/javascript/mastodon/locales/kk.json | 1 - app/javascript/mastodon/locales/ko.json | 27 +++-- app/javascript/mastodon/locales/ku.json | 2 - app/javascript/mastodon/locales/lv.json | 2 - app/javascript/mastodon/locales/ml.json | 1 - app/javascript/mastodon/locales/mr.json | 1 - app/javascript/mastodon/locales/ms.json | 2 - app/javascript/mastodon/locales/my.json | 23 ++-- app/javascript/mastodon/locales/nl.json | 11 +- app/javascript/mastodon/locales/nn.json | 72 +++++++----- app/javascript/mastodon/locales/no.json | 34 ++++-- app/javascript/mastodon/locales/oc.json | 1 - app/javascript/mastodon/locales/pa.json | 1 - app/javascript/mastodon/locales/pl.json | 11 +- app/javascript/mastodon/locales/pt-BR.json | 3 - app/javascript/mastodon/locales/pt-PT.json | 11 +- app/javascript/mastodon/locales/ro.json | 2 - app/javascript/mastodon/locales/ru.json | 10 +- app/javascript/mastodon/locales/sa.json | 2 - app/javascript/mastodon/locales/sco.json | 2 - app/javascript/mastodon/locales/si.json | 1 - app/javascript/mastodon/locales/sk.json | 23 +++- app/javascript/mastodon/locales/sl.json | 13 ++- app/javascript/mastodon/locales/sq.json | 3 - app/javascript/mastodon/locales/sr-Latn.json | 15 ++- app/javascript/mastodon/locales/sr.json | 15 ++- app/javascript/mastodon/locales/sv.json | 11 +- app/javascript/mastodon/locales/th.json | 11 +- app/javascript/mastodon/locales/tr.json | 111 ++++++++++--------- app/javascript/mastodon/locales/tt.json | 2 - app/javascript/mastodon/locales/uk.json | 11 +- app/javascript/mastodon/locales/ur.json | 28 ++++- app/javascript/mastodon/locales/uz.json | 2 - app/javascript/mastodon/locales/vi.json | 31 +++--- app/javascript/mastodon/locales/zh-CN.json | 17 +-- app/javascript/mastodon/locales/zh-HK.json | 2 - app/javascript/mastodon/locales/zh-TW.json | 11 +- config/locales/activerecord.cs.yml | 4 + config/locales/activerecord.nn.yml | 4 + config/locales/activerecord.no.yml | 10 +- config/locales/activerecord.ru.yml | 4 + config/locales/be.yml | 5 + config/locales/bn.yml | 16 +++ config/locales/br.yml | 4 + config/locales/ca.yml | 20 ++-- config/locales/cy.yml | 14 ++- config/locales/de.yml | 84 +++++++------- config/locales/devise.ca.yml | 2 +- config/locales/doorkeeper.be.yml | 3 + config/locales/doorkeeper.ca.yml | 10 +- config/locales/doorkeeper.cs.yml | 3 + config/locales/doorkeeper.es-MX.yml | 3 + config/locales/doorkeeper.es.yml | 3 + config/locales/doorkeeper.nn.yml | 3 + config/locales/doorkeeper.no.yml | 3 + config/locales/doorkeeper.sv.yml | 1 + config/locales/es-MX.yml | 4 + config/locales/es.yml | 4 + config/locales/fi.yml | 9 +- config/locales/ko.yml | 20 ++-- config/locales/lt.yml | 10 ++ config/locales/ml.yml | 8 ++ config/locales/nn.yml | 58 +++++++--- config/locales/no.yml | 83 ++++++++++++++ config/locales/pt-PT.yml | 4 + config/locales/ru.yml | 24 ++++ config/locales/simple_form.ca.yml | 6 +- config/locales/simple_form.cs.yml | 7 ++ config/locales/simple_form.de.yml | 6 +- config/locales/simple_form.et.yml | 2 + config/locales/simple_form.fi.yml | 2 + config/locales/simple_form.nn.yml | 7 ++ config/locales/simple_form.no.yml | 26 +++++ config/locales/simple_form.sl.yml | 2 + config/locales/sk.yml | 2 +- config/locales/sl.yml | 3 + config/locales/sr-Latn.yml | 8 +- config/locales/sr.yml | 10 +- config/locales/th.yml | 4 +- config/locales/tt.yml | 2 + config/locales/vi.yml | 6 +- config/locales/zh-TW.yml | 2 +- 122 files changed, 1040 insertions(+), 526 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 388f7cd0cc..aee0f775db 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -181,7 +181,6 @@ "home.column_settings.show_reblogs": "Wys aangestuurde plasings", "interaction_modal.description.reblog": "Met 'n rekening op Mastodon kan jy hierdie plasing aanstuur om dit met jou volgers te deel.", "interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy op hierdie plasing reageer.", - "interaction_modal.preamble": "Omdat Mastodon gedesentraliseer is, hoef jy nie ’n rekening op hierdie bediener te hê nie. Jy kan jy jou bestaande Mastodonrekening gebruik, al word dit op 'n ander Mastodonbediener of versoenbare platform waar ook al gehuisves.", "interaction_modal.title.reblog": "Stuur {name} se plasing aan", "interaction_modal.title.reply": "Reageer op {name} se plasing", "keyboard_shortcuts.back": "Navigeer terug", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index d9e436a35e..369f280099 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -172,7 +172,6 @@ "conversation.open": "Veyer conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiau", - "copypaste.copy": "Copiar", "directory.federated": "Dende lo fediverso conoixiu", "directory.local": "Nomás de {domain}", "directory.new_arrivals": "Recientment plegaus", @@ -276,7 +275,6 @@ "interaction_modal.description.reply": "Con una cuenta en Mastodon, puetz responder a esta publicación.", "interaction_modal.on_another_server": "En un servidor diferent", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.preamble": "Ya que Mastodon ye descentralizau, puetz usar la tuya cuenta existent alochada en unatro servidor Mastodon u plataforma compatible si no tiens una cuenta en este servidor.", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Empentar la publicación de {name}", "interaction_modal.title.reply": "Responder a la publicación de {name}", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 1ed6dc1bb3..efc932f4dc 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -190,7 +190,6 @@ "conversation.open": "اعرض المحادثة", "conversation.with": "مع {names}", "copypaste.copied": "تم نسخه", - "copypaste.copy": "انسخ", "copypaste.copy_to_clipboard": "نسخ إلى الحافظة", "directory.federated": "مِن الفديفرس المعروف", "directory.local": "مِن {domain} فقط", @@ -299,7 +298,6 @@ "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "اعرض الترقيات", "home.column_settings.show_replies": "اعرض الردود", - "home.explore_prompt.body": "سوف تحتوي تغذية منزلك على مزيج من المشاركات من الوسوم التي اخترت متابعتها، والأشخاص الذين اخترت متابعتهم، والمشاركات التي قاموا بدعمها. الأمور تبدو هادئة جدا الآن، لذلك ماذا عن:", "home.explore_prompt.title": "هذا مقرك الرئيسي داخل ماستدون.", "home.hide_announcements": "إخفاء الإعلانات", "home.show_announcements": "إظهار الإعلانات", @@ -308,7 +306,6 @@ "interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذا المنشور.", "interaction_modal.on_another_server": "على خادم مختلف", "interaction_modal.on_this_server": "على هذا الخادم", - "interaction_modal.preamble": "بما إن ماستدون لامركزي، يمكنك استخدام حسابك الحالي المستضاف بواسطة خادم ماستدون آخر أو منصة متوافقة إذا لم يكن لديك حساب هنا.", "interaction_modal.title.follow": "اتبع {name}", "interaction_modal.title.reblog": "مشاركة منشور {name}", "interaction_modal.title.reply": "الرد على منشور {name}", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 3b458b9ac8..597d294a6f 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -133,7 +133,6 @@ "conversation.open": "Ver la conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copióse", - "copypaste.copy": "Copiar", "directory.federated": "Del fediversu conocíu", "directory.local": "De «{domain}» namás", "directory.new_arrivals": "Cuentes nueves", @@ -223,7 +222,6 @@ "interaction_modal.description.reply": "Con una cuenta de Mastodon, pues responder a esti artículu.", "interaction_modal.on_another_server": "N'otru sirvidor", "interaction_modal.on_this_server": "Nesti sirvidor", - "interaction_modal.preamble": "Darréu que Mastodon ye una rede social descentralizada, pues usar una cuenta agospiada n'otru sirvidor de Mastodon o n'otra plataforma compatible si nun tienes cuenta nesti sirvidor.", "interaction_modal.title.reply": "Rempuesta al artículu de: {name}", "intervals.full.days": "{number, plural, one {# día} other {# díes}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", @@ -420,6 +418,7 @@ "server_banner.learn_more": "Saber más", "server_banner.server_stats": "Estadístiques del sirvidor:", "sign_in_banner.create_account": "Crear una cuenta", + "sign_in_banner.sso_redirect": "Aniciar la sesión o rexistrase", "status.admin_account": "Abrir la interfaz de moderación pa @{name}", "status.admin_domain": "Abrir la interfaz de moderación pa «{domain}»", "status.admin_status": "Abrir esti artículu na interfaz de moderación", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 564d210a24..178bd7a89e 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -113,6 +113,7 @@ "column.direct": "Асабістыя згадванні", "column.directory": "Праглядзець профілі", "column.domain_blocks": "Заблакіраваныя дамены", + "column.favourites": "Упадабанае", "column.firehose": "Стужкі", "column.follow_requests": "Запыты на падпіску", "column.home": "Галоўная", @@ -180,6 +181,7 @@ "confirmations.mute.explanation": "Гэта схавае допісы ад гэтага карыстальніка і пра яго, але ўсё яшчэ дазволіць яму чытаць вашыя допісы і быць падпісаным на вас.", "confirmations.mute.message": "Вы ўпэўненыя, што хочаце ігнараваць {name}?", "confirmations.redraft.confirm": "Выдаліць і перапісаць", + "confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.", "confirmations.reply.confirm": "Адказаць", "confirmations.reply.message": "Калі вы адкажаце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?", "confirmations.unfollow.confirm": "Адпісацца", @@ -189,7 +191,6 @@ "conversation.open": "Прагледзець размову", "conversation.with": "З {names}", "copypaste.copied": "Скапіравана", - "copypaste.copy": "Скапіраваць", "copypaste.copy_to_clipboard": "Капіраваць у буфер абмену", "directory.federated": "З вядомага федэсвету", "directory.local": "Толькі з {domain}", @@ -200,6 +201,7 @@ "dismissable_banner.community_timeline": "Гэта самыя апошнія допісы ад людзей, уліковыя запісы якіх размяшчаюцца на {domain}.", "dismissable_banner.dismiss": "Адхіліць", "dismissable_banner.explore_links": "Гэтыя навіны абмяркоўваюцца прама зараз на гэтым і іншых серверах дэцэнтралізаванай сеткі.", + "dismissable_banner.explore_statuses": "Допісы з гэтага і іншых сервераў дэцэнтралізаванай сеткі, якія набіраюць папулярнасць прама зараз.", "dismissable_banner.explore_tags": "Гэтыя хэштэгі зараз набіраюць папулярнасць сярод людзей на гэтым і іншых серверах дэцэнтралізаванай сеткі", "dismissable_banner.public_timeline": "Гэта апошнія публічныя допісы людзей з усей сеткі, за якімі сочаць карыстальнікі {domain}.", "embed.instructions": "Убудуйце гэты пост на свой сайт, скапіраваўшы прыведзены ніжэй код", @@ -228,6 +230,8 @@ "empty_column.direct": "Пакуль у вас няма асабістых згадак. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.", "empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.", "empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней", + "empty_column.favourited_statuses": "Вы яшчэ не ўпадабалі ніводны допіс. Калі гэта адбудзецца, вы ўбачыце яго тут.", + "empty_column.favourites": "Ніхто яшчэ не ўпадабаў гэты допіс. Калі гэта адбудзецца, вы ўбачыце гэтых людзей тут.", "empty_column.follow_requests": "У вас яшчэ няма запытаў на падпіскуі. Калі вы атрымаеце запыт, ён з'явяцца тут.", "empty_column.followed_tags": "Вы пакуль не падпісаны ні на адзін хэштэг. Калі падпішацеся, яны з'явяцца тут.", "empty_column.hashtag": "Па гэтаму хэштэгу пакуль што нічога няма.", @@ -302,12 +306,18 @@ "home.explore_prompt.title": "Гэта ваша апорная кропка ў Mastodon.", "home.hide_announcements": "Схаваць аб'явы", "home.show_announcements": "Паказаць аб'явы", + "interaction_modal.description.favourite": "Маючы ўліковы запіс Mastodon, вы можаце ўпадабаць гэты допіс, каб паведаміць аўтару, што ён вам падабаецца, і захаваць яго на будучыню.", "interaction_modal.description.follow": "Маючы акаўнт у Mastodon, вы можаце падпісацца на {name}, каб бачыць яго/яе допісы ў сваёй хатняй стужцы.", "interaction_modal.description.reblog": "З уліковым запісам Mastodon, вы можаце пашырыць гэты пост, каб падзяліцца ім са сваімі падпісчыкамі.", "interaction_modal.description.reply": "Маючы акаўнт у Mastodon, вы можаце адказаць на гэты пост.", + "interaction_modal.login.action": "Вярніце мяне дадому", + "interaction_modal.login.prompt": "Дамен вашага хатняга сервера, напрыклад, mastodon.social", + "interaction_modal.no_account_yet": "Яшчэ не ў Mastodon?", "interaction_modal.on_another_server": "На іншым серверы", "interaction_modal.on_this_server": "На гэтым серверы", - "interaction_modal.preamble": "Паколькі Mastodon дэцэнтралізаваны, вы можаце выкарыстоўваць існуючы акаўнт, які быў створаны на іншым серверы Mastodon або на сумяшчальнай платформе, калі ў вас пакуль няма акаўнта тут.", + "interaction_modal.sign_in": "Вы не выканалі ўваход на гэтым серверы. Дзе размешчаны ваш уліковы запіс?", + "interaction_modal.sign_in_hint": "Падказка: гэта сайт, на якім вы зарэгістраваліся. Калі вы не памятаеце, знайдзіце ліст у паштовай скрыні. Вы таксама можаце ўвесці сваё поўнае імя карыстальніка! (напрыклад, @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Упадабаць допіс {name}", "interaction_modal.title.follow": "Падпісацца на {name}", "interaction_modal.title.reblog": "Пашырыць допіс ад {name}", "interaction_modal.title.reply": "Адказаць на допіс {name}", @@ -323,6 +333,8 @@ "keyboard_shortcuts.direct": "адкрыць стоўп асабістых згадак", "keyboard_shortcuts.down": "Перамясціцца ўніз па спісе", "keyboard_shortcuts.enter": "Адкрыць допіс", + "keyboard_shortcuts.favourite": "Упадабаць допіс", + "keyboard_shortcuts.favourites": "Адкрыць спіс упадабанага", "keyboard_shortcuts.federated": "Адкрыць інтэграваную стужку", "keyboard_shortcuts.heading": "Спалучэнні клавіш", "keyboard_shortcuts.home": "Адкрыць хатнюю храналагічную стужку", @@ -353,6 +365,7 @@ "lightbox.previous": "Назад", "limited_account_hint.action": "Усе роўна паказваць профіль", "limited_account_hint.title": "Гэты профіль быў схаваны мадэратарамі", + "link_preview.author": "Ад {name}", "lists.account.add": "Дадаць да спісу", "lists.account.remove": "Выдаліць са спісу", "lists.delete": "Выдаліць спіс", @@ -375,6 +388,7 @@ "mute_modal.hide_notifications": "Схаваць апавяшчэнні ад гэтага карыстальніка?", "mute_modal.indefinite": "Бестэрмінова", "navigation_bar.about": "Пра нас", + "navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе", "navigation_bar.blocks": "Заблакаваныя карыстальнікі", "navigation_bar.bookmarks": "Закладкі", "navigation_bar.community_timeline": "Лакальная стужка", @@ -384,6 +398,7 @@ "navigation_bar.domain_blocks": "Заблакіраваныя дамены", "navigation_bar.edit_profile": "Рэдагаваць профіль", "navigation_bar.explore": "Агляд", + "navigation_bar.favourites": "Упадабанае", "navigation_bar.filters": "Ігнараваныя словы", "navigation_bar.follow_requests": "Запыты на падпіску", "navigation_bar.followed_tags": "Падпіскі", @@ -400,6 +415,7 @@ "not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.", "notification.admin.report": "{name} паскардзіўся на {target}", "notification.admin.sign_up": "{name} зарэгістраваўся", + "notification.favourite": "Ваш допіс упадабаны {name}", "notification.follow": "{name} падпісаўся на вас", "notification.follow_request": "{name} адправіў запыт на падпіску", "notification.mention": "{name} згадаў вас", @@ -413,6 +429,7 @@ "notifications.column_settings.admin.report": "Новыя скаргі:", "notifications.column_settings.admin.sign_up": "Новыя ўваходы:", "notifications.column_settings.alert": "Апавяшчэнні на працоўным стале", + "notifications.column_settings.favourite": "Упадабанае:", "notifications.column_settings.filter_bar.advanced": "Паказваць усе катэгорыі", "notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі", "notifications.column_settings.filter_bar.show_bar": "Паказваць панэль фільтрацыі", @@ -430,6 +447,7 @@ "notifications.column_settings.update": "Праўкі:", "notifications.filter.all": "Усе", "notifications.filter.boosts": "Пашырэнні", + "notifications.filter.favourites": "Упадабанае", "notifications.filter.follows": "Падпісаны на", "notifications.filter.mentions": "Згадванні", "notifications.filter.polls": "Вынікі апытання", @@ -580,6 +598,8 @@ "server_banner.server_stats": "Статыстыка сервера:", "sign_in_banner.create_account": "Стварыць уліковы запіс", "sign_in_banner.sign_in": "Увайсці", + "sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя", + "sign_in_banner.text": "Увайдзіце, каб падпісацца на людзей і тэгі, каб адказваць на допісы, дзяліцца імі і падабаць іх, альбо кантактаваць з вашага ўліковага запісу на іншым серверы.", "status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}", "status.admin_domain": "Адкрыць інтэрфейс мадэратара для {domain}", "status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі", @@ -596,6 +616,7 @@ "status.edited": "Адрэдагавана {date}", "status.edited_x_times": "Рэдагавана {count, plural, one {{count} раз} few {{count} разы} many {{count} разоў} other {{count} разу}}", "status.embed": "Убудаваць", + "status.favourite": "Упадабанае", "status.filter": "Фільтраваць гэты допіс", "status.filtered": "Адфільтравана", "status.hide": "Схаваць допіс", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index b7f40cb6c2..d5f94f8436 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -189,7 +189,6 @@ "conversation.open": "Преглед на разговора", "conversation.with": "С {names}", "copypaste.copied": "Копирано", - "copypaste.copy": "Копиране", "copypaste.copy_to_clipboard": "Копиране в буферната памет", "directory.federated": "От позната федивселена", "directory.local": "Само от {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_replies": "Показване на отговорите", - "home.explore_prompt.body": "Вашият начален инфоканал ще е смес на публикации от хаштаговете, които сте избрали да следвате, избраните хора за следвате, а и публикациите, които са подсилили. Изглежда доста тихо в момента, така че какво ще кажете за:", "home.explore_prompt.title": "Това е началната ви база с Mastodon.", "home.hide_announcements": "Скриване на оповестяванията", "home.show_announcements": "Показване на оповестяванията", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "С акаунт в Mastodon може да добавите отговор към тази публикация.", "interaction_modal.on_another_server": "На различен сървър", "interaction_modal.on_this_server": "На този сървър", - "interaction_modal.preamble": "Откак Mastodon е децентрализиран, може да употребявате съществуващ акаунт, разположен на друг сървър на Mastodon или съвместима платформа, ако нямате акаунт на този сървър.", "interaction_modal.title.follow": "Последване на {name}", "interaction_modal.title.reblog": "Подсилване на публикацията на {name}", "interaction_modal.title.reply": "Отговаряне на публикацията на {name}", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 34f9ad21b5..c6f845b402 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -17,6 +17,7 @@ "account.badges.group": "Strollad", "account.block": "Stankañ @{name}", "account.block_domain": "Stankañ an domani {domain}", + "account.block_short": "Stankañ", "account.blocked": "Stanket", "account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin", "account.cancel_follow_request": "Nullañ ar reked heuliañ", @@ -46,6 +47,8 @@ "account.mention": "Menegiñ @{name}", "account.moved_to": "Gant {name} eo bet merket e oa bremañ h·e gont nevez :", "account.mute": "Kuzhat @{name}", + "account.mute_notifications_short": "Kuzhat ar c'hemennoù", + "account.mute_short": "Kuzhat", "account.muted": "Kuzhet", "account.open_original_page": "Digeriñ ar bajenn orin", "account.posts": "Toudoù", @@ -171,7 +174,6 @@ "conversation.open": "Gwelout ar gaozeadenn", "conversation.with": "Gant {names}", "copypaste.copied": "Eilet", - "copypaste.copy": "Eilañ", "directory.federated": "Eus ar fedibed anavezet", "directory.local": "Eus {domain} hepken", "directory.new_arrivals": "Degouezhet a-nevez", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 29b2e3c2da..adf29f6fd0 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -80,7 +80,7 @@ "admin.impact_report.instance_followers": "Seguidors que els nostres usuaris perdrien", "admin.impact_report.instance_follows": "Seguidors que els seus usuaris perdrien", "admin.impact_report.title": "Resum del impacte", - "alert.rate_limited.message": "Si us plau prova-ho després de {retry_time, time, medium}.", + "alert.rate_limited.message": "Proveu-ho una altra vegada al cap de {retry_time, time, medium}.", "alert.rate_limited.title": "Límit de freqüència", "alert.unexpected.message": "S'ha produït un error inesperat.", "alert.unexpected.title": "Vaja!", @@ -114,7 +114,7 @@ "column.directory": "Navega pels perfils", "column.domain_blocks": "Dominis blocats", "column.favourites": "Favorits", - "column.firehose": "Fluxos en directe", + "column.firehose": "Tuts en directe", "column.follow_requests": "Peticions de seguir-te", "column.home": "Inici", "column.lists": "Llistes", @@ -138,11 +138,11 @@ "compose.published.body": "Tut publicat.", "compose.published.open": "Obre", "compose_form.direct_message_warning_learn_more": "Més informació", - "compose_form.encryption_warning": "Els tuts a Mastodon no estant xifrats punt a punt. No comparteixis informació sensible mitjançant Mastodon.", + "compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació sensible mitjançant Mastodon.", "compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques per etiqueta.", "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.", "compose_form.lock_disclaimer.lock": "blocat", - "compose_form.placeholder": "En què penses?", + "compose_form.placeholder": "Què tens al cap?", "compose_form.poll.add_option": "Afegeix una opció", "compose_form.poll.duration": "Durada de l'enquesta", "compose_form.poll.option_placeholder": "Opció {number}", @@ -191,7 +191,6 @@ "conversation.open": "Mostra la conversa", "conversation.with": "Amb {names}", "copypaste.copied": "Copiat", - "copypaste.copy": "Copia", "copypaste.copy_to_clipboard": "Copia al porta-retalls", "directory.federated": "Del fedivers conegut", "directory.local": "Només de {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Bàsic", "home.column_settings.show_reblogs": "Mostra els impulsos", "home.column_settings.show_replies": "Mostra les respostes", - "home.explore_prompt.body": "La teva línia de temps Inici tindrà una barreja dels tuts de les etiquetes que has triat seguir, de les persones que has triat seguir i dels tuts que impulsen. Ara mateix es veu força tranquila, què et sembla si:", + "home.explore_prompt.body": "La teva línia de temps Inici tindrà una barreja dels tuts de les etiquetes que has triat seguir, de les persones que has triat seguir i dels tuts que s'impulsen. Ara mateix es veu força tranquil·la, què et sembla si:", "home.explore_prompt.title": "Aquest és la teva base a Mastodon.", "home.hide_announcements": "Amaga els anuncis", "home.show_announcements": "Mostra els anuncis", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus tuts en la teva línia de temps d'Inici.", "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest tut per a compartir-lo amb els teus seguidors.", "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest tut.", + "interaction_modal.login.action": "Torna a l'inici", + "interaction_modal.login.prompt": "Domini del teu servidor domèstic, p.ex. mastodon.social", + "interaction_modal.no_account_yet": "No a Mastodon?", "interaction_modal.on_another_server": "En un servidor diferent", "interaction_modal.on_this_server": "En aquest servidor", - "interaction_modal.other_server_instructions": "Copia i enganxa aquest URL en el camp de cerca de la teva aplicació Mastodon preferida o a la interfície web del teu servidor Mastodon.", - "interaction_modal.preamble": "Com que Mastodon és descentralitzat, pots fer servir el teu compte existent en un altre servidor Mastodon o plataforma compatible si no tens compte en aquest.", + "interaction_modal.sign_in": "No has iniciat sessió en aquest servidor. On tens el teu compte?", + "interaction_modal.sign_in_hint": "Ajuda: Aquesta és la web on vas registrar-te. Si no ho recordes, mira el correu electrònic de benvinguda en la teva safata d'entrada. També pots introduïr el teu nom d'usuari complet! (per ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Afavoreix el tut de {name}", "interaction_modal.title.follow": "Segueix {name}", "interaction_modal.title.reblog": "Impulsa el tut de {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Estadístiques del servidor:", "sign_in_banner.create_account": "Crea un compte", "sign_in_banner.sign_in": "Inici de sessió", + "sign_in_banner.sso_redirect": "Inici de sessió o Registre", "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre tuts. També pots interactuar des del teu compte a un servidor diferent.", "status.admin_account": "Obre la interfície de moderació per a @{name}", "status.admin_domain": "Obre la interfície de moderació per a @{domain}", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 01b41abcf5..b14756b096 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -176,7 +176,6 @@ "conversation.open": "نیشاندان گفتوگۆ", "conversation.with": "لەگەڵ{names}", "copypaste.copied": "کۆپی کراوە", - "copypaste.copy": "ڕوونووس", "directory.federated": "لە ڕاژەکانی ناسراو", "directory.local": "تەنها لە {domain}", "directory.new_arrivals": "تازە گەیشتنەکان", @@ -284,7 +283,6 @@ "interaction_modal.description.reply": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت وەڵامی ئەم بڵاوکراوەیە بدەیتەوە.", "interaction_modal.on_another_server": "لەسەر ڕاژەیەکی جیا", "interaction_modal.on_this_server": "لەسەر ئەم ڕاژەیە", - "interaction_modal.preamble": "بەو پێیەی ماستۆدۆن لامەرکەزییە، دەتوانیت ئەکاونتی ئێستات بەکاربهێنیت کە لەلایەن سێرڤەرێکی تری ماستۆدۆن یان پلاتفۆرمی گونجاوەوە هۆست کراوە ئەگەر ئەکاونتێکت لەسەر ئەم ئەکاونتە نەبێت.", "interaction_modal.title.follow": "دوای {name} بکەوە", "interaction_modal.title.reblog": "پۆستی {name} زیاد بکە", "interaction_modal.title.reply": "وەڵامی پۆستەکەی {name} بدەرەوە", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 0eb7320bbd..70d8e47bdb 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -191,7 +191,6 @@ "conversation.open": "Zobrazit konverzaci", "conversation.with": "S {names}", "copypaste.copied": "Zkopírováno", - "copypaste.copy": "Zkopírovat", "copypaste.copy_to_clipboard": "Zkopírovat do schránky", "directory.federated": "Ze známého fedivesmíru", "directory.local": "Pouze z {domain}", @@ -202,7 +201,9 @@ "dismissable_banner.community_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí, jejichž účty hostuje {domain}.", "dismissable_banner.dismiss": "Zavřít", "dismissable_banner.explore_links": "O těchto zprávách hovoří lidé na tomto a dalších serverech decentralizované sítě právě teď.", + "dismissable_banner.explore_statuses": "Toto jsou příspěvky ze sociálních sítí, které dnes získávají na popularitě. Novější příspěvky s větším počtem boostů a oblíbení jsou hodnoceny výše.", "dismissable_banner.explore_tags": "Tyto hashtagy právě teď získávají na popularitě mezi lidmi na tomto a dalších serverech decentralizované sítě.", + "dismissable_banner.public_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí na sociální síti, které sledují lidé na {domain}.", "embed.instructions": "Pro přidání příspěvku na vaši webovou stránku zkopírujte níže uvedený kód.", "embed.preview": "Takhle to bude vypadat:", "emoji_button.activity": "Aktivita", @@ -229,6 +230,8 @@ "empty_column.direct": "Zatím nemáte žádné soukromé zmínky. Až nějakou pošlete nebo dostanete, zobrazí se zde.", "empty_column.domain_blocks": "Ještě nemáte žádné zablokované domény.", "empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!", + "empty_column.favourited_statuses": "Zatím nemáte žádné oblíbené příspěvky. Až si nějaký oblíbíte, zobrazí se zde.", + "empty_column.favourites": "Tento příspěvek si zatím nikdo neoblíbil. Až to někdo udělá, zobrazí se zde.", "empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.", "empty_column.followed_tags": "Zatím jste nesledovali žádné hashtagy. Až to uděláte, objeví se zde.", "empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.", @@ -294,17 +297,27 @@ "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky", "hashtag.follow": "Sledovat hashtag", "hashtag.unfollow": "Přestat sledovat hashtag", + "home.actions.go_to_explore": "Podívejte se, co frčí", + "home.actions.go_to_suggestions": "Najít lidi ke sledování", "home.column_settings.basic": "Základní", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", + "home.explore_prompt.body": "Váš domovský kanál bude obsahovat směs příspěvků z hashtagů, které jste se rozhodli sledovat, lidí, které jste se rozhodli sledovat, a příspěvků, které boostují. Pokud vám to připadá příliš klidné, možná budete chtít:", + "home.explore_prompt.title": "Toto je vaše domovská základna uvnitř Mastodonu.", "home.hide_announcements": "Skrýt oznámení", "home.show_announcements": "Zobrazit oznámení", + "interaction_modal.description.favourite": "Pokud máte účet na Mastodonu, můžete tento příspěvek označit jako oblíbený a dát tak autorovi najevo, že si ho vážíte, a uložit si ho na později.", "interaction_modal.description.follow": "S účtem na Mastodonu můžete sledovat uživatele {name} a přijímat příspěvky ve vašem domovském kanálu.", "interaction_modal.description.reblog": "S účtem na Mastodonu můžete boostnout tento příspěvek a sdílet jej s vlastními sledujícími.", "interaction_modal.description.reply": "S účtem na Mastodonu můžete odpovědět na tento příspěvek.", + "interaction_modal.login.action": "Domů", + "interaction_modal.login.prompt": "Doména vašeho domovského serveru, např. mastodon.social", + "interaction_modal.no_account_yet": "Nejste na Mastodonu?", "interaction_modal.on_another_server": "Na jiném serveru", "interaction_modal.on_this_server": "Na tomto serveru", - "interaction_modal.preamble": "Protože Mastodon je decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.", + "interaction_modal.sign_in": "Nejste přihlášeni k tomuto serveru. Kde je váš účet hostován?", + "interaction_modal.sign_in_hint": "Tip: To je stránka, na které jste se zaregistrovali. Pokud si ji nepamatujete, vyhledejte ve své e-mailové schránce uvítací e-mail. Můžete také zadat své celé uživatelské jméno! (např. @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Oblíbit si příspěvek od uživatele {name}", "interaction_modal.title.follow": "Sledovat {name}", "interaction_modal.title.reblog": "Boostnout příspěvek uživatele {name}", "interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}", @@ -320,6 +333,8 @@ "keyboard_shortcuts.direct": "otevřít sloupec soukromých zmínek", "keyboard_shortcuts.down": "Posunout v seznamu dolů", "keyboard_shortcuts.enter": "Otevřít příspěvek", + "keyboard_shortcuts.favourite": "Oblíbit si příspěvek", + "keyboard_shortcuts.favourites": "Otevřít seznam oblíbených", "keyboard_shortcuts.federated": "Otevřít federovanou časovou osu", "keyboard_shortcuts.heading": "Klávesové zkratky", "keyboard_shortcuts.home": "Otevřít domovskou časovou osu", @@ -350,11 +365,13 @@ "lightbox.previous": "Předchozí", "limited_account_hint.action": "Přesto profil zobrazit", "limited_account_hint.title": "Tento profil byl skryt moderátory {domain}.", + "link_preview.author": "Podle {name}", "lists.account.add": "Přidat do seznamu", "lists.account.remove": "Odebrat ze seznamu", "lists.delete": "Smazat seznam", "lists.edit": "Upravit seznam", "lists.edit.submit": "Změnit název", + "lists.exclusive": "Skrýt tyto příspěvky z domovské stránky", "lists.new.create": "Přidat seznam", "lists.new.title_placeholder": "Název nového seznamu", "lists.replies_policy.followed": "Sledovaným uživatelům", @@ -371,6 +388,7 @@ "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?", "mute_modal.indefinite": "Neomezeně", "navigation_bar.about": "O aplikaci", + "navigation_bar.advanced_interface": "Otevřít pokročilé webové rozhraní", "navigation_bar.blocks": "Blokovaní uživatelé", "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Místní časová osa", @@ -380,6 +398,7 @@ "navigation_bar.domain_blocks": "Blokované domény", "navigation_bar.edit_profile": "Upravit profil", "navigation_bar.explore": "Prozkoumat", + "navigation_bar.favourites": "Oblíbené", "navigation_bar.filters": "Skrytá slova", "navigation_bar.follow_requests": "Žádosti o sledování", "navigation_bar.followed_tags": "Sledované hashtagy", @@ -396,6 +415,7 @@ "not_signed_in_indicator.not_signed_in": "Pro přístup k tomuto zdroji se musíte přihlásit.", "notification.admin.report": "Uživatel {name} nahlásil {target}", "notification.admin.sign_up": "Uživatel {name} se zaregistroval", + "notification.favourite": "Uživatel {name} si oblíbil váš příspěvek", "notification.follow": "Uživatel {name} vás začal sledovat", "notification.follow_request": "Uživatel {name} požádal o povolení vás sledovat", "notification.mention": "Uživatel {name} vás zmínil", @@ -409,6 +429,7 @@ "notifications.column_settings.admin.report": "Nová hlášení:", "notifications.column_settings.admin.sign_up": "Nové registrace:", "notifications.column_settings.alert": "Oznámení na počítači", + "notifications.column_settings.favourite": "Oblíbené:", "notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie", "notifications.column_settings.filter_bar.category": "Panel rychlého filtrování", "notifications.column_settings.filter_bar.show_bar": "Zobrazit panel filtrů", @@ -426,6 +447,7 @@ "notifications.column_settings.update": "Úpravy:", "notifications.filter.all": "Vše", "notifications.filter.boosts": "Boosty", + "notifications.filter.favourites": "Oblíbené", "notifications.filter.follows": "Sledování", "notifications.filter.mentions": "Zmínky", "notifications.filter.polls": "Výsledky anket", @@ -448,10 +470,12 @@ "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Populární na Mastodonu", "onboarding.share.lead": "Dejte lidem vědět, jak vás mohou najít na Mastodonu!", + "onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}", "onboarding.share.next_steps": "Možné další kroky:", "onboarding.share.title": "Sdílejte svůj profil", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.skip": "Want to skip right ahead?", + "onboarding.start.title": "Dokázali jste to!", "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.publish_status.body": "Řekněte světu Ahoj.", @@ -460,11 +484,16 @@ "onboarding.steps.setup_profile.title": "Přizpůsobit svůj profil", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.share_profile.title": "Sdílejte svůj profil", + "onboarding.tips.2fa": "Víte, že? Svůj účet můžete zabezpečit nastavením dvoufaktorového ověřování v nastavení účtu. Funguje s jakoukoli TOTP aplikací podle vašeho výběru, telefonní číslo není nutné!", + "onboarding.tips.accounts_from_other_servers": "Víte, že? Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!", + "onboarding.tips.migration": "Víte, že? Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!", + "onboarding.tips.verification": "Víte, že? Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!", "password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální délku hesla", "password_confirmation.mismatching": "Zadaná hesla se neshodují", "picture_in_picture.restore": "Vrátit zpět", "poll.closed": "Uzavřeno", "poll.refresh": "Obnovit", + "poll.reveal": "Zobrazit výsledky", "poll.total_people": "{count, plural, one {# člověk} few {# lidé} many {# lidí} other {# lidí}}", "poll.total_votes": "{count, plural, one {# hlas} few {# hlasy} many {# hlasů} other {# hlasů}}", "poll.vote": "Hlasovat", @@ -517,6 +546,8 @@ "report.placeholder": "Další komentáře", "report.reasons.dislike": "Nelíbí se mi to", "report.reasons.dislike_description": "Není to něco, co chcete vidět", + "report.reasons.legal": "Je to nezákonné", + "report.reasons.legal_description": "Domníváte se, že to porušuje zákony vaší země nebo země serveru", "report.reasons.other": "Je to něco jiného", "report.reasons.other_description": "Problém neodpovídá ostatním kategoriím", "report.reasons.spam": "Je to spam", @@ -536,6 +567,7 @@ "report.unfollow": "Přestat sledovat @{name}", "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.", "report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}", + "report_notification.categories.legal": "Zákonné", "report_notification.categories.other": "Ostatní", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Porušení pravidla", @@ -566,6 +598,8 @@ "server_banner.server_stats": "Statistiky serveru:", "sign_in_banner.create_account": "Vytvořit účet", "sign_in_banner.sign_in": "Přihlásit se", + "sign_in_banner.sso_redirect": "Přihlášení nebo Registrace", + "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbení, sdílení a odpovídání na příspěvky. Svůj účet můžete také používat k interagování i na jiném serveru.", "status.admin_account": "Otevřít moderátorské rozhraní pro @{name}", "status.admin_domain": "Otevřít moderátorské rozhraní pro {domain}", "status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní", @@ -582,6 +616,7 @@ "status.edited": "Upraveno {date}", "status.edited_x_times": "Upraveno {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}", "status.embed": "Vložit na web", + "status.favourite": "Oblíbit", "status.filter": "Filtrovat tento příspěvek", "status.filtered": "Filtrováno", "status.hide": "Skrýt příspěvek", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index aa98e070e3..a2952a9310 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -191,7 +191,6 @@ "conversation.open": "Gweld sgwrs", "conversation.with": "Gyda {names}", "copypaste.copied": "Wedi ei gopïo", - "copypaste.copy": "Copïo", "copypaste.copy_to_clipboard": "Copïo i'r clipfwrdd", "directory.federated": "O'r ffedysawd cyfan", "directory.local": "O {domain} yn unig", @@ -299,22 +298,25 @@ "hashtag.follow": "Dilyn hashnod", "hashtag.unfollow": "Dad-ddilyn hashnod", "home.actions.go_to_explore": "Gweld beth sy'n tueddu", - "home.actions.go_to_suggestions": "Ffeindio i bobl i'w dilyn", + "home.actions.go_to_suggestions": "Ffeindio pobl i'w dilyn", "home.column_settings.basic": "Syml", "home.column_settings.show_reblogs": "Dangos hybiau", "home.column_settings.show_replies": "Dangos atebion", - "home.explore_prompt.body": "Bydd eich llif cartref yn cynnwys cymysgedd o bostiadau o'r hashnodau rydych chi wedi dewis eu dilyn, y bobl rydych chi wedi dewis eu dilyn, a'r postiadau maen nhw'n rhoi hwb iddyn nhw. Mae'n edrych yn eithaf tawel ar hyn o bryd, felly beth am:", - "home.explore_prompt.title": "Dyma'ch cartref o feewnn Mastodon.", + "home.explore_prompt.body": "Bydd eich llif cartref yn cynnwys cymysgedd o bostiadau o'r hashnodau rydych chi wedi dewis eu dilyn, y bobl rydych chi wedi dewis eu dilyn, a'r postiadau maen nhw'n rhoi hwb iddyn nhw. Os yw hynny'n teimlo'n rhy dawel, efallai y byddwch am:", + "home.explore_prompt.title": "Dyma'ch cartref o fewn Mastodon.", "home.hide_announcements": "Cuddio cyhoeddiadau", "home.show_announcements": "Dangos cyhoeddiadau", "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn er mwyn roi gwybod i'r awdur eich bod chi'n ei werthfawrogi ac yn ei gadw ar gyfer nes ymlaen.", "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.", "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.", "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r postiad hwn.", + "interaction_modal.login.action": "Ewch â fi adref", + "interaction_modal.login.prompt": "Parth eich gweinydd cartref, e.e. mastodon.social", + "interaction_modal.no_account_yet": "Dim ar Mastodon?", "interaction_modal.on_another_server": "Ar weinydd gwahanol", "interaction_modal.on_this_server": "Ar y gweinydd hwn", - "interaction_modal.other_server_instructions": "Copïwch a gludwch yr URL hwn i faes chwilio eich hoff ap Mastodon neu ryngwyneb gwe eich gweinydd Mastodon.", - "interaction_modal.preamble": "Gan fod Mastodon wedi'i ddatganoli, gallwch ddefnyddio'ch cyfrif presennol a gynhelir gan weinydd Mastodon arall neu blatfform cydnaws os nad oes gennych gyfrif ar yr un hwn.", + "interaction_modal.sign_in": "Nid ydych wedi mewngofnodi i'r gweinydd hwn. Ble mae eich cyfrif yn cael ei gynnal?", + "interaction_modal.sign_in_hint": "Awgrym: Dyna'r wefan lle gwnaethoch gofrestru. Os nad ydych yn cofio, edrychwch am yr e-bost croeso yn eich blwch derbyn. Gallwch hefyd nodi eich enw defnyddiwr llawn! (e.e. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Hoffi postiad {name}", "interaction_modal.title.follow": "Dilyn {name}", "interaction_modal.title.reblog": "Hybu postiad {name}", @@ -363,6 +365,7 @@ "lightbox.previous": "Blaenorol", "limited_account_hint.action": "Dangos y proffil beth bynnag", "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.", + "link_preview.author": "Gan {name}", "lists.account.add": "Ychwanegu at restr", "lists.account.remove": "Tynnu o'r rhestr", "lists.delete": "Dileu rhestr", @@ -387,7 +390,7 @@ "navigation_bar.about": "Ynghylch", "navigation_bar.advanced_interface": "Agor mewn rhyngwyneb gwe uwch", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio", - "navigation_bar.bookmarks": "Llyfrnodau", + "navigation_bar.bookmarks": "Nodau Tudalen", "navigation_bar.community_timeline": "Ffrwd leol", "navigation_bar.compose": "Cyfansoddi post newydd", "navigation_bar.direct": "Crybwylliadau preifat", @@ -456,8 +459,8 @@ "notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen", "notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.", "notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith", - "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.", - "notifications_permission_banner.title": "Peidiwch colli dim", + "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddan nhw wedi'u galluogi.", + "notifications_permission_banner.title": "Peidiwch â cholli dim", "onboarding.action.back": "Ewch â fi yn ôl", "onboarding.actions.back": "Ewch â fi yn ôl", "onboarding.actions.go_to_explore": "Gweld beth yw'r tuedd", @@ -501,7 +504,7 @@ "privacy.change": "Addasu preifatrwdd y post", "privacy.direct.long": "Dim ond yn weladwy i ddefnyddwyr a grybwyllwyd", "privacy.direct.short": "Dim ond pobl sy wedi'u crybwyll", - "privacy.private.long": "Dim ond pobl sy'n ddilynwyrl", + "privacy.private.long": "Dim ond pobl sy'n ddilynwyr", "privacy.private.short": "Dilynwyr yn unig", "privacy.public.long": "Gweladwy i bawb", "privacy.public.short": "Cyhoeddus", @@ -510,7 +513,7 @@ "privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}", "privacy_policy.title": "Polisi Preifatrwydd", "refresh": "Adnewyddu", - "regeneration_indicator.label": "Llwytho…", + "regeneration_indicator.label": "Yn llwytho…", "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# diwrnod} other {# diwrnod}} yn ôl", @@ -590,11 +593,12 @@ "server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)", "server_banner.active_users": "defnyddwyr gweithredol", "server_banner.administered_by": "Gweinyddir gan:", - "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.", + "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig sy'n cael ei bweru gan {mastodon}.", "server_banner.learn_more": "Dysgu mwy", "server_banner.server_stats": "Ystadegau'r gweinydd:", "sign_in_banner.create_account": "Creu cyfrif", "sign_in_banner.sign_in": "Mewngofnodi", + "sign_in_banner.sso_redirect": "Mewngofnodi neu Gofrestru", "sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ymateb i bostiadau. Gallwch hefyd ryngweithio o'ch cyfrif ar weinyddion gwahanol.", "status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}", "status.admin_domain": "Agor rhyngwyneb cymedroli {domain}", @@ -635,7 +639,7 @@ "status.reblogged_by": "Hybodd {name}", "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.", "status.redraft": "Dileu ac ailddrafftio", - "status.remove_bookmark": "Dileu llyfrnod", + "status.remove_bookmark": "Tynnu nod tudalen", "status.replied_to": "Wedi ateb {name}", "status.reply": "Ateb", "status.replyAll": "Ateb i edefyn", @@ -678,7 +682,7 @@ "units.short.thousand": "{count}mil", "upload_area.title": "Llusgwch a gollwng i lwytho", "upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)", - "upload_error.limit": "Wedi mynd heibio'r uchafswm terfyn uwchlwytho.", + "upload_error.limit": "Wedi pasio'r uchafswm llwytho.", "upload_error.poll": "Nid oes modd llwytho ffeiliau â phleidleisiau.", "upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw", "upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index db1b0be78f..3dbde03306 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -191,7 +191,6 @@ "conversation.open": "Vis samtale", "conversation.with": "Med {names}", "copypaste.copied": "Kopieret", - "copypaste.copy": "Kopiér", "copypaste.copy_to_clipboard": "Kopiér til udklipsholder", "directory.federated": "Fra kendt fedivers", "directory.local": "Kun fra {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Grundlæggende", "home.column_settings.show_reblogs": "Vis boosts", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Dit hjemmefeed vil have en blanding af indlæg fra de hashtags, du har valgt at følge, de personer, du har valgt at følge, og de indlæg, de booster. Her virker temmelig stille lige nu, så hvad med at prøve:", + "home.explore_prompt.body": "Hjemmefeedet vil indeholde en blanding af indlæg fra de hashtags og personer, du følger samt de indlæg, de booster. Føles synes for stille, kan du prøve:", "home.explore_prompt.title": "Dette er din hjemmebase i Mastodon.", "home.hide_announcements": "Skjul bekendtgørelser", "home.show_announcements": "Vis bekendtgørelser", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Med en konto på Mastodon kan du følge {name} for at modtage vedkommendes indlæg i dit hjemmefeed.", "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg fremhæves så det deles med egne følgere.", "interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.", + "interaction_modal.login.action": "Gå til hjemmeserver", + "interaction_modal.login.prompt": "Hjemmeserverdomænet, f.eks. mastodon.social", + "interaction_modal.no_account_yet": "Ikke på Mastodon?", "interaction_modal.on_another_server": "På en anden server", "interaction_modal.on_this_server": "På denne server", - "interaction_modal.other_server_instructions": "Kopiér og indsæt denne URL i søgefeltet på den foretrukne Mastodon-app eller Mastodon-serverens webgrænseflade.", - "interaction_modal.preamble": "Da Mastodon er decentraliseret, kan man bruge sin eksisterende konto hostet af en anden Mastodon-server eller kompatibel platform, såfremt man ikke har en konto på denne.", + "interaction_modal.sign_in": "Du er ikke logget ind på denne server. Hvor hostes din konto?", + "interaction_modal.sign_in_hint": "Tip: Det er webstedet, hvor du tilmeldte dig. Har du glemt det, så kig efter velkomstmailen i indbakken. Du kan også angive dit fulde brugernavn! (f.eks. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Gør {name}s indlæg til favorit", "interaction_modal.title.follow": "Følg {name}", "interaction_modal.title.reblog": "Boost {name}s indlæg", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Serverstatstik:", "sign_in_banner.create_account": "Opret konto", "sign_in_banner.sign_in": "Log ind", + "sign_in_banner.sso_redirect": "Log ind eller Tilmeld", "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, markere som favorit, dele og besvare indlæg eller interagere fra din konto på en anden server.", "status.admin_account": "Åbn modereringsbrugerflade for @{name}", "status.admin_domain": "Åbn modereringsbrugerflade for {domain}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 8130c3f640..9b40964f22 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -150,7 +150,7 @@ "compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben", "compose_form.poll.switch_to_single": "Nur Einzelauswahl erlauben", "compose_form.publish": "Veröffentlichen", - "compose_form.publish_form": "Veröffentlichen", + "compose_form.publish_form": "Neuer Beitrag", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Änderungen speichern", "compose_form.sensitive.hide": "{count, plural, one {Mit einer Inhaltswarnung versehen} other {Mit einer Inhaltswarnung versehen}}", @@ -191,7 +191,6 @@ "conversation.open": "Unterhaltung anzeigen", "conversation.with": "Mit {names}", "copypaste.copied": "Kopiert", - "copypaste.copy": "Kopieren", "copypaste.copy_to_clipboard": "In die Zwischenablage kopieren", "directory.federated": "Aus bekanntem Fediverse", "directory.local": "Nur von der Domain {domain}", @@ -202,7 +201,7 @@ "dismissable_banner.community_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen, deren Konten von {domain} verwaltet werden.", "dismissable_banner.dismiss": "Ablehnen", "dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im sozialen Netzwerk geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen veröffentlicht wurden, werden höher eingestuft.", - "dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netz und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.", + "dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netzwerk und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.", "dismissable_banner.explore_tags": "Das sind Hashtags, die derzeit an Reichweite gewinnen. Hashtags, die von vielen verschiedenen Profilen verwendet werden, werden höher eingestuft.", "dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im sozialen Netzwerk, denen Leute auf {domain} folgen.", "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Einfach", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", - "home.explore_prompt.body": "Deine Startseite wird eine Mischung aus Beiträgen mit gefolgten Hashtags und den Profilen, denen du folgst sowie den Beiträgen, die sie teilen, enthalten. Aktuell ist es noch etwas still. Wie wäre es mit:", + "home.explore_prompt.body": "Deine Startseite wird eine Mischung aus Beiträgen mit Hashtags und den Profilen, denen du folgst sowie den Beiträgen, die sie teilen, enthalten. Sollte es sich zu still anfühlen:", "home.explore_prompt.title": "Das ist dein Zuhause bei Mastodon.", "home.hide_announcements": "Ankündigungen ausblenden", "home.show_announcements": "Ankündigungen anzeigen", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Mit einem Mastodon-Konto kannst du {name} folgen, um die Beiträge auf deiner Startseite zu sehen.", "interaction_modal.description.reblog": "Mit einem Mastodon-Konto kannst du die Reichweite dieses Beitrags erhöhen, indem du ihn mit deinen Followern teilst.", "interaction_modal.description.reply": "Mit einem Mastodon-Konto kannst du auf diesen Beitrag antworten.", + "interaction_modal.login.action": "Zurück zur Startseite", + "interaction_modal.login.prompt": "Adresse deines Servers, z. B. mastodon.social", + "interaction_modal.no_account_yet": "Nicht auf Mastodon?", "interaction_modal.on_another_server": "Auf einem anderen Server", "interaction_modal.on_this_server": "Auf diesem Server", - "interaction_modal.other_server_instructions": "Kopiere diese URL und füge sie in das Suchfeld deiner bevorzugten Mastodon-App oder in das Webinterface deines Mastodon-Servers ein.", - "interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.", + "interaction_modal.sign_in": "Du bist auf diesem Server nicht angemeldet. Auf welchem Server wird dein Konto verwaltet?", + "interaction_modal.sign_in_hint": "Hinweis: Hierbei handelt es sich um die Website, auf der du dich registriert hast. Wenn du dich nicht mehr daran erinnerst, dann kannst du sie in der Willkommens-E-Mail nachsehen. Du kannst auch deinen vollständigen Profilnamen eingeben! (z. B. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Beitrag von {name} favorisieren", "interaction_modal.title.follow": "Folge {name}", "interaction_modal.title.reblog": "Beitrag von {name} teilen", @@ -471,7 +473,7 @@ "onboarding.share.message": "Ich bin {username} auf #Mastodon! Folge mir auf {url}", "onboarding.share.next_steps": "Mögliche nächste Schritte:", "onboarding.share.title": "Teile dein Profil", - "onboarding.start.lead": "Du bist nun ein Teil von Mastodon – eine einzigartige, dezentralisierte Social Media-Plattform, bei der du und kein Algorithmus deine eigene Erfahrung gestaltest. Fangen wir an, diese neue soziale Dimension zu erkunden:", + "onboarding.start.lead": "Du bist nun ein Teil von Mastodon – eine einzigartige, dezentralisierte Social-Media-Plattform, bei der du und kein Algorithmus deine eigene Erfahrung gestaltest. Fangen wir an, diese neue soziale Dimension zu erkunden:", "onboarding.start.skip": "Du benötigst keine Hilfe für den Einstieg?", "onboarding.start.title": "Du hast es geschafft!", "onboarding.steps.follow_people.body": "Interessanten Profilen zu folgen ist das, was Mastodon ausmacht.", @@ -506,7 +508,7 @@ "privacy.private.short": "Nur Follower", "privacy.public.long": "Für alle sichtbar", "privacy.public.short": "Öffentlich", - "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion", + "privacy.unlisted.long": "Für alle sichtbar, aber nicht über die Suche zu finden", "privacy.unlisted.short": "Nicht gelistet", "privacy_policy.last_updated": "Stand: {date}", "privacy_policy.title": "Datenschutzerklärung", @@ -526,7 +528,7 @@ "relative_time.today": "heute", "reply_indicator.cancel": "Abbrechen", "report.block": "Blockieren", - "report.block_explanation": "Dir wird es nicht länger möglich sein, die Beiträge dieses Konto zu sehen. Das blockierte Profil wird nicht mehr in der Lage sein, deine Beiträge zu sehen oder dir zu folgen. Die Person hinter dem Konto wird mitbekommen, dass du ihr Konto blockiert hast.", + "report.block_explanation": "Du wirst keine Beiträge mehr von diesem Konto sehen. Das blockierte Konto wird deine Beiträge nicht mehr sehen oder dir folgen können. Die Person könnte mitbekommen, dass du sie blockiert hast.", "report.categories.other": "Andere", "report.categories.spam": "Spam", "report.categories.violation": "Der Inhalt verletzt eine oder mehrere Serverregeln", @@ -539,7 +541,7 @@ "report.forward": "Meldung zusätzlich an {target} weiterleiten", "report.forward_hint": "Dieses Konto gehört zu einem anderen Server. Soll eine anonymisierte Kopie der Meldung auch dorthin gesendet werden?", "report.mute": "Stummschalten", - "report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.", + "report.mute_explanation": "Du wirst keine Beiträge mehr von diesem Konto sehen. Das stummgeschaltete Konto wird dir weiterhin folgen und deine Beiträge sehen können. Die Person wird nicht mitbekommen, dass du sie stummgeschaltet hast.", "report.next": "Weiter", "report.placeholder": "Ergänzende Hinweise", "report.reasons.dislike": "Das gefällt mir nicht", @@ -555,8 +557,8 @@ "report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus", "report.rules.title": "Welche Regeln werden verletzt?", "report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus", - "report.statuses.title": "Gibt es Beiträge, die diesen Bericht untermauern?", - "report.submit": "Absenden", + "report.statuses.title": "Gibt es Beiträge, die diese Meldung bekräftigen?", + "report.submit": "Senden", "report.target": "{target} melden", "report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:", "report.thanks.take_action_actionable": "Während wir den Vorfall überprüfen, kannst du gegen @{name} weitere Maßnahmen ergreifen:", @@ -591,11 +593,12 @@ "server_banner.about_active_users": "Personen, die diesen Server in den vergangenen 30 Tagen verwendet haben (monatlich aktive Nutzer*innen)", "server_banner.active_users": "aktive Profile", "server_banner.administered_by": "Verwaltet von:", - "server_banner.introduction": "{domain} ist ein Teil des dezentralisierten sozialen Netzwerks, angetrieben von {mastodon}.", + "server_banner.introduction": "{domain} ist Teil eines dezentralisierten sozialen Netzwerks, angetrieben von {mastodon}.", "server_banner.learn_more": "Mehr erfahren", "server_banner.server_stats": "Serverstatistiken:", "sign_in_banner.create_account": "Konto erstellen", "sign_in_banner.sign_in": "Anmelden", + "sign_in_banner.sso_redirect": "Anmelden oder registrieren", "sign_in_banner.text": "Melde dich an, um Profilen oder Hashtags zu folgen, Beiträge zu favorisieren, zu teilen und auf sie zu antworten. Du kannst auch von deinem Konto aus auf einem anderen Server interagieren.", "status.admin_account": "@{name} moderieren", "status.admin_domain": "{domain} moderieren", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index e34df674fd..6a9d45cf87 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -177,7 +177,6 @@ "conversation.open": "Προβολή συνομιλίας", "conversation.with": "Με {names}", "copypaste.copied": "Αντιγράφηκε", - "copypaste.copy": "Αντιγραφή", "copypaste.copy_to_clipboard": "Αντιγραφή στο πρόχειρο", "directory.federated": "Από το γνωστό fediverse", "directory.local": "Μόνο από {domain}", @@ -287,7 +286,6 @@ "interaction_modal.description.reply": "Με ένα λογαριασμό Mastodon, μπορείς να απαντήσεις σε αυτή την ανάρτηση.", "interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή", "interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή", - "interaction_modal.preamble": "Δεδομένου ότι το Mastodon είναι αποκεντρωμένο, μπορείς να χρησιμοποιείς τον υπάρχοντα λογαριασμό σου που φιλοξενείται σε άλλον διακομιστή του Mastodon ή σε συμβατή πλατφόρμα, αν δεν έχετε λογαριασμό σε αυτόν.", "interaction_modal.title.follow": "Ακολούθησε {name}", "interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}", "interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index a0892fd1e3..1021a22812 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -13,14 +13,14 @@ "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", - "account.badges.bot": "Bot", + "account.badges.bot": "Automated", "account.badges.group": "Group", "account.block": "Block @{name}", - "account.block_domain": "Unblock domain {domain}", + "account.block_domain": "Block domain {domain}", "account.block_short": "Block", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Withdraw follow request", + "account.cancel_follow_request": "Cancel follow", "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", @@ -150,7 +150,7 @@ "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish_form": "New post", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -191,7 +191,6 @@ "conversation.open": "View conversation", "conversation.with": "With {names}", "copypaste.copied": "Copied", - "copypaste.copy": "Copy", "copypaste.copy_to_clipboard": "Copy to clipboard", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", - "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. It's looking pretty quiet right now, so how about:", + "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:", "home.explore_prompt.title": "This is your home base within Mastodon.", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.login.action": "Take me home", + "interaction_modal.login.prompt": "Domain of your home server, e.g. mastodon.social", + "interaction_modal.no_account_yet": "Not on Mastodon?", "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", - "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", - "interaction_modal.preamble": "Since Mastodon is decentralised, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.sign_in": "You are not logged in to this server. Where is your account hosted?", + "interaction_modal.sign_in_hint": "Tip: That's the website where you signed up. If you don't remember, look for the welcome e-mail in your inbox. You can also enter your full username! (e.g. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Favourite {name}'s post", "interaction_modal.title.follow": "Follow {name}", "interaction_modal.title.reblog": "Boost {name}'s post", @@ -335,14 +337,14 @@ "keyboard_shortcuts.favourites": "Open favourites list", "keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.heading": "Keyboard Shortcuts", - "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.home": "Open home timeline", "keyboard_shortcuts.hotkey": "Hotkey", "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.notifications": "to open notifications column", + "keyboard_shortcuts.notifications": "Open notifications column", "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "to open pinned posts list", "keyboard_shortcuts.profile": "to open author's profile", @@ -352,10 +354,10 @@ "keyboard_shortcuts.spoilers": "to show/hide CW field", "keyboard_shortcuts.start": "to open \"get started\" column", "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toggle_sensitivity": "Show/hide media", "keyboard_shortcuts.toot": "to start a brand new post", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "to move up in the list", + "keyboard_shortcuts.up": "Move up in the list", "lightbox.close": "Close", "lightbox.compress": "Compress image view box", "lightbox.expand": "Expand image view box", @@ -393,7 +395,7 @@ "navigation_bar.compose": "Compose new post", "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", - "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.domain_blocks": "Blocked domains", "navigation_bar.edit_profile": "Edit profile", "navigation_bar.explore": "Explore", "navigation_bar.favourites": "Favourites", @@ -462,26 +464,26 @@ "onboarding.action.back": "Take me back", "onboarding.actions.back": "Take me back", "onboarding.actions.go_to_explore": "See what's trending", - "onboarding.actions.go_to_home": "Go to your home feed", + "onboarding.actions.go_to_home": "Take me to my home feed", "onboarding.compose.template": "Hello #Mastodon!", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", - "onboarding.follows.title": "Popular on Mastodon", + "onboarding.follows.title": "Personalize your home feed", "onboarding.share.lead": "Let people know how they can find you on Mastodon!", "onboarding.share.message": "I'm {username} on #Mastodon! Come follow me at {url}", "onboarding.share.next_steps": "Possible next steps:", "onboarding.share.title": "Share your profile", - "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", - "onboarding.start.skip": "Want to skip right ahead?", + "onboarding.start.lead": "You're now part of Mastodon, a unique, decentralized social media platform where you—not an algorithm—curate your own experience. Let's get you started on this new social frontier:", + "onboarding.start.skip": "Don't need help getting started?", "onboarding.start.title": "You've made it!", "onboarding.steps.follow_people.body": "Following interesting people is what Mastodon is all about.", - "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", - "onboarding.steps.publish_status.body": "Say hello to the World.", + "onboarding.steps.follow_people.title": "Personalize your home feed", + "onboarding.steps.publish_status.body": "Say hello to the world with text, photos, videos, or polls {emoji}", "onboarding.steps.publish_status.title": "Make your first post", "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", "onboarding.steps.setup_profile.title": "Customise your profile", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", - "onboarding.steps.share_profile.title": "Share your profile", + "onboarding.steps.share_profile.title": "Share your Mastodon profile", "onboarding.tips.2fa": "Did you know? You can secure your account by setting up two-factor authentication in your account settings. It works with any TOTP app of your choice, no phone number necessary!", "onboarding.tips.accounts_from_other_servers": "Did you know? Since Mastodon is decentralised, some profiles you come across will be hosted on servers other than yours. And yet you can interact with them seamlessly! Their server is in the second half of their username!", "onboarding.tips.migration": "Did you know? If you feel like {domain} is not a great server choice for you in the future, you can move to another Mastodon server without losing your followers. You can even host your own server!", @@ -498,10 +500,10 @@ "poll.voted": "You voted for this answer", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Add a poll", - "privacy.change": "Adjust status privacy", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Change post privacy", "privacy.direct.long": "Visible for mentioned users only", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Mentioned people only", "privacy.private.long": "Visible for followers only", "privacy.private.short": "Followers-only", "privacy.public.long": "Visible for all", @@ -541,7 +543,7 @@ "report.mute": "Mute", "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", "report.next": "Next", - "report.placeholder": "Type or paste additional comments", + "report.placeholder": "Additional comments", "report.reasons.dislike": "I don't like it", "report.reasons.dislike_description": "It is not something you want to see", "report.reasons.legal": "It's illegal", @@ -556,8 +558,8 @@ "report.rules.title": "Which rules are being violated?", "report.statuses.subtitle": "Select all that apply", "report.statuses.title": "Are there any posts that back up this report?", - "report.submit": "Submit report", - "report.target": "Report {target}", + "report.submit": "Submit", + "report.target": "Reporting {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.title": "Don't want to see this?", @@ -596,10 +598,11 @@ "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.sso_redirect": "Login or Register", "sign_in_banner.text": "Login to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_domain": "Open moderation interface for {domain}", - "status.admin_status": "Open this status in the moderation interface", + "status.admin_status": "Open this post in the moderation interface", "status.block": "Block @{name}", "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Unboost", @@ -627,7 +630,7 @@ "status.more": "More", "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", - "status.open": "Expand this status", + "status.open": "Expand this post", "status.pin": "Pin on profile", "status.pinned": "Pinned post", "status.read_more": "Read more", @@ -681,13 +684,13 @@ "upload_button.label": "Add images, a video or an audio file", "upload_error.limit": "File upload limit exceeded.", "upload_error.poll": "File upload not allowed with polls.", - "upload_form.audio_description": "Describe for people with hearing loss", - "upload_form.description": "Describe for the visually impaired", + "upload_form.audio_description": "Describe for people who are deaf or hard of hearing", + "upload_form.description": "Describe for people who are blind or have low vision", "upload_form.description_missing": "No description added", "upload_form.edit": "Edit", "upload_form.thumbnail": "Change thumbnail", "upload_form.undo": "Delete", - "upload_form.video_description": "Describe for people with hearing loss or visual impairment", + "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", "upload_modal.analyzing_picture": "Analysing picture…", "upload_modal.apply": "Apply", "upload_modal.applying": "Applying…", @@ -700,7 +703,7 @@ "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", "upload_progress.processing": "Processing…", - "username.taken": "Username is taken - try another. Carlito77", + "username.taken": "That username is taken. Try another", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 68fb0a8012..2735f05d0b 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -189,7 +189,6 @@ "conversation.open": "Vidi konversacion", "conversation.with": "Kun {names}", "copypaste.copied": "Kopiita", - "copypaste.copy": "Kopii", "copypaste.copy_to_clipboard": "Kopii al dosierujo", "directory.federated": "El konata fediverso", "directory.local": "Nur de {domain}", @@ -303,7 +302,6 @@ "interaction_modal.description.reply": "Kun konto ĉe Mastodon, vi povos respondi al ĉi tiu mesaĝo.", "interaction_modal.on_another_server": "En alia servilo", "interaction_modal.on_this_server": "En ĉi tiu servilo", - "interaction_modal.preamble": "Ĉar Mastodon estas malcentrigita, vi povas uzi jam ekzistantan konton gastigatan de alia Mastodona servilo aŭ kongrua substrato, se vi ne havas konton ĉe tiu ĉi.", "interaction_modal.title.follow": "Sekvi {name}", "interaction_modal.title.reblog": "Akceli la afiŝon de {name}", "interaction_modal.title.reply": "Respondi al la afiŝo de {name}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 511dcc453e..8f2a9c0cdb 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar al portapapeles", "directory.federated": "Desde fediverso conocido", "directory.local": "Sólo de {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar adhesiones", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu línea temporal principal tendrá una mezcla de mensajes de etiquetas que hayás decidido seguir, cuentas que hayás seguido y mensajes a los que éstas adhieran. Ahora está muy tranquilo por acá, así que, qué te parece:", + "home.explore_prompt.body": "Tu línea temporal principal tendrá una mezcla de mensajes de etiquetas que hayás decidido seguir, cuentas que hayás seguido y mensajes a los que éstas adhieran. Si está muy tranquilo por acá, quizás quieras:", "home.explore_prompt.title": "Este es tu inicio en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Con una cuenta en Mastodon, podés seguir a {name} para recibir sus mensajes en tu línea temporal principal.", "interaction_modal.description.reblog": "Con una cuenta en Mastodon, podés adherir a este mensaje para compartirlo con tus propios seguidores.", "interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.", + "interaction_modal.login.action": "Llevame al comienzo", + "interaction_modal.login.prompt": "Dominio de su servidor de inicio, p. ej., mastodon.social", + "interaction_modal.no_account_yet": "¿No tenés cuenta en Mastodon?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.other_server_instructions": "Copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita de Mastodon, o en la interface web de tu servidor de Mastodon.", - "interaction_modal.preamble": "Ya que Mastodon es descentralizado, podés usar tu cuenta existente alojada por otro servidor Mastodon (u otra plataforma compatible, si no tenés una cuenta en ésta).", + "interaction_modal.sign_in": "No iniciaste sesión en este servidor. ¿Dónde se encuentra alojada tu cuenta?", + "interaction_modal.sign_in_hint": "Ayuda: es el sitio web en donde te registraste. Si no te acordás, buscá el correo electrónico de bienvenida en tu cuenta de email. También podés usar tu nombre de usuario entero, p. ej., @tunombredeusuario@mastodon.social.", "interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Adherir al mensaje de {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Iniciá sesión o registrate", "sign_in_banner.text": "Iniciá sesión para seguir cuentas o etiquetas, marcar mensajes como favoritos, compartirlos y responderlos. También podés interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_domain": "Abrir interface de moderación para {domain}", @@ -671,7 +674,7 @@ "timeline_hint.resources.followers": "Tus seguidores", "timeline_hint.resources.follows": "Las cuentas que seguís", "timeline_hint.resources.statuses": "Mensajes más antiguos", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en el/los pasado/s {days, plural, one {día} other {{days} días}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en {days, plural, one {el pasado día} other {los pasados {days} días}}", "trends.trending_now": "Tendencia ahora", "ui.beforeunload": "Tu borrador se perderá si abandonás Mastodon.", "units.short.billion": "{count}MM", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 6e4ad100eb..f59862245f 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar al portapapeles", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", @@ -202,6 +201,7 @@ "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de las personas cuyas cuentas están alojadas en {domain}.", "dismissable_banner.dismiss": "Descartar", "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.explore_statuses": "Estas son las publicaciones que están ganando popularidad en la web social hoy. Las publicaciones recientes con más impulsos y favoritos obtienen más exposición.", "dismissable_banner.explore_tags": "Se trata de hashtags que están ganando adeptos en las redes sociales hoy en día. Los hashtags que son utilizados por más personas diferentes se clasifican mejor.", "dismissable_banner.public_timeline": "Estos son los toots públicos más recientes de personas en la web social a las que sigue la gente en {domain}.", "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", @@ -230,6 +230,8 @@ "empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.explore_statuses": "Nada es tendencia en este momento. ¡Revisa más tarde!", + "empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando marques una publicación como favorita, se mostrarán aquí.", + "empty_column.favourites": "Todavía nadie marcó esta publicación como favorita. Cuando alguien lo haga, se mostrarán aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", "empty_column.followed_tags": "No estás siguiendo ningún hashtag todavía. Cuando lo hagas, aparecerá aquí.", "empty_column.hashtag": "No hay nada en este hashtag aún.", @@ -300,16 +302,22 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de etiquetas que hayas decidido seguir, personas que hayas seguido y publicaciones que estas impulsen. Ahora está muy vacía, por qué no:", + "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de las etiquetas que has escogido seguir, la gente que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:", "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "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 fuente 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.login.action": "Ir a Inicio", + "interaction_modal.login.prompt": "Dominio de tu servidor, por ejemplo mastodon.social", + "interaction_modal.no_account_yet": "¿Aún no tienes cuenta en Mastodon?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.sign_in": "No estás registrado en este servidor. ¿Dónde tienes tu cuenta?", + "interaction_modal.sign_in_hint": "Pista: Ese es el sitio donde te registraste. Si no lo recuerdas, busca el correo electrónico de bienvenida en tu bandeja de entrada. También puedes introducir tu nombre de usuario completo (por ejemplo @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Impulsar la publicación de {name}", "interaction_modal.title.reply": "Responder la publicación de {name}", @@ -325,6 +333,8 @@ "keyboard_shortcuts.direct": "para abrir la columna de menciones privadas", "keyboard_shortcuts.down": "mover hacia abajo en la lista", "keyboard_shortcuts.enter": "abrir estado", + "keyboard_shortcuts.favourite": "Marcar como favorita la publicación", + "keyboard_shortcuts.favourites": "Abrir lista de favoritos", "keyboard_shortcuts.federated": "abrir el timeline federado", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "abrir el timeline propio", @@ -355,6 +365,7 @@ "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostrar perfil de todos modos", "limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.", + "link_preview.author": "Por {name}", "lists.account.add": "Añadir a lista", "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", @@ -387,6 +398,7 @@ "navigation_bar.domain_blocks": "Dominios ocultos", "navigation_bar.edit_profile": "Editar perfil", "navigation_bar.explore": "Explorar", + "navigation_bar.favourites": "Favoritos", "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes para seguirte", "navigation_bar.followed_tags": "Hashtags seguidos", @@ -403,6 +415,7 @@ "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", "notification.admin.report": "{name} denunció a {target}", "notification.admin.sign_up": "{name} se unio", + "notification.favourite": "{name} marcó como favorita tu publicación", "notification.follow": "{name} te empezó a seguir", "notification.follow_request": "{name} ha solicitado seguirte", "notification.mention": "{name} te ha mencionado", @@ -416,6 +429,7 @@ "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Registros nuevos:", "notifications.column_settings.alert": "Notificaciones de escritorio", + "notifications.column_settings.favourite": "Favoritos:", "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías", "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", @@ -433,6 +447,7 @@ "notifications.column_settings.update": "Ediciones:", "notifications.filter.all": "Todos", "notifications.filter.boosts": "Retoots", + "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menciones", "notifications.filter.polls": "Resultados de la votación", @@ -583,6 +598,8 @@ "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Iniciar sesión o Registrarse", + "sign_in_banner.text": "Inicia sesión para seguir perfiles o etiquetas, así como marcar como favoritas, compartir y responder a publicaciones. También puedes interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interfaz de moderación para @{name}", "status.admin_domain": "Abrir interfaz de moderación para {domain}", "status.admin_status": "Abrir este estado en la interfaz de moderación", @@ -599,6 +616,7 @@ "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}", "status.embed": "Incrustado", + "status.favourite": "Favorito", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar toot", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index db78eb7dac..3e4e06474f 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar al portapapeles", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", @@ -202,6 +201,7 @@ "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.", "dismissable_banner.dismiss": "Descartar", "dismissable_banner.explore_links": "Estas son las noticias que están siendo más compartidas hoy en la red. Nuevas noticias publicadas por diferentes personas se puntúan más alto.", + "dismissable_banner.explore_statuses": "Estas son las publicaciones que están ganando popularidad en la web social hoy. Las publicaciones recientes con más impulsos y favoritos obtienen más exposición.", "dismissable_banner.explore_tags": "Estas son las etiquetas que están ganando popularidad hoy en la red. Etiquetas que se usan por personas diferentes se puntúan más alto.", "dismissable_banner.public_timeline": "Estas son las publicaciones más recientes de personas en el Fediverso que siguen las personas de {domain}.", "embed.instructions": "Añade esta publicación a tu sitio web con el siguiente código.", @@ -230,6 +230,8 @@ "empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.explore_statuses": "Nada está en tendencia en este momento. ¡Revisa más tarde!", + "empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando marques una publicación como favorita, se mostrarán aquí.", + "empty_column.favourites": "Todavía nadie marcó esta publicación como favorita. Cuando alguien lo haga, se mostrarán aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", "empty_column.followed_tags": "No has seguido ninguna etiqueta todavía. Cuando lo hagas, se mostrarán aquí.", "empty_column.hashtag": "No hay nada en este hashtag aún.", @@ -300,16 +302,22 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de etiquetas que hayas decidido seguir, personas que hayas seguido y publicaciones que estas impulsen. Ahora está muy vacía, por qué no:", + "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de las etiquetas que has escogido seguir, la gente que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:", "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "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.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.login.action": "Ir a Inicio", + "interaction_modal.login.prompt": "Dominio de tu servidor, por ejemplo mastodon.social", + "interaction_modal.no_account_yet": "¿Aún no tienes cuenta en Mastodon?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.sign_in": "No estás registrado en este servidor. ¿Dónde tienes tu cuenta?", + "interaction_modal.sign_in_hint": "Pista: Ese es el sitio donde te registraste. Si no lo recuerdas, busca el correo electrónico de bienvenida en tu bandeja de entrada. También puedes introducir tu nombre de usuario completo (por ejemplo @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Impulsar la publicación de {name}", "interaction_modal.title.reply": "Responder a la publicación de {name}", @@ -325,6 +333,8 @@ "keyboard_shortcuts.direct": "para abrir la columna de menciones privadas", "keyboard_shortcuts.down": "mover hacia abajo en la lista", "keyboard_shortcuts.enter": "Abrir publicación", + "keyboard_shortcuts.favourite": "Marcar como favorita la publicación", + "keyboard_shortcuts.favourites": "Abrir lista de favoritos", "keyboard_shortcuts.federated": "Abrir la cronología federada", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "Abrir cronología principal", @@ -355,6 +365,7 @@ "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostrar perfil de todos modos", "limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.", + "link_preview.author": "Por {name}", "lists.account.add": "Añadir a lista", "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", @@ -377,6 +388,7 @@ "mute_modal.hide_notifications": "¿Ocultar notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", "navigation_bar.about": "Acerca de", + "navigation_bar.advanced_interface": "Abrir en la interfaz web avanzada", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronología local", @@ -386,6 +398,7 @@ "navigation_bar.domain_blocks": "Dominios ocultos", "navigation_bar.edit_profile": "Editar perfil", "navigation_bar.explore": "Explorar", + "navigation_bar.favourites": "Favoritos", "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes para seguirte", "navigation_bar.followed_tags": "Etiquetas seguidas", @@ -402,6 +415,7 @@ "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", "notification.admin.report": "{name} informó {target}", "notification.admin.sign_up": "{name} se registró", + "notification.favourite": "{name} marcó como favorita tu publicación", "notification.follow": "{name} te empezó a seguir", "notification.follow_request": "{name} ha solicitado seguirte", "notification.mention": "{name} te ha mencionado", @@ -415,6 +429,7 @@ "notifications.column_settings.admin.report": "Nuevos informes:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", + "notifications.column_settings.favourite": "Favoritos:", "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías", "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", @@ -432,6 +447,7 @@ "notifications.column_settings.update": "Ediciones:", "notifications.filter.all": "Todos", "notifications.filter.boosts": "Impulsos", + "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menciones", "notifications.filter.polls": "Resultados de la votación", @@ -582,6 +598,8 @@ "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Iniciar sesión o Registrarse", + "sign_in_banner.text": "Inicia sesión para seguir perfiles o etiquetas, así como marcar como favoritas, compartir y responder a publicaciones. También puedes interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interfaz de moderación para @{name}", "status.admin_domain": "Abrir interfaz de moderación para {domain}", "status.admin_status": "Abrir esta publicación en la interfaz de moderación", @@ -598,6 +616,7 @@ "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustado", + "status.favourite": "Favorito", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar publicación", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 44d3c91220..86ef7f103b 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -191,7 +191,6 @@ "conversation.open": "Vaata vestlust", "conversation.with": "Koos {names}", "copypaste.copied": "Kopeeritud", - "copypaste.copy": "Kopeeri", "copypaste.copy_to_clipboard": "Kopeeri vahemällu", "directory.federated": "Tuntud födiversumist", "directory.local": "Ainult domeenilt {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Peamine", "home.column_settings.show_reblogs": "Näita jagamisi", "home.column_settings.show_replies": "Näita vastuseid", - "home.explore_prompt.body": "Sinu koduvoos on koos jälgimiseks valitud siltidega postitused, sinu jälgitavate inimeste postitused ja postitused, mida nad jagavad. Praegu paistab siin üsna vaikne olema, et kuidas oleks kui:", + "home.explore_prompt.body": "Sinu koduvoos on koos jälgimiseks valitud siltidega postitused, sinu jälgitavate inimeste postitused ja postitused, mida nad jagavad. Kui see tundub liiga vaikne, võid sa soovida:", "home.explore_prompt.title": "See on sinu kodubaas Mastodonis.", "home.hide_announcements": "Peida teadaanded", "home.show_announcements": "Kuva teadaandeid", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Mastodoni kontoga saad jälgida kasutajat {name}, et tema postitusi oma koduvoos näha.", "interaction_modal.description.reblog": "Mastodoni kontoga saad seda postitust levitada, jagades seda oma jälgijatele.", "interaction_modal.description.reply": "Mastodoni kontoga saad sellele postitusele vastata.", + "interaction_modal.login.action": "Vii mind avalehele", + "interaction_modal.login.prompt": "Sinu koduserveri domeen, näiteks mastodon.social", + "interaction_modal.no_account_yet": "Pole Mastodonis?", "interaction_modal.on_another_server": "Teises serveris", "interaction_modal.on_this_server": "Selles serveris", - "interaction_modal.other_server_instructions": "Kopeeri ja kleebi see URL oma Mastodoni lemmikäpi või Mastodoni serveri veebiliidese otsinguväljale.", - "interaction_modal.preamble": "Kuna Mastodon on detsentraliseeritud, saab kasutada teises Mastodoni serveris olevat kontot või ka ühilduval platvormil, kui siin serveril kontot ei ole.", + "interaction_modal.sign_in": "Sa pole sellesse serverisse sisse logitud. Kus sinu konto asub?", + "interaction_modal.sign_in_hint": "Vihje: See on veebileht, millel sa registreerusid. Kui see ei meenu, otsi sisendkaustast tervitus-e-kirja. Võid sisestada ka oma täispika kasutajanime! (Näit. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Lisa konto {name} postitus lemmikuks", "interaction_modal.title.follow": "Jälgi kontot {name}", "interaction_modal.title.reblog": "Jaga {name} postitust", @@ -386,6 +388,7 @@ "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", "mute_modal.indefinite": "Lõpmatu", "navigation_bar.about": "Teave", + "navigation_bar.advanced_interface": "Ava kohandatud veebiliides", "navigation_bar.blocks": "Blokeeritud kasutajad", "navigation_bar.bookmarks": "Järjehoidjad", "navigation_bar.community_timeline": "Kohalik ajajoon", @@ -444,6 +447,7 @@ "notifications.column_settings.update": "Muudatused:", "notifications.filter.all": "Kõik", "notifications.filter.boosts": "Jagamised", + "notifications.filter.favourites": "Lemmikud", "notifications.filter.follows": "Jälgib", "notifications.filter.mentions": "Mainimised", "notifications.filter.polls": "Küsitluse tulemused", @@ -594,6 +598,7 @@ "server_banner.server_stats": "Serveri statistika:", "sign_in_banner.create_account": "Loo konto", "sign_in_banner.sign_in": "Logi sisse", + "sign_in_banner.sso_redirect": "Sisene või registreeru", "sign_in_banner.text": "Logi sisse, et jälgida profiile või silte, märkida lemmikuks, jagada ja vastata postitustele. Võid suhelda ka mõne teise serveri konto kaudu.", "status.admin_account": "Ava @{name} moderaatorivaates", "status.admin_domain": "Ava {domain} modeereerimisliides", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 5a7a97f9a9..140913f3d6 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -191,7 +191,6 @@ "conversation.open": "Ikusi elkarrizketa", "conversation.with": "Hauekin: {names}", "copypaste.copied": "Kopiatuta", - "copypaste.copy": "Kopiatu", "copypaste.copy_to_clipboard": "Kopiatu arbelera", "directory.federated": "Fedibertso ezagunekoak", "directory.local": "{domain} domeinukoak soilik", @@ -300,16 +299,19 @@ "home.column_settings.basic": "Oinarrizkoa", "home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_replies": "Erakutsi erantzunak", - "home.explore_prompt.body": "Zure hasierako jarioak jarraitzeko aukeratu dituzun traolen, jarraitzeko aukeratu duzun jendearen eta beraiek bultzatutako argitalpenen nahasketa bat edukiko du. Nahiko isila dirudi oraintxe, beraz, zergatik ez:", "home.explore_prompt.title": "Hau zure hasiera da Mastodonen.", "home.hide_announcements": "Ezkutatu iragarpenak", "home.show_announcements": "Erakutsi iragarpenak", "interaction_modal.description.follow": "Mastodon kontu batekin {name} jarraitu dezakezu bere bidalketak zure hasierako denbora lerroan jasotzeko.", "interaction_modal.description.reblog": "Mastodon kontu batekin bidalketa hau bultzatu dezakezu, zure jarraitzaileekin partekatzeko.", "interaction_modal.description.reply": "Mastodon kontu batekin bidalketa honi erantzun diezaiokezu.", + "interaction_modal.login.action": "Itzuli hasierara", + "interaction_modal.login.prompt": "Zure zerbitzariko domeinua, adib. mastodon.eus", + "interaction_modal.no_account_yet": "Oraindik ez duzu izena eman Mastodonen?", "interaction_modal.on_another_server": "Beste zerbitzari batean", "interaction_modal.on_this_server": "Zerbitzari honetan", - "interaction_modal.preamble": "Mastodon deszentralizatua denez, zerbitzari honetan konturik ez badaukazu, beste Mastodon zerbitzari batean edo bateragarria den plataforma batean ostatatutako kontua erabil dezakezu.", + "interaction_modal.sign_in": "Ez duzu saioa hasita zerbitzari honetan. Non dago zure kontua ostatatua?", + "interaction_modal.sign_in_hint": "Aholkua: Izena eman duzun zerbitzaria da. Ez baduzu gogoratzen, begiratu ongietorri-mezua zure sarrera-ontzian. Baita ere, zure erabiltzaile-izen osoa sar dezakezu! (adib. @Mastodon@mastodon.social)", "interaction_modal.title.follow": "Jarraitu {name}", "interaction_modal.title.reblog": "Bultzatu {name}(r)en bidalketa", "interaction_modal.title.reply": "Erantzun {name}(r)en bidalketari", @@ -584,6 +586,7 @@ "server_banner.server_stats": "Zerbitzariaren estatistikak:", "sign_in_banner.create_account": "Sortu kontua", "sign_in_banner.sign_in": "Hasi saioa", + "sign_in_banner.sso_redirect": "Hasi saioa edo izena eman", "status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea", "status.admin_domain": "{domain}-(r)en moderazio-interfazea ireki", "status.admin_status": "Ireki bidalketa hau moderazio interfazean", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 01ddb7565b..56f23009a3 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -190,7 +190,6 @@ "conversation.open": "دیدن گفتگو", "conversation.with": "با {names}", "copypaste.copied": "رونوشت شد", - "copypaste.copy": "رونوشت", "copypaste.copy_to_clipboard": "رونوشت به تخته‌گیره", "directory.federated": "از کارسازهای شناخته‌شده", "directory.local": "تنها از {domain}", @@ -302,7 +301,6 @@ "home.column_settings.basic": "پایه‌ای", "home.column_settings.show_reblogs": "نمایش تقویت‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", - "home.explore_prompt.body": "خوراک خانگیتان ترکیبی از فرسته‌ها از برچسب‌هایی که برای پی‌گیری گزیده‌اید، افرادی که پی می‌گیرید و فرسته‌هایی که تقویت می‌کنند را خواهد داشت. در حال حاضر بسیار ساکت است؛ پس چه طور است:", "home.explore_prompt.title": "این پایگاه خانگیتان در ماستودون است.", "home.hide_announcements": "نهفتن اعلامیه‌ها", "home.show_announcements": "نمایش اعلامیه‌ها", @@ -312,8 +310,6 @@ "interaction_modal.description.reply": "با حسابی روی ماستودون می‌توانید به این فرسته پاسخ دهید.", "interaction_modal.on_another_server": "روی کارسازی دیگر", "interaction_modal.on_this_server": "روی این کارساز", - "interaction_modal.other_server_instructions": "این نشانی را رونویسی و در زمینهٔ جست‌وجوی کارهٔ دلخواه یا رابط وب کارساز ماستودونتان جایگذاری کنید.", - "interaction_modal.preamble": "از آن‌جا که ماستودون نامتمرکز است، می‌توانید در صورت نداشتن حساب روی این کارساز، از حساب موجود خودتان که روی کارساز ماستودون یا بن‌سازهٔ سازگار دیگری میزبانی می‌شود استفاده کنید.", "interaction_modal.title.favourite": "فرسته‌های برگزیدهٔ {name}", "interaction_modal.title.follow": "پیگیری {name}", "interaction_modal.title.reblog": "تقویت فرستهٔ {name}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 814652e8be..6678a41e8b 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -52,7 +52,7 @@ "account.mute_notifications_short": "Mykistä ilmoitukset", "account.mute_short": "Mykistä", "account.muted": "Mykistetty", - "account.no_bio": "Ei kuvausta.", + "account.no_bio": "Kuvausta ei ole annettu.", "account.open_original_page": "Avaa alkuperäinen sivu", "account.posts": "viesti(t)", "account.posts_with_replies": "Viestit ja vastaukset", @@ -68,7 +68,7 @@ "account.unendorse": "Poista suosittelu profiilistasi", "account.unfollow": "Lopeta seuraaminen", "account.unmute": "Poista käyttäjän @{name} mykistys", - "account.unmute_notifications_short": "Poista ilmoitusten mykistys", + "account.unmute_notifications_short": "Kumoa ilmoitusten mykistys", "account.unmute_short": "Poista mykistys", "account_note.placeholder": "Lisää muistiinpano napsauttamalla", "admin.dashboard.daily_retention": "Käyttäjän säilyminen rekisteröitymisen jälkeiseen päivään mennessä", @@ -135,7 +135,7 @@ "community.column_settings.remote_only": "Vain etätilit", "compose.language.change": "Vaihda kieli", "compose.language.search": "Hae kieliä...", - "compose.published.body": "Julkaisu lähetetty.", + "compose.published.body": "Julkaisusi julkaistiin.", "compose.published.open": "Avaa", "compose_form.direct_message_warning_learn_more": "Lisätietoja", "compose_form.encryption_warning": "Mastodonin viestit eivät ole päästä päähän salattuja. Älä jaa arkaluonteisia tietoja Mastodonissa.", @@ -150,7 +150,7 @@ "compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi", "compose_form.poll.switch_to_single": "Muuta äänestys sallimaan vain yksi valinta", "compose_form.publish": "Julkaise", - "compose_form.publish_form": "Julkaise", + "compose_form.publish_form": "Uusi julkaisu", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Tallenna muutokset", "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse mediat arkaluontoiseksi}}", @@ -181,7 +181,7 @@ "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.", "confirmations.mute.message": "Haluatko varmasti mykistää profiilin {name}?", "confirmations.redraft.confirm": "Poista & palauta muokattavaksi", - "confirmations.redraft.message": "Haluatko varmasti poistaa viestin ja tehdä siitä uuden luonnoksen? Suosikit ja tehostukset menetään, ja alkuperäisen viestisi vastaukset jäävät orvoiksi.", + "confirmations.redraft.message": "Haluatko varmasti poistaa viestin ja tehdä siitä luonnoksen? Suosikiksi lisäykset sekä tehostukset menetään, ja vastaukset alkuperäisviestiisi jäävät orvoiksi.", "confirmations.reply.confirm": "Vastaa", "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?", "confirmations.unfollow.confirm": "Lopeta seuraaminen", @@ -191,7 +191,6 @@ "conversation.open": "Näytä keskustelu", "conversation.with": "{names} kanssa", "copypaste.copied": "Kopioitu", - "copypaste.copy": "Kopioi", "copypaste.copy_to_clipboard": "Kopioi leikepöydälle", "directory.federated": "Koko tunnettu fediverse", "directory.local": "Vain palvelusta {domain}", @@ -201,10 +200,10 @@ "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.", "dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset julkaisut käyttäjiltä, joiden tilejä isännöi {domain}.", "dismissable_banner.dismiss": "Hylkää", - "dismissable_banner.explore_links": "Näistä uutisista puhuvat ihmiset juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", - "dismissable_banner.explore_statuses": "Nämä ovat sosiaalisen verkon viestejä, jotka keräävät huomiota tänään. Uudemmat ja enemmän tehostetut viestit, ja suosikit rankataan korkeammalle.", + "dismissable_banner.explore_links": "Näistä uutisista puhutaan juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", + "dismissable_banner.explore_statuses": "Nämä ovat tänään huomiota keräävimpiä sosiaalisen verkon julkaisuja. Tuoreimmat, tehostetuimmat sekä suosikeiksi merkityimmät sijoitetaan listauksessa korkeammalle.", "dismissable_banner.explore_tags": "Nämä aihetunnisteet saavat juuri nyt vetovoimaa tällä ja muilla hajautetun verkon palvelimilla olevien ihmisten keskuudessa.", - "dismissable_banner.public_timeline": "Nämä ovat viimeisimmät julkiset viestit sosiaalisen verkon ihmisiltä, joita {domain} käyttäjät seuraa.", + "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelussa {domain}.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", "embed.preview": "Se tulee näyttämään tältä:", "emoji_button.activity": "Aktiviteetit", @@ -232,11 +231,11 @@ "empty_column.domain_blocks": "Palveluita ei ole vielä estetty.", "empty_column.explore_statuses": "Mikään ei trendaa nyt. Tarkista myöhemmin uudelleen!", "empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkiviestiä. Kun lisäät yhden, näkyy se tässä.", - "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä viestiä suosikkeihinsa. Kun joku on lisännyt, näkyy hän tässä.", + "empty_column.favourites": "Kukaan ei ole vielä merkinnyt tätä viestiä suosikiksi. Kun joku tekee niin, näkyy asia täällä.", "empty_column.follow_requests": "Et ole vielä vastaanottanut seurauspyyntöjä. Saamasi pyynnöt näytetään täällä.", "empty_column.followed_tags": "Et ole vielä ottanut yhtään aihetunnistetta seurattavaksesi. Jos tai kun sitten teet niin, ne listautuvat tänne.", "empty_column.hashtag": "Tällä aihetunnisteella ei ole vielä mitään.", - "empty_column.home": "Kotisi aikajana on tyhjä! Seuraa lisää ihmisiä täyttääksesi sen. {suggestions}", + "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.", "empty_column.list": "Tässä luettelossa ei ole vielä mitään. Kun tämän luettelon jäsenet julkaisevat uusia viestejä, ne näkyvät täällä.", "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.", "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", @@ -298,24 +297,27 @@ "hashtag.column_settings.tag_toggle": "Sisällytä lisätunnisteet tähän sarakkeeseen", "hashtag.follow": "Seuraa aihetunnistetta", "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen", - "home.actions.go_to_explore": "Näe mitä tapahtuu", + "home.actions.go_to_explore": "Katso, mikä on suosittua", "home.actions.go_to_suggestions": "Löydä seurattavia käyttäjiä", "home.column_settings.basic": "Perusasetukset", "home.column_settings.show_reblogs": "Näytä tehostukset", "home.column_settings.show_replies": "Näytä vastaukset", - "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamistasi aihetunnisteista ja käyttäjistä sekä heidän tehostamistaan viesteistä. Se näyttää tällä hetkellä varsin hiljaiselta, joten mitäpä jos:", - "home.explore_prompt.title": "Tämä on kotitukikohtasi Mastodonissa.", + "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamistasi aihetunnisteista ja käyttäjistä sekä heidän tehostamistaan viesteistä. Jos se näyttää tällä hetkellä turhan hiljaiselta, saatat haluta:", + "home.explore_prompt.title": "Tämä on tukikohtasi Mastodonissa.", "home.hide_announcements": "Piilota ilmoitukset", "home.show_announcements": "Näytä ilmoitukset", - "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä viestin suosikkeihisi näyttääksesi sen kirjoittajalle arvostavasi sitä ja tallentaaksesi sen tulevaisuutta varten.", + "interaction_modal.description.favourite": "Mastodon-tilisi myötä voit merkitä julkaisuja suosikeiksi, jolloin osoitat julkaisijoille arvostavasi sisältöä, ja tallennat sitä myös helpommin saatavillesi jatkossa.", "interaction_modal.description.follow": "Kun sinulla on Mastodon-tili, voit seurata käyttäjää {name} nähdäksesi hänen viestinsä kotisyötteessäsi.", "interaction_modal.description.reblog": "Kun sinulla on tili Mastodonissa, voit tehostaa viestiä ja jakaa sen omien seuraajiesi kanssa.", "interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.", + "interaction_modal.login.action": "Palaa aloitussivulle", + "interaction_modal.login.prompt": "Kotipalvelimesi verkkotunnus (kuten mastodon.social)", + "interaction_modal.no_account_yet": "Etkö ole vielä Mastodonissa?", "interaction_modal.on_another_server": "Toisella palvelimella", "interaction_modal.on_this_server": "Tällä palvelimella", - "interaction_modal.other_server_instructions": "Kopioi ja liitä tämä URL-osoite käyttämäsi Mastodon-sovelluksen tai Mastodon-palvelimen verkkosivuston hakukenttään.", - "interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.", - "interaction_modal.title.favourite": "Lisää käyttäjän {name} viesti suosikkeihin", + "interaction_modal.sign_in": "Et ole kirjautunut tälle palvelimelle. Millä palvelimella tilisi sijaitsee?", + "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolla loit tilisi. Jos et muista, etsi tervetuliaissähköpostia saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Lisää käyttäjän {name} julkaisu suosikkeihin", "interaction_modal.title.follow": "Seuraa {name}", "interaction_modal.title.reblog": "Tehosta käyttäjän {name} viestiä", "interaction_modal.title.reply": "Vastaa käyttäjän {name} viestiin", @@ -331,7 +333,7 @@ "keyboard_shortcuts.direct": "avataksesi yksityisten mainintojen sarakkeen", "keyboard_shortcuts.down": "Siirry listassa alaspäin", "keyboard_shortcuts.enter": "Avaa julkaisu", - "keyboard_shortcuts.favourite": "Lisää viesti suosikkeihin", + "keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin", "keyboard_shortcuts.favourites": "Avaa suosikkilista", "keyboard_shortcuts.federated": "Avaa yleinen aikajana", "keyboard_shortcuts.heading": "Pikanäppäimet", @@ -369,7 +371,7 @@ "lists.delete": "Poista lista", "lists.edit": "Muokkaa listaa", "lists.edit.submit": "Vaihda otsikko", - "lists.exclusive": "Piilota nämä viestit kotoasi", + "lists.exclusive": "Piilota nämä julkaisut kotiaikajanaltasi", "lists.new.create": "Lisää lista", "lists.new.title_placeholder": "Uuden listan nimi", "lists.replies_policy.followed": "Jokainen seurattu käyttäjä", @@ -386,7 +388,7 @@ "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?", "mute_modal.indefinite": "Ikuisesti", "navigation_bar.about": "Tietoja", - "navigation_bar.advanced_interface": "Avaa edistyneessä käyttöliittymässä", + "navigation_bar.advanced_interface": "Avaa edistyneessä selainkäyttöliittymässä", "navigation_bar.blocks": "Estetyt käyttäjät", "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", @@ -413,7 +415,7 @@ "not_signed_in_indicator.not_signed_in": "Sinun on kirjauduttava sisään käyttääksesi resurssia.", "notification.admin.report": "{name} teki ilmoituksen käytäjästä {target}", "notification.admin.sign_up": "{name} rekisteröityi", - "notification.favourite": "{name} lisäsi viestisi suosikkeihinsa", + "notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa", "notification.follow": "{name} seurasi sinua", "notification.follow_request": "{name} haluaa seurata sinua", "notification.mention": "{name} mainitsi sinut", @@ -461,8 +463,8 @@ "notifications_permission_banner.title": "Älä anna minkään mennä ohi", "onboarding.action.back": "Palaa takaisin", "onboarding.actions.back": "Palaa takaisin", - "onboarding.actions.go_to_explore": "Katso, mikä on trendikästä", - "onboarding.actions.go_to_home": "Siirry kotisyötteeseesi", + "onboarding.actions.go_to_explore": "Siirry suosituimpien aiheiden syötteeseen", + "onboarding.actions.go_to_home": "Siirry kotisyötteeseen", "onboarding.compose.template": "Tervehdys #Mastodon!", "onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata tutustumissivua löytääksesi seurattavaa, tai yrittää myöhemmin uudelleen.", "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!", @@ -471,17 +473,17 @@ "onboarding.share.message": "Olen {username} #Mastodon'issa! Seuraa minua osoitteessa {url}", "onboarding.share.next_steps": "Mahdolliset seuraavat vaiheet:", "onboarding.share.title": "Jaa profiilisi", - "onboarding.start.lead": "Uusi Mastodon-tilisi on valmiina käyttöön. Näin hyödyt siitä eniten:", - "onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin?", + "onboarding.start.lead": "Uusi Mastodon-tilisi on nyt valmiina käyttöön. Kyseessä on ainutlaatuinen, hajautettu sosiaalisen median alusta, jolla sinä itse – algoritmin sijaan – määrität käyttökokemuksesi. Näin hyödyt Mastodonista eniten:", + "onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin ilman alkuunpääsyohjeistuksia?", "onboarding.start.title": "Olet tehnyt sen!", - "onboarding.steps.follow_people.body": "Kokoat oman syötteesi itse. Täytetään se kiinnostavilla henkilöillä.", - "onboarding.steps.follow_people.title": "Seurattu {count, plural, one {henkilö} other {# henkilöä}}", - "onboarding.steps.publish_status.body": "Sano tervehdys maailmalle.", + "onboarding.steps.follow_people.body": "Mastodon perustuu sinua kiinnostavien henkilöjen julkaisujen seuraamiseen.", + "onboarding.steps.follow_people.title": "Mukauta kotisyötteesi", + "onboarding.steps.publish_status.body": "Tervehdi maailmaa sanoin, kuvin tai äänestyksin {emoji}", "onboarding.steps.publish_status.title": "Laadi ensimmäinen julkaisusi", - "onboarding.steps.setup_profile.body": "Kun profiilisi on täytetty, muut ovat helpommin yhteyksissä sinun kanssasi.", - "onboarding.steps.setup_profile.title": "Muokkaa profiiliasi", - "onboarding.steps.share_profile.body": "Kerro ystävillesi, kuinka sinut löytää Mastodonista!", - "onboarding.steps.share_profile.title": "Jaa profiilisi", + "onboarding.steps.setup_profile.body": "Täydentämällä profiilisi tietoja tehostat vuorovaikutteisuutta.", + "onboarding.steps.setup_profile.title": "Mukauta profiiliasi", + "onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista", + "onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi", "onboarding.tips.2fa": "Tiesitkö? Voit lisäsuojata tiliäsi ottamalla kaksivaiheisen todennuksen käyttöön palvelun tiliasetuksista. Ominaisuus toimii haluamasi TOTP-todennussovelluksen avulla, eikä käyttö edellytä puhelinnumeron antamista!", "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon kuuluu hajautettuun verkkoon, osa kohtaamistasi profiileista sijaitsee muilla palvelimilla kuin sinun. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa ilmaistaan käyttäjänimen perässä!", "onboarding.tips.migration": "Tiesitkö? Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!", @@ -544,8 +546,8 @@ "report.placeholder": "Lisäkommentit", "report.reasons.dislike": "En pidä siitä", "report.reasons.dislike_description": "Et halua nähdä sitä", - "report.reasons.legal": "Se on laiton", - "report.reasons.legal_description": "Uskot sen rikkovan oman maasi tai palvelimen maan lakeja", + "report.reasons.legal": "Se on laitonta", + "report.reasons.legal_description": "Katsot sisällön rikkovan maasi tai palvelimen kotimaan lakeja", "report.reasons.other": "Jotain muuta", "report.reasons.other_description": "Ongelma ei sovi muihin kategorioihin", "report.reasons.spam": "Se on roskapostia", @@ -596,7 +598,8 @@ "server_banner.server_stats": "Palvelimen tilastot:", "sign_in_banner.create_account": "Luo tili", "sign_in_banner.sign_in": "Kirjaudu", - "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, lisätäksesi suosikkeja, jakaaksesi viestejä ja vastataksesi niihin. Voit myös vuorovaikuttaa myös eri palvelimilla olevilta tileiltäsi.", + "sign_in_banner.sso_redirect": "Kirjaudu sisään tai rekisteröidy", + "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, merkitäksesi julkaisuja suosikeiksi, julkaistaksesi sekä vastataksesi julkaisuihin. Voit vuorovaikuttaa myös eri palvelimella sijaitsevalta tililtäsi.", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", "status.admin_domain": "Avaa palvelimen {domain} moderointitoiminnot", "status.admin_status": "Avaa viesti moderointinäkymässä", @@ -613,15 +616,15 @@ "status.edited": "Muokattu {date}", "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}", "status.embed": "Upota", - "status.favourite": "Suosikki", + "status.favourite": "Merkitse suosikiksi", "status.filter": "Suodata tämä viesti", "status.filtered": "Suodatettu", "status.hide": "Piilota julkaisu", "status.history.created": "{name} luotu {date}", "status.history.edited": "{name} muokkasi {date}", "status.load_more": "Lataa lisää", - "status.media.open": "Avaa napsauttamalla", - "status.media.show": "Näytä napsauttamalla", + "status.media.open": "Napsauta avataksesi", + "status.media.show": "Napsauta näyttääksesi", "status.media_hidden": "Media piilotettu", "status.mention": "Mainitse @{name}", "status.more": "Lisää", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 87a47b3756..7a861d8c02 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -191,7 +191,6 @@ "conversation.open": "Vís samrøðu", "conversation.with": "Við {names}", "copypaste.copied": "Avritað", - "copypaste.copy": "Avrita", "copypaste.copy_to_clipboard": "Avrita til setiborðið", "directory.federated": "Frá tí kenda fediversinum", "directory.local": "Einans frá {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Grundleggjandi", "home.column_settings.show_reblogs": "Vís lyft", "home.column_settings.show_replies": "Vís svar", - "home.explore_prompt.body": "Heimarásin fer at hava eitt bland av postum frá frámerkjunum, sum tú hevur valt at fylgja, brúkarunum, tú hevur valt at fylgja, og postunum, sum tey stimbra. Tað sær rættiliga kvirt út í løtuni, so hvat við at:", + "home.explore_prompt.body": "Heimarásin fer at hava eitt bland av postum frá frámerkjunum, sum tú hevur valt at fylgja, brúkarunum, tú hevur valt at fylgja, og postunum, sum tey stimbra. Um tað kennist ov friðarligt, so kanst tú:", "home.explore_prompt.title": "Hetta er tín heimastøð í Mastodon.", "home.hide_announcements": "Fjal kunngerðir", "home.show_announcements": "Vís kunngerðir", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Við eini kontu á Mastodon kanst tú fylgja {name} fyri at síggja teirra postar á tíni heimarás.", "interaction_modal.description.reblog": "Við eini kontu á Mastodon kanst tú stimbra hendan postin og soleiðis deila hann við tínar fylgjarar.", "interaction_modal.description.reply": "Við eini kontu á Mastodon, so kanst tú svara hesum posti.", + "interaction_modal.login.action": "Tak meg heim", + "interaction_modal.login.prompt": "Navnaøki hjá tínum heimaambætara, t.d. mastodon.social", + "interaction_modal.no_account_yet": "Ikki á Mastodon?", "interaction_modal.on_another_server": "Á øðrum ambætara", "interaction_modal.on_this_server": "Á hesum ambætaranum", - "interaction_modal.other_server_instructions": "Kopiera og set hendan URLin inn í leititeigin í tíni yndis-Mastodon-app ella í vev-markamótið á tínum Mastodon-ambætara.", - "interaction_modal.preamble": "Av tí at Mastodon er desentraliserað, kanst tú brúka tína kontu frá einum øðrum Mastodon ambætara ella sambærligum palli, um tú ikki hevur eina kontu á hesum ambætaranum.", + "interaction_modal.sign_in": "Tú er ikki ritað/ur inn á hesum ambætaranum. Hvar er kontan hjá tær hýst?", + "interaction_modal.sign_in_hint": "Góð ráð: tað er heimasíðan, har tú lat teg skráseta. Minnist tú ikki, so kanst tú leita eftir vælkomin-teldubrævinum í innbakkanum hjá tær. Tú kanst eisini innlesa fulla brúkaranavnið hjá tær! (t.d. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Dáma postin hjá {name}", "interaction_modal.title.follow": "Fylg {name}", "interaction_modal.title.reblog": "Stimbra postin hjá {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Ambætarahagtøl:", "sign_in_banner.create_account": "Stovna kontu", "sign_in_banner.sign_in": "Rita inn", + "sign_in_banner.sso_redirect": "Rita inn ella Skráset teg", "sign_in_banner.text": "Innrita fyri at fylgja vangum og frámerkjum, dáma, deila og svara postum. Tú kanst eisini brúka kontuna til at samvirka á einum øðrum ambætara.", "status.admin_account": "Lat kjakleiðaramarkamót upp fyri @{name}", "status.admin_domain": "Lat umsjónarmarkamót upp fyri {domain}", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index 547d9a773f..a3627b5361 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -191,7 +191,6 @@ "conversation.open": "Afficher cette conversation", "conversation.with": "Avec {names}", "copypaste.copied": "Copié", - "copypaste.copy": "Copier", "copypaste.copy_to_clipboard": "Copier dans le presse-papiers", "directory.federated": "D'un fediverse connu", "directory.local": "De {domain} seulement", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher boosts", "home.column_settings.show_replies": "Afficher réponses", - "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de publications depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les publications qu'elles boostent. C'est plutôt calme en ce moment, alors que dites-vous de:", + "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'ils boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :", "home.explore_prompt.title": "C'est chez vous dans Mastadon.", "home.hide_announcements": "Masquer les annonces", "home.show_announcements": "Afficher annonces", @@ -311,10 +310,13 @@ "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.login.action": "Aller à mon serveur", + "interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social", + "interaction_modal.no_account_yet": "Pas sur Mastodon ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", - "interaction_modal.other_server_instructions": "Copiez et collez cet URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.", - "interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.", + "interaction_modal.sign_in": "Vous n’êtes pas connectés sur ce serveur. Où est hébergé votre compte ?", + "interaction_modal.sign_in_hint": "Astuce : c'est le site web sur lequel vous vous êtes inscrit. Si vous ne vous en souvenez pas, cherchez le courriel de bienvenue dans votre boîte de réception. Vous pouvez aussi indiquer votre nom d’utilisateur complet ! (par ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Ajouter la publication de {name} aux favoris", "interaction_modal.title.follow": "Suivre {name}", "interaction_modal.title.reblog": "Booster la publication de {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Statistiques du serveur:", "sign_in_banner.create_account": "Créer un compte", "sign_in_banner.sign_in": "Se connecter", + "sign_in_banner.sso_redirect": "Se connecter ou s’inscrire", "sign_in_banner.text": "Identifiez-vous pour suivre des profils ou des hashtags, ajouter des favoris, partager et répondre à des publications. Vous pouvez également interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_domain": "Ouvrir l’interface de modération pour {domain}", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 00025b20a5..4757621d26 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -191,7 +191,6 @@ "conversation.open": "Afficher la conversation", "conversation.with": "Avec {names}", "copypaste.copied": "Copié", - "copypaste.copy": "Copier", "copypaste.copy_to_clipboard": "Copier dans le presse-papiers", "directory.federated": "Du fédiverse connu", "directory.local": "De {domain} seulement", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_replies": "Afficher les réponses", - "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'ils boostent. Cela a l'air assez calme en ce moment, alors comment :", + "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'ils boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :", "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.", "home.hide_announcements": "Masquer les annonces", "home.show_announcements": "Afficher les annonces", @@ -311,10 +310,13 @@ "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.login.action": "Aller à mon serveur", + "interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social", + "interaction_modal.no_account_yet": "Pas sur Mastodon ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", - "interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.", - "interaction_modal.preamble": "Mastodon étant décentralisé, vous pouvez utiliser votre compte existant sur un autre serveur Mastodon, ou sur une autre plateforme compatible, si vous n'avez pas de compte ici.", + "interaction_modal.sign_in": "Vous n’êtes pas connectés sur ce serveur. Où est hébergé votre compte ?", + "interaction_modal.sign_in_hint": "Astuce : c'est le site web sur lequel vous vous êtes inscrit. Si vous ne vous en souvenez pas, cherchez le courriel de bienvenue dans votre boîte de réception. Vous pouvez aussi indiquer votre nom d’utilisateur complet ! (par ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris", "interaction_modal.title.follow": "Suivre {name}", "interaction_modal.title.reblog": "Partager le message de {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Statistiques du serveur :", "sign_in_banner.create_account": "Créer un compte", "sign_in_banner.sign_in": "Se connecter", + "sign_in_banner.sso_redirect": "Se connecter ou s’inscrire", "sign_in_banner.text": "Identifiez-vous pour suivre des profils ou des hashtags, ajouter des favoris, partager et répondre à des messages. Vous pouvez également interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_domain": "Ouvrir l’interface de modération pour {domain}", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index d6bfba9eec..299c155c4f 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -189,7 +189,6 @@ "conversation.open": "Petear toane", "conversation.with": "Mei {names}", "copypaste.copied": "Kopiearre", - "copypaste.copy": "Kopiearje", "copypaste.copy_to_clipboard": "Nei klamboerd kopiearje", "directory.federated": "Fediverse (wat bekend is)", "directory.local": "Allinnich fan {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Algemien", "home.column_settings.show_reblogs": "Boosts toane", "home.column_settings.show_replies": "Reaksjes toane", - "home.explore_prompt.body": "Jo starttiidline befettet in miks fan berjochten mei hashtags dy’t jo keazen hawwe om te folgjen, fan minsken dy’t jo keazen hawwe om te folgjen en berjochten dy’t se booste. It sjocht der no frij rêstich út, dus wat tinke jo derfan om:", "home.explore_prompt.title": "Dit is jo thúsbasis op Mastodon.", "home.hide_announcements": "Meidielingen ferstopje", "home.show_announcements": "Meidielingen toane", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "Jo kinne mei in Mastodon-account op dit berjocht reagearje.", "interaction_modal.on_another_server": "Op een oare server", "interaction_modal.on_this_server": "Op dizze server", - "interaction_modal.preamble": "Mastodon is desintralisearre. Dêrom hawwe jo gjin account op dizze Mastodon-server nedich, wannear’t jo al in account op in oare Mastodon-server of kompatibel platfoarm hawwe.", "interaction_modal.title.follow": "{name} folgje", "interaction_modal.title.reblog": "Berjocht fan {name} booste", "interaction_modal.title.reply": "Op it berjocht fan {name} reagearje", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index d2a60ba0e0..37034b2465 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -170,7 +170,6 @@ "conversation.open": "Féach ar comhrá", "conversation.with": "Le {names}", "copypaste.copied": "Cóipeáilte", - "copypaste.copy": "Cóipeáil", "directory.federated": "Ó chomhchruinne aitheanta", "directory.local": "Ó {domain} amháin", "directory.new_arrivals": "Daoine atá tar éis teacht", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index a1bc89d217..f580caa966 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -187,7 +187,6 @@ "conversation.open": "Seall an còmhradh", "conversation.with": "Còmhla ri {names}", "copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh", - "copypaste.copy": "Dèan lethbhreac", "copypaste.copy_to_clipboard": "Cuir lethbhreac dheth air an stòr-bhòrd", "directory.federated": "On cho-shaoghal aithnichte", "directory.local": "O {domain} a-mhàin", @@ -296,7 +295,6 @@ "home.column_settings.basic": "Bunasach", "home.column_settings.show_reblogs": "Seall na brosnachaidhean", "home.column_settings.show_replies": "Seall na freagairtean", - "home.explore_prompt.body": "Bidh measgachadh de phostaichean o na tagaichean hais a leanas tu, na daoine a leanas tu is na postaichean a bhrosnaicheas iad air do dhachaigh. Tha cùisean caran sàmhach an-dràsta, mar sin dheth seo moladh no dhà dhut:", "home.explore_prompt.title": "Seo do dhachaigh am broinn Mastodon.", "home.hide_announcements": "Falaich na brathan-fios", "home.show_announcements": "Seall na brathan-fios", @@ -305,7 +303,6 @@ "interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.", "interaction_modal.on_another_server": "Air frithealaiche eile", "interaction_modal.on_this_server": "Air an frithealaiche seo", - "interaction_modal.preamble": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chleachdadh a tha ’ga òstadh le frithealaiche Mastodon no le ùrlar co-chòrdail eile mur eil cunntas agad air an fhear seo.", "interaction_modal.title.follow": "Lean {name}", "interaction_modal.title.reblog": "Brosnaich am post aig {name}", "interaction_modal.title.reply": "Freagair dhan phost aig {name}", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 3ecb3b8cbe..92ad9a3384 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversa", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar ao portapapeis", "directory.federated": "Do fediverso coñecido", "directory.local": "Só de {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Amosar compartidos", "home.column_settings.show_replies": "Amosar respostas", - "home.explore_prompt.body": "A túa cronoloxía de inicio vai ter unha mistura de publicacións procedentes dos cancelos que segues, das persoas que elexiches seguir e das publicacións que elas promoven. Hai poucas cousas polo de agora, que che parece se:", + "home.explore_prompt.body": "A túa cronoloxía de inicio vai ter unha mistura de publicacións procedentes dos cancelos que segues, das persoas que elexiches seguir e das publicacións que elas promoven. Se non tes moito que ler, podes probar a:", "home.explore_prompt.title": "Iste é o teu fogar en Mastodon.", "home.hide_announcements": "Agochar anuncios", "home.show_announcements": "Amosar anuncios", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Cunha conta en Mastodon, poderás seguir a {name} e recibir as súas publicacións na túa cronoloxía de inicio.", "interaction_modal.description.reblog": "Cunha conta en Mastodon, poderás promover esta publicación para compartila con quen te siga.", "interaction_modal.description.reply": "Cunha conta en Mastodon, poderás responder a esta publicación.", + "interaction_modal.login.action": "Lévame ao inicio", + "interaction_modal.login.prompt": "Dominio do teu servidor de inicio, ex. mastodon.social", + "interaction_modal.no_account_yet": "Aínda non tes unha conta?", "interaction_modal.on_another_server": "Nun servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.other_server_instructions": "Copia e pega este URL na barra de busca da túa app Mastodon favorita ou na interface web do servidor Mastodon.", - "interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispós dunha conta neste servidor.", + "interaction_modal.sign_in": "Non iniciaches sesión neste servidor. Onde creaches a túa conta?", + "interaction_modal.sign_in_hint": "Axuda: trátase da web na que te rexistraches. Se non a lembras, busca na caixa de correo a mensaxe de benvida. Tamén podes escribir o teu identificador completo! (ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Marcar coma favorita a publicación de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Promover a publicación de {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Crear conta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Acceder ou Crear conta", "sign_in_banner.text": "Inicia sesión para seguir perfís ou cancelos, marcar como favorita e responder a publicacións. Tamén podes interactuar coa túa conta noutro servidor.", "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_domain": "Abrir interface de moderación para {domain}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index a86f2a124e..18324463ff 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -191,7 +191,6 @@ "conversation.open": "צפו בשיחה", "conversation.with": "עם {names}", "copypaste.copied": "הועתק", - "copypaste.copy": "העתקה", "copypaste.copy_to_clipboard": "העתקה ללוח הגזירים", "directory.federated": "מהפדרציה הידועה", "directory.local": "מ- {domain} בלבד", @@ -303,7 +302,7 @@ "home.column_settings.basic": "למתחילים", "home.column_settings.show_reblogs": "הצגת הדהודים", "home.column_settings.show_replies": "הצגת תגובות", - "home.explore_prompt.body": "פיד הנעקבים שלך יכיל תערובת של הודעות מהתגיות והאנשים שבחרת לעקיבה, וההודעות שהנעקבים בוחרים להדהד. נראה שדי שקט כאן כרגע אז מה לגבי:", + "home.explore_prompt.body": "זרם הבית שלך יכיל תערובת של הודעות מהתגיות והאנשים שבחרת לעקיבה, וההודעות שהנעקבים בוחרים להדהד. אם זה נראה שקט מדי כרגע אז מה לגבי:", "home.explore_prompt.title": "זהו בסיס הבית שלך בתוך מסטודון.", "home.hide_announcements": "הסתר הכרזות", "home.show_announcements": "הצג הכרזות", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "עם חשבון מסטודון, ניתן לעקוב אחרי {name} כדי לקבל את הםוסטים שלו/ה בפיד הבית.", "interaction_modal.description.reblog": "עם חשבון מסטודון, ניתן להדהד את החצרוץ ולשתף עם עוקבים.", "interaction_modal.description.reply": "עם חשבון מסטודון, ניתן לענות לחצרוץ.", + "interaction_modal.login.action": "קח אותי לדף הבית", + "interaction_modal.login.prompt": "שם השרת שלך, למשל mastodon.social", + "interaction_modal.no_account_yet": "עדיין לא במסטודון?", "interaction_modal.on_another_server": "על שרת אחר", "interaction_modal.on_this_server": "על שרת זה", - "interaction_modal.other_server_instructions": "ניתן להעתיק ולהדביק קישור זה לתוך שדה החיפוש באפליקציית מסטודון שבשימוש אצלך או בממשק הדפדפן של שרת המסטודון.", - "interaction_modal.preamble": "כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה.", + "interaction_modal.sign_in": "אינך מחובר.ת לשרת זה. היכן מתאכסן החשבון שלך?", + "interaction_modal.sign_in_hint": "רמז: זהו האתר שבו נרשמת. אם שכחת, יש לך הודעת \"ברוכים הבאים\" בתיבת הדוא\"ל. ניתן גם לכתוב את שם המשתמש המלא (למשל @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "חיבוב החצרוץ של {name}", "interaction_modal.title.follow": "לעקוב אחרי {name}", "interaction_modal.title.reblog": "להדהד את החצרוץ של {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "סטטיסטיקות שרת:", "sign_in_banner.create_account": "יצירת חשבון", "sign_in_banner.sign_in": "התחברות", + "sign_in_banner.sso_redirect": "התחברות/הרשמה", "sign_in_banner.text": "יש להתחבר כדי לעקוב אחרי משתמשים או תגיות, לחבב, לשתף ולענות להודעות. ניתן גם לתקשר מהחשבון שלך עם שרת אחר.", "status.admin_account": "פתח/י ממשק ניהול עבור @{name}", "status.admin_domain": "פתיחת ממשק ניהול עבור {domain}", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 9be65015b2..aea8e5e231 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -176,7 +176,6 @@ "conversation.open": "वार्तालाप देखें", "conversation.with": "{names} के साथ", "copypaste.copied": "कॉपी किआ जा चूका है", - "copypaste.copy": "कॉपी", "directory.federated": "ज्ञात फेडीवर्स से", "directory.local": "केवल {domain} से", "directory.new_arrivals": "नए आगंतुक", @@ -285,7 +284,6 @@ "interaction_modal.description.reply": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट का जवाब दे सकते हैं।", "interaction_modal.on_another_server": "एक अलग सर्वर पर", "interaction_modal.on_this_server": "इस सर्वर पे", - "interaction_modal.preamble": "चूंकि मास्टोडन डेसेंट्रलीसेड है, यदि आपके पास इस पर कोई अकाउंट नहीं है, तो आप किसी अन्य मास्टोडन सर्वर या संगत प्लेटफ़ॉर्म द्वारा होस्ट किए गए अपने मौजूदा अकाउंट का उपयोग कर सकते हैं।", "interaction_modal.title.follow": "फॉलो {name}", "interaction_modal.title.reblog": "बूस्ट {name} की पोस्ट", "interaction_modal.title.reply": "{name} की पोस्ट पे रिप्लाई करें", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index c4a2cadef2..758f1b1e9a 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -191,7 +191,6 @@ "conversation.open": "Beszélgetés megtekintése", "conversation.with": "Velük: {names}", "copypaste.copied": "Másolva", - "copypaste.copy": "Másolás", "copypaste.copy_to_clipboard": "Másolás vágólapra", "directory.federated": "Az ismert fediverzumból", "directory.local": "Csak {domain} tartományból", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Általános", "home.column_settings.show_reblogs": "Megtolások megjelenítése", "home.column_settings.show_replies": "Válaszok megjelenítése", - "home.explore_prompt.body": "A saját hírfolyam a követésre kiválasztott hashtagek, a követésre kiválasztott személyek és az általuk népszerűsített bejegyzések keverékét tartalmazza. Ez most elég csendesnek tűnik, szóval mit szólnál ehhez:", + "home.explore_prompt.body": "A saját hírfolyam a követésre kiválasztott hashtagek, a követésre kiválasztott személyek és az általuk népszerűsített bejegyzések keverékét tartalmazza. Ha csendesnek tűnik, akkor megpróbálhatod ezeket:", "home.explore_prompt.title": "Ez a kezdőpontod a Mastodonon belül.", "home.hide_announcements": "Közlemények elrejtése", "home.show_announcements": "Közlemények megjelenítése", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövetheted {name} fiókot, hogy lásd a bejegyzéseit a saját hírfolyamodban.", "interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolhatod ezt a bejegyzést, hogy megoszd a saját követőiddel.", "interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatsz erre a bejegyzésre.", + "interaction_modal.login.action": "Vigyen haza", + "interaction_modal.login.prompt": "A saját kiszolgálód tartományneve, pl.: mastodon.social", + "interaction_modal.no_account_yet": "Nem vagy Mastodonon?", "interaction_modal.on_another_server": "Másik kiszolgálón", "interaction_modal.on_this_server": "Ezen a kiszolgálón", - "interaction_modal.other_server_instructions": "Másold és illeszd be ezt a webcímet a kedvenc Mastodon alkalmazásod vagy a Mastodon-kiszolgálód webes felületének keresőmezőjébe.", - "interaction_modal.preamble": "Mivel a Mastodon decentralizált, használhatod egy másik Mastodon kiszolgálón, vagy kompatibilis szolgáltatáson lévő fiókodat, ha ezen a kiszolgálón nincs fiókod.", + "interaction_modal.sign_in": "Nem vagy bejelentkezve ezen a kiszolgálón. Hol van a fiókod hosztolva?", + "interaction_modal.sign_in_hint": "Tip: Ez az a weboldal, ahol regisztráltál. Ha nem emlékszel, keresd meg az üdvözlőlevelet a bejövő leveleid között. Beírhatod a teljes felhasználónevedet is! (pl.: @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "{name} bejegyzésének megjelölése kedvencként", "interaction_modal.title.follow": "{name} követése", "interaction_modal.title.reblog": "{name} bejegyzésének megtolása", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Kiszolgálóstatisztika:", "sign_in_banner.create_account": "Fiók létrehozása", "sign_in_banner.sign_in": "Bejelentkezés", + "sign_in_banner.sso_redirect": "Bejelentkezés vagy regisztráció", "sign_in_banner.text": "Jelentkezz be profilok vagy hashtagek követéséhez, kedvencnek jelöléséhez, bejegyzések megosztásához, megválaszolásához. A fiókodból más kiszolgálókon is kommunikálhatsz.", "status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz", "status.admin_domain": "Moderációs felület megnyitása {domain} esetében", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 5e4f16c150..03350bb723 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -157,7 +157,6 @@ "conversation.open": "Դիտել խօսակցութիւնը", "conversation.with": "{names}-ի հետ", "copypaste.copied": "Պատճէնուած է", - "copypaste.copy": "Պատճէնել", "directory.federated": "Յայտնի դաշնեզերքից", "directory.local": "{domain} տիրոյթից միայն", "directory.new_arrivals": "Նորեկներ", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index e898d8efd6..42fc9f98e1 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -181,7 +181,6 @@ "conversation.open": "Lihat percakapan", "conversation.with": "Dengan {names}", "copypaste.copied": "Disalin", - "copypaste.copy": "Salin", "copypaste.copy_to_clipboard": "Salin ke clipboard", "directory.federated": "Dari fediverse yang dikenal", "directory.local": "Dari {domain} saja", @@ -295,7 +294,6 @@ "interaction_modal.description.reply": "Dengan sebuah akun di Mastodon, Anda bisa menanggapi kiriman ini.", "interaction_modal.on_another_server": "Di server lain", "interaction_modal.on_this_server": "Di server ini", - "interaction_modal.preamble": "Karena Mastodon itu terdesentralisasi, Anda dapat menggunakan akun Anda yang sudah ada yang berada di server Mastodon lain atau platform yang kompatibel jika Anda tidak memiliki sebuah akun di sini.", "interaction_modal.title.follow": "Ikuti {name}", "interaction_modal.title.reblog": "Boost kiriman {name}", "interaction_modal.title.reply": "Balas ke kiriman {name}", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 443c73e4ce..cfefd43992 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -160,7 +160,6 @@ "conversation.open": "Videz konverso", "conversation.with": "Kun {names}", "copypaste.copied": "Kopiesis", - "copypaste.copy": "Kopiez", "directory.federated": "De savita fediverso", "directory.local": "De {domain} nur", "directory.new_arrivals": "Nova venanti", @@ -252,7 +251,6 @@ "interaction_modal.description.reply": "Per konto che Mastodon, vu povas respondar ca posto.", "interaction_modal.on_another_server": "Che diferanta servilo", "interaction_modal.on_this_server": "Che ca servilo", - "interaction_modal.preamble": "Pro ke Mastodon esas necentraligita, on povas uzar vua havata konto quo hostigesas altra servilo di Mastodon o konciliebla metodo se on ne havas konto hike.", "interaction_modal.title.follow": "Sequez {name}", "interaction_modal.title.reblog": "Bustizez posto di {name}", "interaction_modal.title.reply": "Respondez posto di {name}", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 38edc2b5e3..edd4ac30c2 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -191,7 +191,6 @@ "conversation.open": "Skoða samtal", "conversation.with": "Við {names}", "copypaste.copied": "Afritað", - "copypaste.copy": "Afrita", "copypaste.copy_to_clipboard": "Afrita á klippispjald", "directory.federated": "Frá samtengdum vefþjónum", "directory.local": "Einungis frá {domain}", @@ -303,7 +302,6 @@ "home.column_settings.basic": "Einfalt", "home.column_settings.show_reblogs": "Sýna endurbirtingar", "home.column_settings.show_replies": "Birta svör", - "home.explore_prompt.body": "Heimastreymið inniheldur blöndu af færslum frá þeim myllumerkjum sem þú hefur valið að fylgjast með, fólki sem þú hefur valið að fylgja, og færslunum sem þau endurbirta. Það lítur út fyrir að vera lítið að ske í augnablikinu, svo hvað með að:", "home.explore_prompt.title": "Þetta er bækistöð þín innan Loðfílsins.", "home.hide_announcements": "Fela auglýsingar", "home.show_announcements": "Birta auglýsingar", @@ -311,10 +309,12 @@ "interaction_modal.description.follow": "Með notandaaðgangi á Mastodon geturðu fylgst með {name} og fengið færslur frá viðkomandi í heimastreymið þitt.", "interaction_modal.description.reblog": "Með notandaaðgangi á Mastodon geturðu endurbirt þessa færslu til að deila henni með þeim sem fylgjast með þér.", "interaction_modal.description.reply": "Með notandaaðgangi á Mastodon geturðu svarað þessari færslu.", + "interaction_modal.login.action": "Fara á heimastreymið mitt", + "interaction_modal.login.prompt": "Lén heimanetþjónsins þíns, t.d. mastodon.social", + "interaction_modal.no_account_yet": "Ekki á Mastodon?", "interaction_modal.on_another_server": "Á öðrum netþjóni", "interaction_modal.on_this_server": "Á þessum netþjóni", - "interaction_modal.other_server_instructions": "Afritaðu og límdu þessa slóð inn í leitarreit Mastodon-forrits þess sem þú vilt nota eða í vefviðmóti Mastodon-netþjónsins þíns.", - "interaction_modal.preamble": "Þar sem Mastodon er dreifhýst kerfi, þá geturðu notað aðgang sem er hýstur á öðrum Mastodon-þjóni eða öðru samhæfðu kerfi, ef þú ert ekki með notandaaðgang á þessum hér.", + "interaction_modal.sign_in": "Þú ert ekki skráð/ur inn á þennan netþjón. Hvar er aðgangurinn þinn hýstur?", "interaction_modal.title.favourite": "Setja færsluna frá {name} í eftirlæti", "interaction_modal.title.follow": "Fylgjast með {name}", "interaction_modal.title.reblog": "Endurbirta færsluna frá {name}", @@ -596,6 +596,7 @@ "server_banner.server_stats": "Tölfræði þjóns:", "sign_in_banner.create_account": "Búa til notandaaðgang", "sign_in_banner.sign_in": "Skrá inn", + "sign_in_banner.sso_redirect": "Skrá inn eða nýskrá", "sign_in_banner.text": "Skráðu þig inn til að fylgjast með notendum eða myllumerkjum, svara færslum, deila þeim eða setja í eftirlæti. Þú getur einnig átt í samskiptum á aðgangnum þínum á öðrum netþjónum.", "status.admin_account": "Opna umsjónarviðmót fyrir @{name}", "status.admin_domain": "Opna umsjónarviðmót fyrir @{domain}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index d78514073c..aedeb71785 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -191,7 +191,6 @@ "conversation.open": "Visualizza conversazione", "conversation.with": "Con {names}", "copypaste.copied": "Copiato", - "copypaste.copy": "Copia", "copypaste.copy_to_clipboard": "Copia negli Appunti", "directory.federated": "Da un fediverse noto", "directory.local": "Solo da {domain}", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Con un profilo di Mastodon, puoi seguire {name} per ricevere i suoi post nel feed della tua home.", "interaction_modal.description.reblog": "Con un profilo di Mastodon, puoi rebloggare questo post per condividerlo con i tuoi seguaci.", "interaction_modal.description.reply": "Con un profilo di Mastodon, puoi rispondere a questo post.", + "interaction_modal.login.action": "Torna all’inizio", + "interaction_modal.login.prompt": "Dominio del tuo server principale, ad esempio mastodon.social", + "interaction_modal.no_account_yet": "Non su Mastodon?", "interaction_modal.on_another_server": "Su un altro server", "interaction_modal.on_this_server": "Su questo server", - "interaction_modal.other_server_instructions": "Copia e incolla questo URL nel campo di ricerca della tua app Mastodon preferita o nell'interfaccia web del tuo server Mastodon.", - "interaction_modal.preamble": "Poiché Mastodon è decentralizzato, puoi utilizzare il tuo profilo esistente ospitato da un altro server di Mastodon on piattaforma compatibile, se non hai un profilo su questo.", + "interaction_modal.sign_in": "Non sei connesso a questo server. Dove è ospitato il tuo account?", + "interaction_modal.sign_in_hint": "Suggerimento: questo è il sito in cui ti sei registrato. Se non ti ricordi, cerca l'e-mail di benvenuto nella tua casella di posta. Puoi anche inserire il tuo nome utente completo! (es. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Contrassegna il post di {name} come preferito", "interaction_modal.title.follow": "Segui {name}", "interaction_modal.title.reblog": "Reblogga il post di {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Statistiche del server:", "sign_in_banner.create_account": "Crea un profilo", "sign_in_banner.sign_in": "Accedi", + "sign_in_banner.sso_redirect": "Accedi o Registrati", "sign_in_banner.text": "Accedi per seguire profili o hashtag, condividere, rispondere e aggiungere post ai preferiti. Puoi anche interagire dal tuo account su un server diverso.", "status.admin_account": "Apri interfaccia di moderazione per @{name}", "status.admin_domain": "Apri l'interfaccia di moderazione per {domain}", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 91b7255ebd..4a2473c430 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -191,7 +191,6 @@ "conversation.open": "会話を表示", "conversation.with": "{names}", "copypaste.copied": "コピーしました", - "copypaste.copy": "コピー", "copypaste.copy_to_clipboard": "クリップボードにコピー", "directory.federated": "既知の連合より", "directory.local": "{domain} のみ", @@ -303,7 +302,7 @@ "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_replies": "返信表示", - "home.explore_prompt.body": "ユーザーやハッシュタグをフォローすると、この「ホーム」タイムラインに投稿やブーストが流れるようになります。タイムラインをもう少し、にぎやかにしてみませんか?", + "home.explore_prompt.body": "ユーザーやハッシュタグをフォローすると、この「ホーム」タイムラインに投稿やブーストが流れるようになります。タイムラインをもう少しにぎやかにしてみませんか?", "home.explore_prompt.title": "Mastodonのタイムラインへようこそ。", "home.hide_announcements": "お知らせを隠す", "home.show_announcements": "お知らせを表示", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Mastodonのアカウントで{name}さんをフォローしてホームフィードで投稿を受け取れます。", "interaction_modal.description.reblog": "Mastodonのアカウントでこの投稿をブーストして自分のフォロワーに共有できます。", "interaction_modal.description.reply": "Mastodonのアカウントでこの投稿に反応できます。", + "interaction_modal.login.action": "サーバーに移動", + "interaction_modal.login.prompt": "登録したサーバーのドメイン (例: mastodon.social)", + "interaction_modal.no_account_yet": "Mastodonにアカウントがない場合は", "interaction_modal.on_another_server": "別のサーバー", "interaction_modal.on_this_server": "このサーバー", - "interaction_modal.other_server_instructions": "以下のURLをコピーして、Mastodon対応アプリや自分のサーバーの検索欄に貼り付けます。", - "interaction_modal.preamble": "Mastodonは分散化されているためアカウントを持っていなくても別のMastodonサーバーまたは互換性のあるプラットフォームでホストされているアカウントを使用できます。", + "interaction_modal.sign_in": "このサーバーにアカウントがなくても、ほかのサーバーや互換性のあるプラットフォームのアカウントを使用できます。", + "interaction_modal.sign_in_hint": "ワンポイント: ここでは自分のアカウントのドメインを入力します。うまくいかない場合はドメインまで含めた完全なユーザー名を入力してみてください (例: @Mastodon@mastodon.social)。ドメインやユーザー名は登録完了時のメールに記載されています。", "interaction_modal.title.favourite": "{name}さんの投稿をお気に入り登録", "interaction_modal.title.follow": "{name}さんをフォロー", "interaction_modal.title.reblog": "{name}さんの投稿をブースト", @@ -363,7 +365,7 @@ "lightbox.previous": "前", "limited_account_hint.action": "構わず表示する", "limited_account_hint.title": "このプロフィールは{domain}のモデレーターによって非表示にされています。", - "link_preview.author": "{name} が作成", + "link_preview.author": "{name}", "lists.account.add": "リストに追加", "lists.account.remove": "リストから外す", "lists.delete": "リストを削除", @@ -596,6 +598,7 @@ "server_banner.server_stats": "サーバーの情報", "sign_in_banner.create_account": "アカウント作成", "sign_in_banner.sign_in": "ログイン", + "sign_in_banner.sso_redirect": "ログインまたは登録", "sign_in_banner.text": "アカウントがあればユーザーやハッシュタグをフォローしたり、投稿のお気に入り登録やブースト、投稿への返信ができます。別のサーバーのユーザーとの交流も可能です。", "status.admin_account": "@{name}さんのモデレーション画面を開く", "status.admin_domain": "{domain}のモデレーション画面を開く", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index d13a80fa03..487fede3fe 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -135,7 +135,6 @@ "conversation.open": "Ssken adiwenni", "conversation.with": "Akked {names}", "copypaste.copied": "Yettwanɣel", - "copypaste.copy": "Nγel", "directory.federated": "Deg fedivers yettwasnen", "directory.local": "Seg {domain} kan", "directory.new_arrivals": "Imaynuten id yewḍen", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 9e4855efde..6416d695ee 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -136,7 +136,6 @@ "conversation.mark_as_read": "Оқылды деп белгіле", "conversation.open": "Пікірталасты қарау", "conversation.with": "{names} атты", - "copypaste.copy": "Көшіру", "directory.federated": "Танымал желіден", "directory.local": "Тек {domain} доменінен", "directory.new_arrivals": "Жаңадан келгендер", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index ea887b32dc..b32cf7c5fe 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -191,7 +191,6 @@ "conversation.open": "대화 보기", "conversation.with": "{names} 님과", "copypaste.copied": "복사됨", - "copypaste.copy": "복사", "copypaste.copy_to_clipboard": "클립보드에 복사", "directory.federated": "알려진 연합우주로부터", "directory.local": "{domain}에서만", @@ -202,7 +201,7 @@ "dismissable_banner.community_timeline": "여기 있는 것들은 계정이 {domain}에 있는 사람들의 최근 공개 게시물들입니다.", "dismissable_banner.dismiss": "지우기", "dismissable_banner.explore_links": "이 소식들은 오늘 소셜 웹에서 가장 많이 공유된 내용들입니다. 새 소식을 더 많은 사람들이 공유할수록 높은 순위가 됩니다.", - "dismissable_banner.explore_statuses": "이 게시물들은 오늘 소셜 웹에서 호응을 얻고 있는 것들입니다. 부스트와 관심을 받는 새로운 글들이 높은 순위가 됩니다", + "dismissable_banner.explore_statuses": "오늘 소셜 웹에서 호응을 얻고 있는게시물입니다. 부스트와 좋아요를 받는 새로운 게시물이 높은 순위가 됩니다", "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.", "dismissable_banner.public_timeline": "이것들은 {domain}에 있는 사람들이 팔로우한 사람들의 최신 게시물들입니다.", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", @@ -231,8 +230,8 @@ "empty_column.direct": "개인적인 멘션이 없습니다. 보내거나 받으면 여기에 표시됩니다.", "empty_column.domain_blocks": "아직 차단한 도메인이 없습니다.", "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!", - "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.", - "empty_column.favourites": "아직 아무도 이 게시물을 마음에 들어하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.", + "empty_column.favourited_statuses": "아직 좋아요한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.", + "empty_column.favourites": "아직 아무도 이 게시물을 좋아요를 하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.", "empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.", "empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.", "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.", @@ -303,19 +302,22 @@ "home.column_settings.basic": "기본", "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", - "home.explore_prompt.body": "내 홈 피드는 내가 팔로우한 해시태그를 가진 게시물, 내가 팔로우한 사람들의 게시물, 그들이 부스트한 게시물들이 다같이 나타납니다. 아직은 조용하네요, 이렇게 해보는 게 어떠신가요:", + "home.explore_prompt.body": "홈 피드에는 내가 팔로우한 해시태그 그리고 팔로우한 사람과 부스트가 함께 나타나요. 너무 고요하게 느껴진다면, 다음 것들을 살펴볼 수 있어요:", "home.explore_prompt.title": "이것은 마스토돈에 있는 내 본거지입니다.", "home.hide_announcements": "공지사항 숨기기", "home.show_announcements": "공지사항 보기", - "interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 마음에 들어 하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.", + "interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 좋아하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.", "interaction_modal.description.follow": "마스토돈 계정을 통해, {name} 님을 팔로우 하고 그의 게시물을 홈 피드에서 받아 볼 수 있습니다.", "interaction_modal.description.reblog": "마스토돈 계정을 통해, 이 게시물을 부스트 하고 자신의 팔로워들에게 공유할 수 있습니다.", "interaction_modal.description.reply": "마스토돈 계정을 통해, 이 게시물에 응답할 수 있습니다.", + "interaction_modal.login.action": "홈 서버로 가기", + "interaction_modal.login.prompt": "내 홈 서버의 도메인. 예시: mastodon.social", + "interaction_modal.no_account_yet": "Mastodon 계정이 없나요?", "interaction_modal.on_another_server": "다른 서버에", "interaction_modal.on_this_server": "이 서버에서", - "interaction_modal.other_server_instructions": "주로 이용하는 마스토돈 앱이나 마스토돈 서버의 웹 인터페이스 내 검색 영역에 이 URL을 복사 및 붙여넣기 하세요.", - "interaction_modal.preamble": "마스토돈은 분산화 되어 있기 때문에, 이곳에 계정이 없더라도 다른 곳에서 운영되는 마스토돈 서버나 호환 되는 플랫폼에 있는 계정을 사용할 수 있습니다.", - "interaction_modal.title.favourite": "{name} 님의 게시물을 마음에 들어하기", + "interaction_modal.sign_in": "이 서버에 로그인되어 있지 않습니다. 계정이 어디에 속해 있나요?", + "interaction_modal.sign_in_hint": "팁: 여러분이 가입한 사이트입니다. 만약 기억이 나지 않는다면 가입환영 이메일을 찾아보는 것도 좋습니다. 전체 사용자이름(예: @mastodon@mastodon.social)을 넣어도 됩니다!", + "interaction_modal.title.favourite": "{name} 님의 게시물을 좋아요하기", "interaction_modal.title.follow": "{name} 님을 팔로우", "interaction_modal.title.reblog": "{name} 님의 게시물을 부스트", "interaction_modal.title.reply": "{name} 님의 게시물에 답글", @@ -413,7 +415,7 @@ "not_signed_in_indicator.not_signed_in": "이 정보에 접근하려면 로그인을 해야 합니다.", "notification.admin.report": "{name} 님이 {target}를 신고했습니다", "notification.admin.sign_up": "{name} 님이 가입했습니다", - "notification.favourite": "{name} 님이 내 게시물을 마음에 들어했습니다", + "notification.favourite": "{name} 님이 내 게시물을 좋아합니다", "notification.follow": "{name} 님이 나를 팔로우했습니다", "notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다", "notification.mention": "{name} 님의 멘션", @@ -512,7 +514,7 @@ "privacy_policy.title": "개인정보처리방침", "refresh": "새로고침", "regeneration_indicator.label": "불러오는 중…", - "regeneration_indicator.sublabel": "당신의 홈 피드가 준비되는 중입니다!", + "regeneration_indicator.sublabel": "홈 피드를 준비하고 있습니다!", "relative_time.days": "{number}일 전", "relative_time.full.days": "{number} 일 전", "relative_time.full.hours": "{number} 시간 전", @@ -596,6 +598,7 @@ "server_banner.server_stats": "서버 통계:", "sign_in_banner.create_account": "계정 생성", "sign_in_banner.sign_in": "로그인", + "sign_in_banner.sso_redirect": "로그인 또는 가입하기", "sign_in_banner.text": "로그인을 통해 프로필이나 해시태그를 팔로우하거나 마음에 들어하거나 공유하고 답글을 달 수 있습니다. 다른 서버에 있는 본인의 계정을 통해 참여할 수도 있습니다.", "status.admin_account": "@{name}에 대한 중재 화면 열기", "status.admin_domain": "{domain}에 대한 중재 화면 열기", @@ -612,7 +615,7 @@ "status.edit": "수정", "status.edited": "{date}에 수정함", "status.edited_x_times": "{count}번 수정됨", - "status.embed": "공유하기", + "status.embed": "임베드", "status.favourite": "좋아요", "status.filter": "이 게시물을 필터", "status.filtered": "필터로 걸러짐", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index bacd599102..24f01c6b1a 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -176,7 +176,6 @@ "conversation.open": "Axaftinê nîşan bide", "conversation.with": "Bi {names} re", "copypaste.copied": "Hate jêgirtin", - "copypaste.copy": "Jê bigire", "directory.federated": "Ji fediversên naskirî", "directory.local": "Tenê ji {domain}", "directory.new_arrivals": "Kesên ku nû hatine", @@ -281,7 +280,6 @@ "interaction_modal.description.reply": "Bi ajimêrekê li ser Mastodon, tu dikarî bersiva vê şandiyê bidî.", "interaction_modal.on_another_server": "Li ser rajekareke cuda", "interaction_modal.on_this_server": "Li ser ev rajekar", - "interaction_modal.preamble": "Ji ber ku Mastodon nenavendî ye, tu dikarî ajimêrê xwe ya heyî ku ji aliyê rajekarek din a Mastodon an platformek lihevhatî ve hatî pêşkêşkirin bi kar bînî ku ajimêrê te li ser vê yekê tune be.", "interaction_modal.title.follow": "{name} bişopîne", "interaction_modal.title.reblog": "Şandiyê {name} bilind bike", "interaction_modal.title.reply": "Bersivê bide şandiyê {name}", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 3e96087281..cff2aa4adf 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -177,7 +177,6 @@ "conversation.open": "Skatīt sarunu", "conversation.with": "Ar {names}", "copypaste.copied": "Nokopēts", - "copypaste.copy": "Kopēt", "copypaste.copy_to_clipboard": "Kopēt uz starpliktuvi", "directory.federated": "No pazīstamas federācijas", "directory.local": "Tikai no {domain}", @@ -287,7 +286,6 @@ "interaction_modal.description.reply": "Ar Mastodon kontu tu vari atbildēt uz šo ziņu.", "interaction_modal.on_another_server": "Citā serverī", "interaction_modal.on_this_server": "Šajā serverī", - "interaction_modal.preamble": "Tā kā Mastodon ir decentralizēts, tu vari izmantot savu esošo kontu, ko mitina cits Mastodon serveris vai saderīga platforma, ja tev nav konta šajā serverī.", "interaction_modal.title.follow": "Sekot {name}", "interaction_modal.title.reblog": "Pastiprināt {name} ierakstu", "interaction_modal.title.reply": "Atbildēt uz {name} ziņu", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 630d5c430e..dfc9f98cfe 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -136,7 +136,6 @@ "conversation.open": "സംഭാഷണം കാണുക", "conversation.with": "{names} കൂടെ", "copypaste.copied": "പകർത്തി", - "copypaste.copy": "പകര്‍ത്തുക", "directory.federated": "അറിയപ്പെടുന്ന ഫെഡിവേഴ്‌സ്ൽ നിന്ന്", "directory.local": "{domain} ൽ നിന്ന് മാത്രം", "directory.new_arrivals": "പുതിയ വരവുകൾ", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 126df3a7e8..abb2f474d6 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -137,7 +137,6 @@ "interaction_modal.description.reply": "मॅस्टोडॉनवरील खात्यासह, तुम्ही या पोस्टला प्रतिसाद देऊ शकता.", "interaction_modal.on_another_server": "वेगळ्या सर्व्हरवर", "interaction_modal.on_this_server": "या सर्व्हरवर", - "interaction_modal.preamble": "मास्टोडॉन विकेंद्रित असल्याने, तुमचे खाते नसेल तर तुम्ही दुसरे मॅस्टोडॉन सर्व्हर किंवा सुसंगत प्लॅटफॉर्मद्वारे होस्ट केलेले तुमचे विद्यमान खाते वापरू शकता.", "interaction_modal.title.follow": "{name} चे अनुसरण करा", "interaction_modal.title.reblog": "{name} ची पोस्ट बूस्ट करा", "interaction_modal.title.reply": "{name} च्या पोस्टला उत्तर द्या", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index a1f1d61f3d..653396cf5c 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -173,7 +173,6 @@ "conversation.open": "Lihat perbualan", "conversation.with": "Dengan {names}", "copypaste.copied": "Disalin", - "copypaste.copy": "Salin", "directory.federated": "Dari fediverse yang diketahui", "directory.local": "Dari {domain} sahaja", "directory.new_arrivals": "Ketibaan baharu", @@ -280,7 +279,6 @@ "interaction_modal.description.reply": "Dengan akaun pada Mastodon, anda boleh membalas kepada hantaran ini.", "interaction_modal.on_another_server": "Di pelayan lain", "interaction_modal.on_this_server": "Pada pelayan ini", - "interaction_modal.preamble": "Oleh sebab Mastodon terpencar, anda boleh menggunakan akaun sedia ada anda yang dihos oleh pelayan Mastodon lain atau platform yang serasi jika anda tidak mempunyai akaun pada platform ini.", "interaction_modal.title.follow": "Ikuti {name}", "interaction_modal.title.reblog": "Galak hantaran {name}", "interaction_modal.title.reply": "Balas siaran {name}", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index fadc89a7bd..cd3858ae72 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -1,9 +1,9 @@ { - "about.blocks": "ထိန်းချုပ်ထားသော ဆာဗာများ", + "about.blocks": "ထိန်းချုပ်မှုရှိသော ဆာဗာများ", "about.contact": "ဆက်သွယ်ရန်:", - "about.disclaimer": "Mastodon သည် အခမဲ့ဖြစ်ပြီး open-source software နှင့် Mastodon gGmbH ၏ ကုန်အမှတ်တံဆိပ်တစ်ခုဖြစ်သည်။", + "about.disclaimer": "Mastodon သည် အခမဲ့ဖြစ်ပြီး open-source software နှင့် Mastodon gGmbH ၏ ကုန်အမှတ်တံဆိပ်တစ်ခုဖြစ်သည်။.", "about.domain_blocks.no_reason_available": "အကြောင်းပြချက်မရှိပါ", - "about.domain_blocks.preamble": "Mastodon သည် ယေဘူယျအားဖြင့် သင့်အား အစုအဝေးရှိ အခြားဆာဗာများမှ အသုံးပြုသူများထံမှ အကြောင်းအရာများကို ကြည့်ရှုပြီး အပြန်အလှန် တုံ့ပြန်နိုင်စေပါသည်။ ဤအရာများသည် ဤအထူးဆာဗာတွင် ပြုလုပ်ထားသော ခြွင်းချက်ဖြစ်သည်။", + "about.domain_blocks.preamble": "Mastodon သည် ယေဘုယျအားဖြင့် fediverse ရှိ အခြား​ဆာဗာ အသုံးပြုသူများထံမှ အကြောင်းအရာများကို ကြည့်ရှုနိုင်သည့်အပြင် အပြန်အလှန်တုံ့ပြန်နိုင်စေပါသည်။ ဤသည်တို့မှာ သီးခြားဆာဗာများအတွက် ပြုလုပ်ထားသောအရာများဖြစ်သည်။", "about.domain_blocks.silenced.explanation": "ရှင်းရှင်းလင်းလင်း ရှာကြည့်ခြင်း သို့မဟုတ် လိုက်ကြည့်ခြင်းဖြင့် ၎င်းကို ရွေးချယ်ခြင်းမှလွဲ၍ ဤဆာဗာမှ ပရိုဖိုင်များနှင့် အကြောင်းအရာများကို ယေဘုယျအားဖြင့် သင်သည် မမြင်ရပါ။", "about.domain_blocks.silenced.title": "ကန့်သတ်ထားသော", "about.domain_blocks.suspended.explanation": "ဤဆာဗာမှ ဒေတာများကို စီမံဆောင်ရွက်ခြင်း၊ သိမ်းဆည်းခြင်း သို့မဟုတ် ဖလှယ်ခြင်း မပြုဘဲ၊ ဤဆာဗာမှ အသုံးပြုသူများနှင့် အပြန်အလှန် ဆက်သွယ်မှု သို့မဟုတ် ဆက်သွယ်မှုတို့ကို မဖြစ်နိုင်အောင် ပြုလုပ်ပေးမည်မဟုတ်ပါ။", @@ -31,7 +31,7 @@ "account.featured_tags.last_status_never": "ပို့စ်တင်ထားခြင်းမရှိပါ", "account.featured_tags.title": "ဖော်ပြထားသောဟက်ရှ်တက်ခ်များ", "account.follow": "စောင့်ကြည့်", - "account.followers": "စောင့်ကြည့်သူ", + "account.followers": "စောင့်ကြည့်သူများ", "account.followers.empty": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။", "account.followers_counter": "{count, plural, one {စောင့်ကြည့်သူ {counter}} other {စောင့်ကြည့်သူများ {counter}}}", "account.following": "စောင့်ကြည့်နေသည်", @@ -181,6 +181,7 @@ "confirmations.mute.explanation": "၎င်းသည် ၎င်းတို့ထံမှ ပို့စ်များနှင့် ၎င်းတို့ကို ဖော်ပြထားသော ပို့စ်များကို ဖျောက်ထားမည်ဖြစ်ပြီး၊ သို့သော် ၎င်းတို့သည် သင့်ပို့စ်များကို မြင်နိုင်ပြီး သင့်အား လိုက်ကြည့်နိုင်စေမည်ဖြစ်သည်။", "confirmations.mute.message": "{name} ကို မမြင်လိုသည်မှာ သေချာပါသလား။ ", "confirmations.redraft.confirm": "ဖျက်ပြီး ပြန်လည်ရေးမည်။", + "confirmations.redraft.message": "သင် ဒီပိုစ့်ကိုဖျက်ပြီး ပြန်တည်းဖြတ်မှာ သေချာပြီလား။ ကြယ်ပွင့်​တွေ နဲ့ ပြန်မျှ​ဝေမှု​တွေကိုဆုံးရှုံးမည်။မူရင်းပို့စ်ဆီကို ပြန်စာ​တွေမှာလည်း​ \nပိုစ့်ကို​တွေ့ရမည်မဟုတ်​တော့ပါ။.", "confirmations.reply.confirm": "စာပြန်မည်", "confirmations.reply.message": "စာပြန်လျှင်ယခင်စာများကိုအလိုအလျောက်ပျက်သွားစေမည်။ ဆက်လက်လုပ်ဆောင်မည်လား?", "confirmations.unfollow.confirm": "စောင့်ကြည့်ခြင်းအား ပယ်ဖျက်မည်", @@ -190,7 +191,6 @@ "conversation.open": "Conversation ကိုကြည့်မည်", "conversation.with": "{အမည်များ} ဖြင့်", "copypaste.copied": "ကူယူပြီးပါပြီ", - "copypaste.copy": "ကူးယူပါ", "copypaste.copy_to_clipboard": "ကလစ်ဘုတ်သို့ ကူးပါ", "directory.federated": "သင် သိသော ဖက်ဒီမှ", "directory.local": "{domain} မှသာလျှင်\n", @@ -201,6 +201,7 @@ "dismissable_banner.community_timeline": "အကောင့်များမှ လတ်တလောတင်ထားသည့်အများမြင်ပို့စ်များမှာ {domain} တွင် တင်ထားသောပို့စ်များဖြစ်သည်။", "dismissable_banner.dismiss": "ပယ်ရန်", "dismissable_banner.explore_links": "ဤသတင်းများကို ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများမှ လူများက ပြောဆိုနေကြပါသည်။", + "dismissable_banner.explore_statuses": "ဒီ​နေ့အတွက် လူမှုကွန်ရက်​ပေါ်မှာ စိတ်ဝင်စားမှူများ​နေတဲ့ ပို့စ်​တွေရှိပါတယ်။ပြန်မျှ​ဝေမှုနဲ့ကြယ်ပွင့်များ တဲ့ပိုစ့်အသစ်​တွေကို ပိုမြင်ရမှာပါ။.", "dismissable_banner.explore_tags": "ဤ hashtag များသည် ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများပေါ်ရှိ လူများကြားတွင် ဆွဲဆောင်မှုရှိလာပါသည်", "dismissable_banner.public_timeline": "ဤအရာများသည် {domain} ရှိလူများ လိုက်နာသော လူမှုဝဘ်ပေါ်ရှိ လူများထံမှ လတ်တလော အများမြင်ပို့စ်များဖြစ်သည်။", "embed.instructions": "Embed this status on your website by copying the code below.", @@ -301,7 +302,7 @@ "home.column_settings.basic": "အခြေခံ", "home.column_settings.show_reblogs": "Boost များကို ပြပါ", "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ", - "home.explore_prompt.body": "သင့်ပင်မစာမျက်နှာတွင် သင်စောင့်ကြည့်ရန်ရွေးချယ်ထားသော hashtag များမှ ပို့စ်များ၊ စောင့်ကြည့်ထားသူများနှင့် ၎င်းတို့ boost လုပ်ထားသော ပို့စ်များ ပြထားပါလိမ့်မည်။ ယခု ပင်မစာမျက်နှာမှာ ငြိမ်သက်နေပါသည်။", + "home.explore_prompt.body": "သင့်ရဲ့သတင်းစဥ် မှာ သင် စောင့်ကြည့်​နေတယ့် ခေါင်းစဥ်​တွေ၊သင်​စောင့်ကြည့်​နေတယ့်အ​ကောင့်​တွေ နဲ့ အဆိုပါ အ​ကောင့်​တွေပြန်မျှ​ဝေထားတယ့် ပိုစ့်​တွေကို မြင်ရမှာပါ။:", "home.explore_prompt.title": "ဤသည်မှာ Mastodon ရှိ သင့်ပင်မစာမျက်နှာဖြစ်သည်။", "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ", "home.show_announcements": "ကြေညာချက်များကို ပြပါ", @@ -309,10 +310,13 @@ "interaction_modal.description.follow": "Mastodon အကောင့်ဖြင့် သင်၏ ပင်မစာမျက်နှာတွင် ၎င်းတို့၏ ပို့စ်များကို ရရှိရန်အတွက် {name} ကို စောင့်ကြည့်နိုင်ပါသည်။", "interaction_modal.description.reblog": "Mastodon အကောင့်တစ်ခုဖြင့် သင်၏စောင့်ကြည့်သူများကို မျှဝေရန်အတွက် ဤပို့စ်ကို Boost လုပ်ပါ။", "interaction_modal.description.reply": "Mastodon အကောင့်တစ်ခုဖြင့် သင် ဤပို့စ်ကို တုံ့ပြန်နိုင်ပါသည်။", + "interaction_modal.login.action": "ပင်မစာမျက်နှာသို့", + "interaction_modal.login.prompt": "သင့်ပင်မဆာဗာ၏ ဒိုမိန်း၊ ဥပမာ၊ mastodon.social", + "interaction_modal.no_account_yet": "Mastodon မှာ မဟုတ်ဘူးလား။", "interaction_modal.on_another_server": "တခြားဆာဗာပေါ်တွင်", "interaction_modal.on_this_server": "ဤဆာဗာတွင်", - "interaction_modal.other_server_instructions": "သင်အကြိုက်ဆုံး Mastodon အက်ပ် သို့မဟုတ် သင့် Mastodon ဆာဗာ၏ ဝဘ်ရှိ ရှာဖွေမှုနေရာတွင် ဤ URL ကို ကူးယူပြီး ထည့်ပါ။", - "interaction_modal.preamble": "Mastodon မှာ ဗဟိုချုပ်ကိုင်မှု မရှိခြင်းကြောင့် ဤတစ်ခုအတွက် သင့်တွင်အကောင့်မရှိပါက အခြား Mastodon ဆာဗာ သို့မဟုတ် အဆင်ပြေသောပလက်ဖောင်းတွင် ရှိသော သင့်လက်ရှိအကောင့်ဖြင့် အသုံးပြုနိုင်ပါသည်။", + "interaction_modal.sign_in": "သင်သည် ဤဆာဗာတွင် လော့ဂ်အင်မဝင်ပါ။ သင့်အကောင့်ကို မည်သည့်ဆာဗာတွင် ဖွင့်ထားပါသလဲ။", + "interaction_modal.sign_in_hint": "အကြံပြုချက် - ၎င်းသည် သင် အကောင့်ဖွင့်ထားသည့် ဝဘ်ဆိုက်ဖြစ်သည်။ မမှတ်မိပါက သင့် ဝင်စာပုံးရှိ welcome e-mail ကို ရှာပါ။ သင့်အသုံးပြုသူအမည်အပြည့်အစုံကိုလည်း ထည့်သွင်းနိုင်သည်။ (ဥပမာ @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Favorite {name} ၏ ပို့စ်", "interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်", "interaction_modal.title.reblog": "{name} ၏ ပို့စ်ကို Boost လုပ်ပါ", @@ -361,6 +365,7 @@ "lightbox.previous": "ရှေ့သို့", "limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ", "limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။", + "link_preview.author": "{name} ဖြင့်", "lists.account.add": "စာရင်းထဲသို့ထည့်ပါ", "lists.account.remove": "စာရင်းမှ ဖယ်ရှားလိုက်ပါ။", "lists.delete": "စာရင်းကိုဖျက်ပါ", @@ -593,6 +598,8 @@ "server_banner.server_stats": "ဆာဗာအား လက်ရှိအသုံးပြုသူများ -", "sign_in_banner.create_account": "အကောင့်ဖန်တီးမည်", "sign_in_banner.sign_in": "အကောင့်ဝင်မည်", + "sign_in_banner.sso_redirect": "အကောင့်ဝင်ပါ သို့မဟုတ် မှတ်ပုံတင်ပါ", + "sign_in_banner.text": "ပရိုဖိုင်များ သို့မဟုတ် hashtag များ၊ favorite၊ ပို့စ်မျှဝေမှုများနှင့် ပြန်ကြားစာများအသုံးပြုရန်အတွက် အကောင့်ဝင်ပါ။ အခြားဆာဗာပေါ်ရှိ သင့်အကောင့်မှလည်း အပြန်အလှန်ဖလှယ်နိုင်ပါသည်။", "status.admin_account": "@{name} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ", "status.admin_domain": "{domain} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ", "status.admin_status": "Open this status in the moderation interface", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index d09d472766..655afd5ed0 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -191,7 +191,6 @@ "conversation.open": "Gesprek tonen", "conversation.with": "Met {names}", "copypaste.copied": "Gekopieerd", - "copypaste.copy": "Kopiëren", "copypaste.copy_to_clipboard": "Naar klembord kopiëren", "directory.federated": "Fediverse (wat bekend is)", "directory.local": "Alleen {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Algemeen", "home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_replies": "Reacties tonen", - "home.explore_prompt.body": "Jouw starttijdlijn bevat een mix van berichten met hashtags die je hebt gekozen om te volgen, van mensen die je hebt gekozen om te volgen en berichten die ze boosten. Het ziet er nu vrij stil uit, dus wat dacht je ervan om:", + "home.explore_prompt.body": "Jouw starttijdlijn bevat een mix van berichten met hashtags die je volgt, van accounts die je volgt en van berichten die deze accounts boosten. Wanneer je dit te stil vind, kun je:", "home.explore_prompt.title": "Dit is jouw thuisbasis op Mastodon.", "home.hide_announcements": "Mededelingen verbergen", "home.show_announcements": "Mededelingen tonen", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Je kunt met een Mastodon-account {name} volgen, om zo diens berichten op jouw starttijdlijn te ontvangen.", "interaction_modal.description.reblog": "Je kunt met een Mastodon-account dit bericht boosten, om het zo met jouw volgers te delen.", "interaction_modal.description.reply": "Je kunt met een Mastodon-account op dit bericht reageren.", + "interaction_modal.login.action": "Ga naar start", + "interaction_modal.login.prompt": "Domein van jouw server, bv. mastodon.social", + "interaction_modal.no_account_yet": "Niet op Mastodon?", "interaction_modal.on_another_server": "Op een andere server", "interaction_modal.on_this_server": "Op deze server", - "interaction_modal.other_server_instructions": "Kopieer en plak eenvoudig deze URL in het zoekveld van de door jou gebruikte Mastodon-app of op de website van de Mastodon-server waarop je bent ingelogd.", - "interaction_modal.preamble": "Mastodon is gedecentraliseerd. Daarom heb je geen account op deze Mastodon-server nodig, wanneer je al een account op een andere Mastodon-server of compatibel platform hebt.", + "interaction_modal.sign_in": "Je bent niet op deze server ingelogd. Op welke server bevindt zich jouw account?", + "interaction_modal.sign_in_hint": "Tip: Dat is de website waarop je je hebt geregistreerd. Wanneer je dit bent vergeten kun je naar de welkomstmail zoeken in je inbox. Je kunt ook je volledige gebruikersnaam invullen! (bv. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Bericht van {name} als favoriet markeren", "interaction_modal.title.follow": "{name} volgen", "interaction_modal.title.reblog": "Bericht van {name} boosten", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Serverstats:", "sign_in_banner.create_account": "Registreren", "sign_in_banner.sign_in": "Inloggen", + "sign_in_banner.sso_redirect": "Inloggen of Registreren", "sign_in_banner.text": "Wanneer je een account op deze server hebt, kun je inloggen om mensen of hashtags te volgen, op berichten te reageren of om deze te delen. Wanneer je een account op een andere server hebt, kun je daar inloggen en daar ook interactie met mensen op deze server hebben.", "status.admin_account": "Moderatie-omgeving van @{name} openen", "status.admin_domain": "Moderatie-omgeving van {domain} openen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index fad76036fd..96384b1610 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -17,7 +17,7 @@ "account.badges.group": "Gruppe", "account.block": "Blokker @{name}", "account.block_domain": "Skjul alt frå {domain}", - "account.block_short": "Blokkér", + "account.block_short": "Blokker", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Sjå gjennom meir på den opphavlege profilen", "account.cancel_follow_request": "Trekk attende fylgeførespurnad", @@ -49,10 +49,10 @@ "account.mention": "Nemn @{name}", "account.moved_to": "{name} seier at deira nye konto no er:", "account.mute": "Målbind @{name}", - "account.mute_notifications_short": "Demp varsler", + "account.mute_notifications_short": "Demp varslingar", "account.mute_short": "Demp", "account.muted": "Målbunden", - "account.no_bio": "Ingen beskrivelse oppgitt.", + "account.no_bio": "Inga skildring er gjeven.", "account.open_original_page": "Opne originalsida", "account.posts": "Tut", "account.posts_with_replies": "Tut og svar", @@ -68,7 +68,7 @@ "account.unendorse": "Ikkje vis på profil", "account.unfollow": "Slutt å fylgja", "account.unmute": "Opphev målbinding av @{name}", - "account.unmute_notifications_short": "Opphev demping av varsler", + "account.unmute_notifications_short": "Opphev demping av varslingar", "account.unmute_short": "Opphev målbinding", "account_note.placeholder": "Klikk for å leggja til merknad", "admin.dashboard.daily_retention": "Mengda brukarar aktive ved dagar etter registrering", @@ -76,10 +76,10 @@ "admin.dashboard.retention.average": "Gjennomsnitt", "admin.dashboard.retention.cohort": "Registrert månad", "admin.dashboard.retention.cohort_size": "Nye brukarar", - "admin.impact_report.instance_accounts": "Kontoprofiler dette ville slettet", - "admin.impact_report.instance_followers": "Følgere våre brukere ville mistet", - "admin.impact_report.instance_follows": "Følgere deres brukere ville mistet", - "admin.impact_report.title": "Sammendrag av konsekvensene", + "admin.impact_report.instance_accounts": "Kontoprofilar dette vil sletta", + "admin.impact_report.instance_followers": "Følgjarar våre brukarar vil mista", + "admin.impact_report.instance_follows": "Følgjarar deira brukarar vil mista", + "admin.impact_report.title": "Samandrag av konsekvensane", "alert.rate_limited.message": "Ver venleg å prøv på nytt etter {retry_time, time, medium}.", "alert.rate_limited.title": "Redusert kapasitet", "alert.unexpected.message": "Det oppstod eit uventa problem.", @@ -113,6 +113,7 @@ "column.direct": "Private omtaler", "column.directory": "Sjå gjennom profilar", "column.domain_blocks": "Skjulte domene", + "column.favourites": "Favorittar", "column.firehose": "Tidslinjer", "column.follow_requests": "Fylgjeførespurnadar", "column.home": "Heim", @@ -180,6 +181,7 @@ "confirmations.mute.explanation": "Dette vil skjula innlegg som kjem frå og som nemner dei, men vil framleis la dei sjå innlegga dine og fylgje deg.", "confirmations.mute.message": "Er du sikker på at du vil målbinda {name}?", "confirmations.redraft.confirm": "Slett & skriv på nytt", + "confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opprinnelege innlegget vert foreldrelause.", "confirmations.reply.confirm": "Svar", "confirmations.reply.message": "Å svara no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?", "confirmations.unfollow.confirm": "Slutt å fylgja", @@ -189,7 +191,6 @@ "conversation.open": "Sjå samtale", "conversation.with": "Med {names}", "copypaste.copied": "Kopiert", - "copypaste.copy": "Kopier", "copypaste.copy_to_clipboard": "Kopier til utklyppstavla", "directory.federated": "Frå den kjende allheimen", "directory.local": "Berre frå {domain}", @@ -200,8 +201,9 @@ "dismissable_banner.community_timeline": "Dette er dei nylegaste offentlege innlegga frå personar med kontoar frå {domain}.", "dismissable_banner.dismiss": "Avvis", "dismissable_banner.explore_links": "Desse nyhendesakene snakkast om av folk på denne og andre tenarar på det desentraliserte nettverket no.", + "dismissable_banner.explore_statuses": "Dette er innlegg frå det desentraliserte nettverket som er i støytet i dag. Nye statusar som er mykje framheva og merkte som favorittar er rangert høgare.", "dismissable_banner.explore_tags": "Desse emneknaggane er populære blant folk på denne tenaren og andre tenarar i det desentraliserte nettverket nett no.", - "dismissable_banner.public_timeline": "Dette er de siste offentlige innleggene fra mennesker på det sosiale nettet som folk på {domain} følger.", + "dismissable_banner.public_timeline": "Dette er dei nyaste offentlege innlegga frå menneske på det sosiale nettet som folk på {domain} følgjer.", "embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden nedanfor.", "embed.preview": "Slik kjem det til å sjå ut:", "emoji_button.activity": "Aktivitet", @@ -228,6 +230,8 @@ "empty_column.direct": "Du har ingen private omtaler enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.", "empty_column.domain_blocks": "Det er ingen skjulte domene til no.", "empty_column.explore_statuses": "Ingenting er i støytet nett no. Prøv igjen seinare!", + "empty_column.favourited_statuses": "Du har ingen favoritt-statusar ennå. Når du merkjer ein som favoritt, dukkar han opp her.", + "empty_column.favourites": "Ingen har merkt denne statusen som favoritt enno. Når nokon gjer det, dukkar dei opp her.", "empty_column.follow_requests": "Du har ingen følgjeførespurnadar ennå. Når du får ein, så vil den dukke opp her.", "empty_column.followed_tags": "Du fylgjer ingen emneknaggar enno. Når du gjer det, vil dei syna her.", "empty_column.hashtag": "Det er ingenting i denne emneknaggen enno.", @@ -265,9 +269,9 @@ "filter_modal.select_filter.subtitle": "Bruk ein eksisterande kategori eller opprett ein ny", "filter_modal.select_filter.title": "Filtrer dette innlegget", "filter_modal.title.status": "Filtrer eit innlegg", - "firehose.all": "Alt", - "firehose.local": "Denne serveren", - "firehose.remote": "Andre servere", + "firehose.all": "Alle", + "firehose.local": "Denne tenaren", + "firehose.remote": "Andre tenarar", "follow_request.authorize": "Autoriser", "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.", @@ -293,21 +297,27 @@ "hashtag.column_settings.tag_toggle": "Inkluder fleire emneord for denne kolonna", "hashtag.follow": "Fylg emneknagg", "hashtag.unfollow": "Slutt å fylgje emneknaggen", - "home.actions.go_to_explore": "Se hva som er populært", - "home.actions.go_to_suggestions": "Finn folk å følge", + "home.actions.go_to_explore": "Sjå kva som er populært", + "home.actions.go_to_suggestions": "Finn folk å følgje", "home.column_settings.basic": "Grunnleggjande", "home.column_settings.show_reblogs": "Vis framhevingar", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Tidslinjen din vil ha en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Det ser ganske stille ut akkurat nå, så hva med:", - "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.", + "home.explore_prompt.body": "Tidslinja di vil ha ei blanding av innlegg frå emneknaggar du har vald å følgje, personane du har vald å følgje, og innlegga dei framhevar. Om det ser ganske stille ut akkurat no, så kan du:", + "home.explore_prompt.title": "Dette er heimen din i Mastodon.", "home.hide_announcements": "Skjul kunngjeringar", "home.show_announcements": "Vis kunngjeringar", + "interaction_modal.description.favourite": "Med ein konto på Mastodon kan du favorittmerkja dette innlegget for å visa forfattaren at du set pris på det, og for å lagra det til seinare.", "interaction_modal.description.follow": "Med ein konto på Mastodon kan du fylgja {name} for å sjå innlegga deira i din heimestraum.", "interaction_modal.description.reblog": "Med ein konto på Mastodon kan du framheva dette innlegget for å dela det med dine eigne fylgjarar.", "interaction_modal.description.reply": "Med ein konto på Mastodon kan du svara på dette innlegget.", + "interaction_modal.login.action": "Ta meg heim", + "interaction_modal.login.prompt": "Domenenamnet til din heime-tenar. t.d. mastodon.social", + "interaction_modal.no_account_yet": "Ikkje på Mastodon?", "interaction_modal.on_another_server": "På ein annan tenar", "interaction_modal.on_this_server": "På denne tenaren", - "interaction_modal.preamble": "Sidan Mastodon er desentralisert, kan du bruke ein konto frå ein annan Mastodontenar eller frå ei anna kompatibel plattform dersom du ikkje har konto på denne tenaren.", + "interaction_modal.sign_in": "Du er ikkje logga inn på denne tenaren. På kva for ein tenar høyrer kontoen din heime?", + "interaction_modal.sign_in_hint": "Tips: Det er nettstaden der du registrerte deg. Om du har gløymt kvar det var, sjå om du finn velkomst-eposten i innboksen din. Du kan òg skriva inn ditt fulle brukarnamn! (t.d. @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Marker innlegget til {name} som favoritt", "interaction_modal.title.follow": "Fylg {name}", "interaction_modal.title.reblog": "Framhev {name} sitt innlegg", "interaction_modal.title.reply": "Svar på innlegge til {name}", @@ -323,6 +333,8 @@ "keyboard_shortcuts.direct": "åpne kolonnen ned private omtaler", "keyboard_shortcuts.down": "Flytt nedover i lista", "keyboard_shortcuts.enter": "Opne innlegg", + "keyboard_shortcuts.favourite": "Marker innlegget som favoritt", + "keyboard_shortcuts.favourites": "Opne favorittlista", "keyboard_shortcuts.federated": "Opne den samla tidslina", "keyboard_shortcuts.heading": "Snøggtastar", "keyboard_shortcuts.home": "Opne heimetidslina", @@ -353,12 +365,13 @@ "lightbox.previous": "Førre", "limited_account_hint.action": "Vis profilen likevel", "limited_account_hint.title": "Denne profilen er skjult av moderatorane på {domain}.", + "link_preview.author": "Av {name}", "lists.account.add": "Legg til i liste", "lists.account.remove": "Fjern frå liste", "lists.delete": "Slett liste", "lists.edit": "Rediger liste", "lists.edit.submit": "Endre tittel", - "lists.exclusive": "Skjul disse innleggene i tidslinjen", + "lists.exclusive": "Skjul desse innlegga frå heimestraumen din", "lists.new.create": "Legg til liste", "lists.new.title_placeholder": "Ny listetittel", "lists.replies_policy.followed": "Alle fylgde brukarar", @@ -375,7 +388,7 @@ "mute_modal.hide_notifications": "Skjul varsel frå denne brukaren?", "mute_modal.indefinite": "På ubestemt tid", "navigation_bar.about": "Om", - "navigation_bar.advanced_interface": "Åpne i det avanserte nettgrensesnittet", + "navigation_bar.advanced_interface": "Opne i avansert nettgrensesnitt", "navigation_bar.blocks": "Blokkerte brukarar", "navigation_bar.bookmarks": "Bokmerke", "navigation_bar.community_timeline": "Lokal tidsline", @@ -385,6 +398,7 @@ "navigation_bar.domain_blocks": "Skjulte domene", "navigation_bar.edit_profile": "Rediger profil", "navigation_bar.explore": "Utforsk", + "navigation_bar.favourites": "Favorittar", "navigation_bar.filters": "Målbundne ord", "navigation_bar.follow_requests": "Fylgjeførespurnader", "navigation_bar.followed_tags": "Fylgde emneknaggar", @@ -401,6 +415,7 @@ "not_signed_in_indicator.not_signed_in": "Du må logga inn for å få tilgang til denne ressursen.", "notification.admin.report": "{name} rapporterte {target}", "notification.admin.sign_up": "{name} er registrert", + "notification.favourite": "{name} markerte innlegget ditt som favoritt", "notification.follow": "{name} fylgde deg", "notification.follow_request": "{name} har bedt om å fylgja deg", "notification.mention": "{name} nemnde deg", @@ -414,6 +429,7 @@ "notifications.column_settings.admin.report": "Nye rapportar:", "notifications.column_settings.admin.sign_up": "Nyleg registrerte:", "notifications.column_settings.alert": "Skrivebordsvarsel", + "notifications.column_settings.favourite": "Favorittar:", "notifications.column_settings.filter_bar.advanced": "Vis alle kategoriar", "notifications.column_settings.filter_bar.category": "Snarfilterlinje", "notifications.column_settings.filter_bar.show_bar": "Vis filterlinja", @@ -431,6 +447,7 @@ "notifications.column_settings.update": "Redigeringar:", "notifications.filter.all": "Alle", "notifications.filter.boosts": "Framhevingar", + "notifications.filter.favourites": "Favorittar", "notifications.filter.follows": "Fylgjer", "notifications.filter.mentions": "Omtalar", "notifications.filter.polls": "Røysteresultat", @@ -476,7 +493,7 @@ "picture_in_picture.restore": "Legg den tilbake", "poll.closed": "Lukka", "poll.refresh": "Oppdater", - "poll.reveal": "Vis resultater", + "poll.reveal": "Vis resultat", "poll.total_people": "{count, plural, one {# person} other {# folk}}", "poll.total_votes": "{count, plural, one {# røyst} other {# røyster}}", "poll.vote": "Røyst", @@ -529,8 +546,8 @@ "report.placeholder": "Tilleggskommentarar", "report.reasons.dislike": "Eg likar det ikkje", "report.reasons.dislike_description": "Det er ikkje noko du ønsker å sjå", - "report.reasons.legal": "Det er ulovlig", - "report.reasons.legal_description": "Du mener det bryter loven i ditt eller serverens land", + "report.reasons.legal": "Det er ulovleg", + "report.reasons.legal_description": "Du meinar det bryt lova i landet der du eller tenaren held til", "report.reasons.other": "Det er noko anna", "report.reasons.other_description": "Problemet passar ikkje inn i dei andre kategoriane", "report.reasons.spam": "Det er søppelpost", @@ -550,7 +567,7 @@ "report.unfollow": "Slutt å fylgje @{name}", "report.unfollow_explanation": "Du fylgjer denne kontoen. Slutt å fylgje dei for ikkje lenger å sjå innlegga deira i heimestraumen din.", "report_notification.attached_statuses": "{count, plural, one {{count} innlegg} other {{count} innlegg}} lagt ved", - "report_notification.categories.legal": "Juridiske", + "report_notification.categories.legal": "Juridisk", "report_notification.categories.other": "Anna", "report_notification.categories.spam": "Søppelpost", "report_notification.categories.violation": "Regelbrot", @@ -581,6 +598,8 @@ "server_banner.server_stats": "Tenarstatistikk:", "sign_in_banner.create_account": "Opprett konto", "sign_in_banner.sign_in": "Logg inn", + "sign_in_banner.sso_redirect": "Logg inn eller registrer deg", + "sign_in_banner.text": "Logg inn for å fylgja profilar eller emneknaggar, og for å lika, dela og svara på innlegg. Du kan òg samhandla med aktivitet på denne tenaren frå kontoar på andre tenarar.", "status.admin_account": "Opne moderasjonsgrensesnitt for @{name}", "status.admin_domain": "Opna moderatorgrensesnittet for {domain}", "status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet", @@ -597,13 +616,14 @@ "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural, one {{count} gong} other {{count} gonger}}", "status.embed": "Bygg inn", + "status.favourite": "Favoritt", "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", "status.hide": "Skjul innlegget", "status.history.created": "{name} oppretta {date}", "status.history.edited": "{name} redigerte {date}", "status.load_more": "Last inn meir", - "status.media.open": "Klikk for å åpne", + "status.media.open": "Klikk for å opne", "status.media.show": "Klikk for å vise", "status.media_hidden": "Medium gøymd", "status.mention": "Nemn @{name}", @@ -635,7 +655,7 @@ "status.title.with_attachments": "{user} postet {attachmentCount, plural, one {et vedlegg} other {{attachmentCount} vedlegg}}", "status.translate": "Omset", "status.translated_from_with": "Omsett frå {lang} ved bruk av {provider}", - "status.uncached_media_warning": "Forhåndsvisning er ikke tilgjengelig", + "status.uncached_media_warning": "Førehandsvisning er ikkje tilgjengeleg", "status.unmute_conversation": "Opphev målbinding av samtalen", "status.unpin": "Løys frå profil", "subscribed_languages.lead": "Kun innlegg på valde språk vil bli dukke opp i heimestraumen din og i listene dine etter denne endringa. For å motta innlegg på alle språk, la vere å velje nokon.", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 77172517c4..71a7beaf27 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -1,5 +1,5 @@ { - "about.blocks": "Modererte tjenere", + "about.blocks": "Modererte servere", "about.contact": "Kontakt:", "about.disclaimer": "Mastodon er gratis, åpen kildekode-programvare og et varemerke fra Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Årsak ikke tilgjengelig", @@ -10,17 +10,17 @@ "about.domain_blocks.suspended.title": "Suspendert", "about.not_available": "Denne informasjonen er ikke gjort tilgjengelig på denne tjeneren.", "about.powered_by": "Desentraliserte sosiale medier drevet av {mastodon}", - "about.rules": "Regler for tjeneren", + "about.rules": "Regler for serveren", "account.account_note_header": "Notat", "account.add_or_remove_from_list": "Legg til eller fjern fra lister", - "account.badges.bot": "Bot", + "account.badges.bot": "Robot", "account.badges.group": "Gruppe", "account.block": "Blokker @{name}", "account.block_domain": "Blokker domenet {domain}", - "account.block_short": "Blokkér", + "account.block_short": "Blokker", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Bla mer på den opprinnelige profilen", - "account.cancel_follow_request": "Trekk tilbake følge-forespørselen", + "account.cancel_follow_request": "Avbryt følge forespørselen", "account.direct": "Nevn @{name} privat", "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", "account.domain_blocked": "Domene blokkert", @@ -83,7 +83,7 @@ "alert.rate_limited.message": "Vennligst prøv igjen etter kl. {retry_time, time, medium}.", "alert.rate_limited.title": "Hastighetsbegrenset", "alert.unexpected.message": "En uventet feil oppstod.", - "alert.unexpected.title": "Oi!", + "alert.unexpected.title": "Ups!", "announcement.announcement": "Kunngjøring", "attachments_list.unprocessed": "(ubehandlet)", "audio.hide": "Skjul lyd", @@ -113,6 +113,7 @@ "column.direct": "Private omtaler", "column.directory": "Bla gjennom profiler", "column.domain_blocks": "Skjulte domener", + "column.favourites": "Favoritter", "column.firehose": "Tidslinjer", "column.follow_requests": "Følgeforespørsler", "column.home": "Hjem", @@ -165,7 +166,7 @@ "confirmations.cancel_follow_request.confirm": "Trekk tilbake forespørsel", "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekke tilbake forespørselen din for å følge {name}?", "confirmations.delete.confirm": "Slett", - "confirmations.delete.message": "Er du sikker på at du vil slette denne statusen?", + "confirmations.delete.message": "Er du sikker på at du vil slette dette innlegget?", "confirmations.delete_list.confirm": "Slett", "confirmations.delete_list.message": "Er du sikker på at du vil slette denne listen permanent?", "confirmations.discard_edit_media.confirm": "Forkast", @@ -180,6 +181,7 @@ "confirmations.mute.explanation": "Dette vil skjule innlegg fra dem og innlegg som nevner dem, men det vil fortsatt la dem se dine innlegg og å følge deg.", "confirmations.mute.message": "Er du sikker på at du vil dempe {name}?", "confirmations.redraft.confirm": "Slett og skriv på nytt", + "confirmations.redraft.message": "Er du sikker på at du vil slette dette innlegget og lagre det på nytt? Favoritter og fremhevinger vil gå tapt, og svar til det originale innlegget vil bli foreldreløse.", "confirmations.reply.confirm": "Svar", "confirmations.reply.message": "Å svare nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?", "confirmations.unfollow.confirm": "Slutt å følge", @@ -189,7 +191,6 @@ "conversation.open": "Vis samtale", "conversation.with": "Med {names}", "copypaste.copied": "Kopiert", - "copypaste.copy": "Kopier", "copypaste.copy_to_clipboard": "Kopier til utklippstavle", "directory.federated": "Fra det kjente strømiverset", "directory.local": "Kun fra {domain}", @@ -200,6 +201,7 @@ "dismissable_banner.community_timeline": "Dette er de nyeste offentlige innleggene fra personer med kontoer på {domain}.", "dismissable_banner.dismiss": "Avvis", "dismissable_banner.explore_links": "Disse nyhetene snakker folk om akkurat nå på denne og andre servere i det desentraliserte nettverket.", + "dismissable_banner.explore_statuses": "Disse innleggene fra denne og andre servere i det desentraliserte nettverket får økt oppmerksomhet på denne serveren akkurat nå. Nyere innlegg med flere fremhevinger og favoritter er rangert høyere.", "dismissable_banner.explore_tags": "Disse emneknaggene snakker folk om akkurat nå, på denne og andre servere i det desentraliserte nettverket.", "dismissable_banner.public_timeline": "Dette er de siste offentlige innleggene fra mennesker på det sosiale nettet som folk på {domain} følger.", "embed.instructions": "Kopier koden under for å bygge inn denne statusen på hjemmesiden din.", @@ -228,6 +230,8 @@ "empty_column.direct": "Du har ingen private omtaler enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.", "empty_column.domain_blocks": "Det er ingen skjulte domener enda.", "empty_column.explore_statuses": "Ingenting er populært akkurat nå. Prøv igjen senere!", + "empty_column.favourited_statuses": "Du har ikke noen favorittinnlegg enda. Når du favorittmarkerer et inlegg, vil det dukke opp her.", + "empty_column.favourites": "Ingen har favorittmarkert dette innlegget ennå. Når noen gjør det, vil de dukke opp her.", "empty_column.follow_requests": "Du har ingen følgeforespørsler enda. Når du mottar en, vil den dukke opp her.", "empty_column.followed_tags": "Du har ikke fulgt noen emneknagger ennå. Når du gjør det, vil de vises her.", "empty_column.hashtag": "Det er ingenting i denne emneknaggen ennå.", @@ -298,16 +302,16 @@ "home.column_settings.basic": "Enkelt", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Tidslinjen din vil ha en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Det ser ganske stille ut akkurat nå, så hva med:", "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.", "home.hide_announcements": "Skjul kunngjøring", "home.show_announcements": "Vis kunngjøring", + "interaction_modal.description.favourite": "Med en konto på Mastodon, kan du favorittmarkere dette innlegget for å la forfatteren vite at du satte pris på det, og lagre innlegget til senere.", "interaction_modal.description.follow": "Med en konto på Mastodon, kan du følge {name} for å få innleggene deres i tidslinjen din.", "interaction_modal.description.reblog": "Med en konto på Mastodon, kan du fremheve dette innlegget for å dele det med dine egne følgere.", "interaction_modal.description.reply": "Med en konto på Mastodon, kan du svare på dette innlegget.", "interaction_modal.on_another_server": "På en annen server", "interaction_modal.on_this_server": "På denne serveren", - "interaction_modal.preamble": "Siden Mastodon er desentralisert, kan du bruke din eksisterende konto på en annen Mastodon-tjener eller en kompatibel plattform hvis du ikke har en konto her.", + "interaction_modal.title.favourite": "Favorittmarker innlegget til {name}", "interaction_modal.title.follow": "Følg {name}", "interaction_modal.title.reblog": "Fremhev {name} sitt innlegg", "interaction_modal.title.reply": "Svar på {name} sitt innlegg", @@ -323,6 +327,8 @@ "keyboard_shortcuts.direct": "åpne kolonnen ned private omtaler", "keyboard_shortcuts.down": "Flytt nedover i listen", "keyboard_shortcuts.enter": "Åpne innlegg", + "keyboard_shortcuts.favourite": "Favorittmarker innlegg", + "keyboard_shortcuts.favourites": "Åpne listen over favoritter", "keyboard_shortcuts.federated": "Åpne fellestidslinjen", "keyboard_shortcuts.heading": "Hurtigtaster", "keyboard_shortcuts.home": "Åpne hjemmetidslinjen", @@ -353,6 +359,7 @@ "lightbox.previous": "Forrige", "limited_account_hint.action": "Vis profil likevel", "limited_account_hint.title": "Denne profilen har blitt skjult av moderatorene til {domain}.", + "link_preview.author": "Av {name}", "lists.account.add": "Legg til i listen", "lists.account.remove": "Fjern fra listen", "lists.delete": "Slett listen", @@ -385,6 +392,7 @@ "navigation_bar.domain_blocks": "Skjulte domener", "navigation_bar.edit_profile": "Rediger profil", "navigation_bar.explore": "Utforsk", + "navigation_bar.favourites": "Favoritter", "navigation_bar.filters": "Stilnede ord", "navigation_bar.follow_requests": "Følgeforespørsler", "navigation_bar.followed_tags": "Fulgte emneknagger", @@ -401,6 +409,7 @@ "not_signed_in_indicator.not_signed_in": "Du må logge inn for å få tilgang til denne ressursen.", "notification.admin.report": "{name} rapporterte {target}", "notification.admin.sign_up": "{name} registrerte seg", + "notification.favourite": "{name} favorittmarkerte innlegget ditt", "notification.follow": "{name} fulgte deg", "notification.follow_request": "{name} har bedt om å få følge deg", "notification.mention": "{name} nevnte deg", @@ -414,6 +423,7 @@ "notifications.column_settings.admin.report": "Nye rapporter:", "notifications.column_settings.admin.sign_up": "Nye registreringer:", "notifications.column_settings.alert": "Skrivebordsvarslinger", + "notifications.column_settings.favourite": "Favoritter:", "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier", "notifications.column_settings.filter_bar.category": "Hurtigfiltreringslinje", "notifications.column_settings.filter_bar.show_bar": "Vis filterlinjen", @@ -431,6 +441,7 @@ "notifications.column_settings.update": "Redigeringer:", "notifications.filter.all": "Alle", "notifications.filter.boosts": "Fremhevinger", + "notifications.filter.favourites": "Favoritter", "notifications.filter.follows": "Følginger", "notifications.filter.mentions": "Nevnelser", "notifications.filter.polls": "Avstemningsresultater", @@ -581,6 +592,8 @@ "server_banner.server_stats": "Serverstatistikk:", "sign_in_banner.create_account": "Opprett konto", "sign_in_banner.sign_in": "Logg inn", + "sign_in_banner.sso_redirect": "Logg inn eller registrer deg", + "sign_in_banner.text": "Logg inn for å følge profiler eller emneknagger, favorittmarkere, dele og svare på innlegg. Du kan også samhandle fra din konto på en annen server.", "status.admin_account": "Åpne moderatorgrensesnittet for @{name}", "status.admin_domain": "Åpne moderatorgrensesnittet for {domain}", "status.admin_status": "Åpne denne statusen i moderatorgrensesnittet", @@ -597,6 +610,7 @@ "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}", "status.embed": "Bygge inn", + "status.favourite": "Favoritt", "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", "status.hide": "Skjul innlegg", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index f3b9f04042..674b573592 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -160,7 +160,6 @@ "conversation.open": "Veire la conversacion", "conversation.with": "Amb {names}", "copypaste.copied": "Copiat", - "copypaste.copy": "Copiar", "directory.federated": "Del fediverse conegut", "directory.local": "Solament de {domain}", "directory.new_arrivals": "Nòus-venguts", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index ea30790115..d486fc13c0 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -57,7 +57,6 @@ "confirmations.reply.confirm": "ਜਵਾਬ ਦੇਵੋ", "confirmations.unfollow.confirm": "ਪ੍ਰਸ਼ੰਸਕੀ ਰੱਦ ਕਰੋ", "copypaste.copied": "ਕਾਪੀ ਕੀਤਾ", - "copypaste.copy": "ਕਾਪੀ ਕਰੋ", "copypaste.copy_to_clipboard": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ", "disabled_account_banner.account_settings": "ਖਾਤੇ ਦੀਆਂ ਸੈਟਿੰਗਾਂ", "dismissable_banner.dismiss": "ਰੱਦ ਕਰੋ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 2fce76fc5d..88a3460aff 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -191,7 +191,6 @@ "conversation.open": "Zobacz konwersację", "conversation.with": "Z {names}", "copypaste.copied": "Skopiowano", - "copypaste.copy": "Kopiuj", "copypaste.copy_to_clipboard": "Skopiuj do schowka", "directory.federated": "Ze znanego fediwersum", "directory.local": "Tylko z {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Podstawowe", "home.column_settings.show_reblogs": "Pokazuj podbicia", "home.column_settings.show_replies": "Pokazuj odpowiedzi", - "home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów, które wybrano do obserwacji, osoby, które wybrano obserwować i wpisy, które one podbijają. Obecnie jest tu całkiem cicho, więc co myślisz o:", + "home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów i osób które obserwujesz oraz wpisów przezeń podbitych. Jeżeli wydaje się to za spokojnym, spróbuj czegoś poniżej.", "home.explore_prompt.title": "To twój punkt podparcia w Mastodonie.", "home.hide_announcements": "Ukryj ogłoszenia", "home.show_announcements": "Pokaż ogłoszenia", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Mając konto na Mastodonie, możesz śledzić {name} by widzieć jego wpisy na swojej głównej osi czasu.", "interaction_modal.description.reblog": "Mając konto na Mastodonie, możesz podbić ten wpis i udostępnić go Twoim obserwującym.", "interaction_modal.description.reply": "Mając konto na Mastodonie, możesz odpowiedzieć na ten wpis.", + "interaction_modal.login.action": "Wróć na stronę główną", + "interaction_modal.login.prompt": "Domena twojego serwera domowego, np. \"mastodon.social\"", + "interaction_modal.no_account_yet": "Nie masz konta na Mastodonie?", "interaction_modal.on_another_server": "Na innym serwerze", "interaction_modal.on_this_server": "Na tym serwerze", - "interaction_modal.other_server_instructions": "Skopiuj i wklej ten adres URL do pola wyszukiwania w swojej ulubionej aplikacji Mastodon lub interfejsu internetowego swojego serwera Mastodon.", - "interaction_modal.preamble": "Ponieważ Mastodon jest zdecentralizowany, możesz użyć swojego istniejącego konta z innego serwera Mastodona lub innej kompatybilnej usługi, jeśli nie masz konta na tym serwerze.", + "interaction_modal.sign_in": "Nie jesteś zalogowany(-a) na tym serwerze. Gdzie masz konto?", + "interaction_modal.sign_in_hint": "To strona na której się rejestrowałeś(-aś). Jeżeli nie pamiętasz, poszukaj mejla z przywitaniem. Możesz też wprowadzić pełną nazwę użytkownika, à la @Mastodon@mastodon.social!", "interaction_modal.title.favourite": "Polub wpis użytkownika {name}", "interaction_modal.title.follow": "Śledź {name}", "interaction_modal.title.reblog": "Podbij wpis {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Statystyki serwera:", "sign_in_banner.create_account": "Załóż konto", "sign_in_banner.sign_in": "Zaloguj się", + "sign_in_banner.sso_redirect": "Zaloguj/zarejestruj się", "sign_in_banner.text": "Zaloguj się, aby obserwować profile lub hashtagi, polubić, udostępnić oraz odpowiedzieć na posty. Możesz również wejść w interakcję z konta na innym serwerze.", "status.admin_account": "Otwórz interfejs moderacyjny dla @{name}", "status.admin_domain": "Otwórz interfejs moderacyjny dla {domain}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index e3889263d5..503cfed45c 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -189,7 +189,6 @@ "conversation.open": "Ver conversa", "conversation.with": "Com {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar para a área de transferência", "directory.federated": "Do fediverso conhecido", "directory.local": "Somente de {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar boosts", "home.column_settings.show_replies": "Mostrar respostas", - "home.explore_prompt.body": "Seu feed inicial terá uma mistura de publicações das hashtags que você escolheu seguir, das pessoas que você escolheu seguir e das publicações que elas impulsionam. Está parecendo bem tranquilo no momento, então que tal:", "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.", "home.hide_announcements": "Ocultar comunicados", "home.show_announcements": "Mostrar comunicados", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "Com uma conta no Mastodon, você pode responder a esta publicação.", "interaction_modal.on_another_server": "Em um servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.preamble": "Como o Mastodon é descentralizado, você pode usar sua conta existente em outro servidor Mastodon ou plataforma compatível se você não tiver uma conta neste servidor.", "interaction_modal.title.follow": "Seguir {name}", "interaction_modal.title.reblog": "Impulsionar publicação de {name}", "interaction_modal.title.reply": "Responder à publicação de {name}", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 570fd4644c..72278ec781 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversa", "conversation.with": "Com {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar para a área de transferência", "directory.federated": "Do fediverso conhecido", "directory.local": "Apenas de {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respostas", - "home.explore_prompt.body": "A sua página inicial terá uma mistura de publicações com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicações que elas partilham. Parece bastante quieto por agora, então que tal:", + "home.explore_prompt.body": "A sua página inicial terá uma mistura de publicações com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicações que elas partilham. Parece bastante sossegado por agora, talvez queira:", "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.", "home.hide_announcements": "Ocultar comunicações", "home.show_announcements": "Exibir comunicações", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Com uma conta no Mastodon, pode seguir {name} para receber as suas publicações na sua página inicial.", "interaction_modal.description.reblog": "Com uma conta no Mastodon, pode impulsionar esta publicação para compartilhá-lo com os seus seguidores.", "interaction_modal.description.reply": "Com uma conta no Mastodon, pode responder a esta publicação.", + "interaction_modal.login.action": "Leve-me a casa", + "interaction_modal.login.prompt": "Domínio do seu servidor, por exemplo, mastodon.social", + "interaction_modal.no_account_yet": "Não está no Mastodon?", "interaction_modal.on_another_server": "Num servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.other_server_instructions": "Copie e cole este URL no campo de pesquisa da sua aplicação Mastodon preferida, ou da interface web do seu servidor Mastodon.", - "interaction_modal.preamble": "Uma vez que o Mastodon é descentralizado, caso não tenha uma conta neste servidor, pode utilizar a sua conta existente noutro servidor Mastodon ou plataforma compatível.", + "interaction_modal.sign_in": "Não tem sessão iniciada neste servidor. Em que servidor tem a sua conta?", + "interaction_modal.sign_in_hint": "Dica: O domínio do seu servidor é o site onde se inscreveu. Se não se lembrar, procure o e-mail de boas-vindas na sua caixa de entrada. Também pode introduzir o seu nome de utilizador completo! (por exemplo, @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Assinalar a publicação de {name} como favorita", "interaction_modal.title.follow": "Seguir {name}", "interaction_modal.title.reblog": "Impulsionar a publicação de {name}", @@ -363,6 +365,7 @@ "lightbox.previous": "Anterior", "limited_account_hint.action": "Exibir perfil mesmo assim", "limited_account_hint.title": "Este perfil foi ocultado pelos moderadores de {domain}.", + "link_preview.author": "Por {name}", "lists.account.add": "Adicionar à lista", "lists.account.remove": "Remover da lista", "lists.delete": "Eliminar lista", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 9dc98306fa..3c37d50c60 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -172,7 +172,6 @@ "conversation.open": "Vizualizează conversația", "conversation.with": "Cu {names}", "copypaste.copied": "Copiat", - "copypaste.copy": "Copiere", "directory.federated": "Din fediversul cunoscut", "directory.local": "Doar din {domain}", "directory.new_arrivals": "Înscriși recent", @@ -279,7 +278,6 @@ "interaction_modal.description.reply": "Cu un cont pe Mastodon, poți răspunde acestei postări.", "interaction_modal.on_another_server": "Pe un alt server", "interaction_modal.on_this_server": "Pe acest server", - "interaction_modal.preamble": "De vreme ce Mastodon este descentralizat, poți folosi contul tău existent, găzduit de un alt server Mastodon, sau o platformă compatibilă dacă nu ai un cont pe acesta.", "interaction_modal.title.follow": "Urmărește pe {name}", "interaction_modal.title.reblog": "Distribuie postarea lui {name}", "interaction_modal.title.reply": "Răspunde postării lui {name}", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index a7bbdc9b41..7e72c93aa8 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -191,7 +191,6 @@ "conversation.open": "Просмотр беседы", "conversation.with": "С {names}", "copypaste.copied": "Скопировано", - "copypaste.copy": "Скопировать", "copypaste.copy_to_clipboard": "Копировать в буфер обмена", "directory.federated": "Со всей федерации", "directory.local": "Только с {domain}", @@ -202,6 +201,7 @@ "dismissable_banner.community_timeline": "Это самые последние публичные сообщения от людей, чьи учетные записи размещены в {domain}.", "dismissable_banner.dismiss": "Закрыть", "dismissable_banner.explore_links": "Об этих новостях прямо сейчас говорят люди на этом и других серверах децентрализованной сети.", + "dismissable_banner.explore_statuses": "Эти сообщения со связанных серверов сети сейчас набирают популярность.", "dismissable_banner.explore_tags": "Эти хэштеги привлекают людей на этом и других серверах децентрализованной сети прямо сейчас.", "dismissable_banner.public_timeline": "Это самые последние публичные сообщения от людей в социальной сети, за которыми подписались пользователи {domain}.", "embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:", @@ -310,10 +310,13 @@ "interaction_modal.description.follow": "С учётной записью Mastodon вы можете подписаться на {name}, чтобы получать их посты в своей домашней ленте.", "interaction_modal.description.reblog": "С учётной записью Mastodon, вы можете продвинуть этот пост, чтобы поделиться им со своими подписчиками.", "interaction_modal.description.reply": "Вы можете ответить на этот пост с учётной записью Mastodon.", + "interaction_modal.login.action": "Перейти на домашнюю страницу", + "interaction_modal.login.prompt": "Домен вашего домашнего сервера, например, mastodon.social", + "interaction_modal.no_account_yet": "Еще не на Mastodon?", "interaction_modal.on_another_server": "На другом сервере", "interaction_modal.on_this_server": "На этом сервере", - "interaction_modal.other_server_instructions": "Скопируйте и вставьте этот URL в поле поиска вашего любимого приложения Mastodon или веб-интерфейс вашего сервера Mastodon.", - "interaction_modal.preamble": "Поскольку Mastodon децентрализован, вы можете использовать существующую учётную запись, размещенную на другом сервере Mastodon или совместимой платформе, если у вас нет учётной записи на этом сервере.", + "interaction_modal.sign_in": "Вы не вошли в систему на этом сервере. Где размещена ваша учетная запись?", + "interaction_modal.sign_in_hint": "Совет: Это сайт, на котором вы зарегистрировались. Если вы не помните, найдите приветственное письмо в своем почтовом ящике. Вы также можете ввести свое полное имя пользователя! (например, @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Добавить пост {name} в избранное", "interaction_modal.title.follow": "Подписаться на {name}", "interaction_modal.title.reblog": "Продвинуть публикацию {name}", @@ -595,6 +598,7 @@ "server_banner.server_stats": "Статистика сервера:", "sign_in_banner.create_account": "Создать учётную запись", "sign_in_banner.sign_in": "Войти", + "sign_in_banner.sso_redirect": "Войдите или Зарегистрируйтесь", "sign_in_banner.text": "Войдите, чтобы отслеживать профили, хэштеги или избранное, делиться сообщениями и отвечать на них. Вы также можете взаимодействовать с вашей учётной записью на другом сервере.", "status.admin_account": "Открыть интерфейс модератора для @{name}", "status.admin_domain": "Открыть интерфейс модерации {domain}", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index ee60315863..071061058d 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -177,7 +177,6 @@ "conversation.open": "वार्तालापो दृश्यताम्", "conversation.with": "{names} जनैः साकम्", "copypaste.copied": "प्रतिलिपिंकृतम्", - "copypaste.copy": "प्रतिलिपिः", "copypaste.copy_to_clipboard": "क्लिप्बोर्दमनुलिपिं कुरु", "directory.federated": "सुपरिचितं Fediverse इति स्थानात्", "directory.local": "{domain} प्रदेशात्केवलम्", @@ -287,7 +286,6 @@ "interaction_modal.description.reply": "मास्टोडोनि एकौण्टा पत्रमिदं प्रतिवादयितुं शक्नोषि।", "interaction_modal.on_another_server": "अन्यस्मिन्सर्वरि", "interaction_modal.on_this_server": "अस्मिन्सर्वरि", - "interaction_modal.preamble": "यतो मास्टोडोन्विकेन्द्रीयकृतोऽस्ति, अन्येन मास्टोडोन्सर्वरा उत सुसङ्गतेन आश्रयेण ते वर्तमानौकौण्टं प्रयोक्तुं शक्नोषि यदि अस्मिन्कोऽपि ते एकौण्ट् नास्ति।", "interaction_modal.title.follow": "{name} अनुसर", "interaction_modal.title.reblog": "{name} नाम्ना उपभोक्तुः पत्रं बुस्त्कुरु", "interaction_modal.title.reply": "{name} नाम्ना उपभोक्तुःपत्रं प्रतिवादय", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index ad5c9e28d3..8fe9944676 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -171,7 +171,6 @@ "conversation.open": "Luik at conversation", "conversation.with": "Wi {names}", "copypaste.copied": "Copied", - "copypaste.copy": "Copy", "directory.federated": "Fae a kent fediverse", "directory.local": "Fae {domain} ainly", "directory.new_arrivals": "New arrivals", @@ -272,7 +271,6 @@ "interaction_modal.description.reply": "Wi a accoont on Mastodon, ye kin sen a repone tae this post.", "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", - "interaction_modal.preamble": "Seein Mastodon is decentralized, ye kin uise the accoont thit ye awriddy hae hostit on anither Mastodon server or compatable platforn gien thit dinnae hae a accoont in this yin.", "interaction_modal.title.follow": "Follae {name}", "interaction_modal.title.reblog": "Heeze {name}'s post", "interaction_modal.title.reply": "Reply tae {name}'s post", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index c83c97e932..e045387fcf 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -136,7 +136,6 @@ "conversation.open": "සංවාදය බලන්න", "conversation.with": "{names} සමඟ", "copypaste.copied": "පිටපත් විය", - "copypaste.copy": "පිටපතක්", "directory.federated": "දන්නා fediverse වලින්", "directory.local": "{domain} වෙතින් පමණි", "directory.new_arrivals": "නව පැමිණීම්", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 71a4228395..75153b4694 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -76,6 +76,10 @@ "admin.dashboard.retention.average": "Priemer", "admin.dashboard.retention.cohort": "Mesiac zaregistrovania sa", "admin.dashboard.retention.cohort_size": "Noví užívatelia", + "admin.impact_report.instance_accounts": "Profily účtov, ktoré by boli odstránené", + "admin.impact_report.instance_followers": "Sledovatelia, o ktorých by naši používatelia prišli", + "admin.impact_report.instance_follows": "Sledovatelia, o ktorých by ich používatelia prišli", + "admin.impact_report.title": "Zhrnutie dopadu", "alert.rate_limited.message": "Prosím, skús to znova za {retry_time, time, medium}.", "alert.rate_limited.title": "Tempo obmedzené", "alert.unexpected.message": "Vyskytla sa nečakaná chyba.", @@ -110,6 +114,7 @@ "column.directory": "Prehľadávaj profily", "column.domain_blocks": "Skryté domény", "column.favourites": "Obľúbené", + "column.firehose": "Živé kanály", "column.follow_requests": "Žiadosti o sledovanie", "column.home": "Domov", "column.lists": "Zoznamy", @@ -176,6 +181,7 @@ "confirmations.mute.explanation": "Toto nastavenie skryje ich príspevky, alebo príspevky od iných v ktorých sú spomenutí, ale umožní im vidieť tvoje príspevky, aj ťa nasledovať.", "confirmations.mute.message": "Naozaj si chceš nevšímať {name}?", "confirmations.redraft.confirm": "Vyčisti a prepíš", + "confirmations.redraft.message": "Ste si istý, že chcete premazať a prepísať tento príspevok? Jeho nadobudnuté vyzdvihnutia a obľúbenia, ale i odpovede na pôvodný príspevok budú odlúčené.", "confirmations.reply.confirm": "Odpovedz", "confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?", "confirmations.unfollow.confirm": "Nesleduj", @@ -185,7 +191,6 @@ "conversation.open": "Ukáž konverzáciu", "conversation.with": "S {names}", "copypaste.copied": "Skopírované", - "copypaste.copy": "Kopíruj", "copypaste.copy_to_clipboard": "Skopíruj do schránky", "directory.federated": "Zo známého fedivesmíru", "directory.local": "Iba z {domain}", @@ -196,7 +201,9 @@ "dismissable_banner.community_timeline": "Toto sú najnovšie verejné príspevky od ľudí, ktorých účty sú hostované na {domain}.", "dismissable_banner.dismiss": "Zrušiť", "dismissable_banner.explore_links": "O týchto správach práve teraz hovoria ľudia na tomto a ďalších serveroch decentralizovanej siete.", + "dismissable_banner.explore_statuses": "Tieto príspevky naberajú na ťahu naprieč celej sociálnej sieti. Novšie príspevky s viacerými vyzdvihnutiami sú radené vyššie.", "dismissable_banner.explore_tags": "Tieto hashtagy práve teraz získavajú popularitu medzi ľuďmi na tomto a ďalších serveroch decentralizovanej siete.", + "dismissable_banner.public_timeline": "Toto sú najnovšie verejné príspevky od ľudí, ktorí sledujú {domain}, cez celú sociálnu sieť.", "embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.", "embed.preview": "Tu je ako to bude vyzerať:", "emoji_button.activity": "Aktivita", @@ -223,6 +230,8 @@ "empty_column.direct": "Ešte nemáš žiadne priame zmienky. Keď nejakú pošleš alebo dostaneš, ukáže sa tu.", "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.", "empty_column.explore_statuses": "Momentálne nie je nič trendové. Pozrite sa neskôr!", + "empty_column.favourited_statuses": "Zatiaľ nemáš žiadne obľúbené príspevky. Akonáhle označíš nejaký ako obľúbený, zobrazí sa tu.", + "empty_column.favourites": "Nikto si zatiaľ tento príspevok neobľúbil. Akonáhle tak niekto urobí, zobrazí sa tu.", "empty_column.follow_requests": "Ešte nemáš žiadne požiadavky o následovanie. Keď nejaké dostaneš, budú tu zobrazené.", "empty_column.followed_tags": "Ešte nenasleduješ žiadne haštagy. Keď tak urobíš, zobrazia sa tu.", "empty_column.hashtag": "Pod týmto hashtagom sa ešte nič nenachádza.", @@ -288,6 +297,7 @@ "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec", "hashtag.follow": "Nasleduj haštag", "hashtag.unfollow": "Nesleduj haštag", + "home.actions.go_to_explore": "Pozrieť, čo je trendy", "home.actions.go_to_suggestions": "Nájdi ľudí na sledovanie", "home.column_settings.basic": "Základné", "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté", @@ -297,9 +307,10 @@ "interaction_modal.description.follow": "Ak máte konto na Mastodone, môžete sledovať {name} a dostávať príspevky do svojho domovského kanála.", "interaction_modal.description.reblog": "Ak máte účet na Mastodone, môžete tento príspevok posilniť a zdieľať ho s vlastnými sledovateľmi.", "interaction_modal.description.reply": "Ak máte účet na Mastodone, môžete reagovať na tento príspevok.", + "interaction_modal.login.action": "Prejsť domov", "interaction_modal.on_another_server": "Na inom serveri", "interaction_modal.on_this_server": "Na tomto serveri", - "interaction_modal.preamble": "Keďže Mastodon je decentralizovaný, ak nemáte účet na tomto serveri, môžete použiť svoj existujúci účet hostovaný na inom serveri Mastodon alebo kompatibilnej platforme.", + "interaction_modal.title.favourite": "Obľúb si {name} ov/in príspevok", "interaction_modal.title.follow": "Nasleduj {name}", "interaction_modal.title.reblog": "Vyzdvihni {name}ov/in príspevok", "interaction_modal.title.reply": "Odpovedz na {name}ov/in príspevok", @@ -315,6 +326,8 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "posunúť sa dole v zozname", "keyboard_shortcuts.enter": "Otvor príspevok", + "keyboard_shortcuts.favourite": "Obľúb si príspevok", + "keyboard_shortcuts.favourites": "Otvor zoznam obľúbených", "keyboard_shortcuts.federated": "otvor federovanú časovú os", "keyboard_shortcuts.heading": "Klávesové skratky", "keyboard_shortcuts.home": "otvor domácu časovú os", @@ -375,6 +388,7 @@ "navigation_bar.domain_blocks": "Skryté domény", "navigation_bar.edit_profile": "Uprav profil", "navigation_bar.explore": "Objavuj", + "navigation_bar.favourites": "Obľúbené", "navigation_bar.filters": "Filtrované slová", "navigation_bar.follow_requests": "Žiadosti o sledovanie", "navigation_bar.followed_tags": "Nasledované haštagy", @@ -391,6 +405,7 @@ "not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, musíte sa prihlásiť.", "notification.admin.report": "{name} nahlásil/a {target}", "notification.admin.sign_up": "{name} sa zaregistroval/a", + "notification.favourite": "{name} si obľúbil/a tvoj príspevok", "notification.follow": "{name} ťa začal/a nasledovať", "notification.follow_request": "{name} ťa žiada nasledovať", "notification.mention": "{name} ťa spomenul/a", @@ -443,6 +458,7 @@ "onboarding.compose.template": "Nazdar #Mastodon!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Popular on Mastodon", + "onboarding.share.next_steps": "Ďalšie možné kroky:", "onboarding.share.title": "Zdieľaj svoj profil", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.skip": "Want to skip right ahead?", @@ -531,6 +547,7 @@ "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached", "report_notification.categories.legal": "Právne ujednania", "report_notification.categories.other": "Ostatné", + "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Porušenie pravidla", "report_notification.open": "Otvor hlásenie", "search.no_recent_searches": "Žiadne nedávne vyhľadávania", @@ -571,6 +588,7 @@ "status.edited": "Upravené {date}", "status.edited_x_times": "Upravený {count, plural, one {{count} krát} other {{count} krát}}", "status.embed": "Vložiť", + "status.favourite": "Páči sa mi", "status.filter": "Filtrovanie tohto príspevku", "status.filtered": "Filtrované", "status.hide": "Skry príspevok", @@ -609,6 +627,7 @@ "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", "status.translate": "Preložiť", "status.translated_from_with": "Preložené z {lang} pomocou {provider}", + "status.uncached_media_warning": "Náhľad nie je k dispozícii", "status.unmute_conversation": "Prestaň si nevšímať konverzáciu", "status.unpin": "Odopni z profilu", "subscribed_languages.save": "Ulož zmeny", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index e513f6a436..5449fe903f 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -68,6 +68,7 @@ "account.unendorse": "Ne vključi v profil", "account.unfollow": "Prenehaj slediti", "account.unmute": "Odtišaj @{name}", + "account.unmute_notifications_short": "Izklopi utišanje obvestil", "account.unmute_short": "Odtišaj", "account_note.placeholder": "Kliknite za dodajanje opombe", "admin.dashboard.daily_retention": "Mera ohranjanja uporabnikov po dnevih od registracije", @@ -190,7 +191,6 @@ "conversation.open": "Pokaži pogovor", "conversation.with": "Z {names}", "copypaste.copied": "Kopirano", - "copypaste.copy": "Kopiraj", "copypaste.copy_to_clipboard": "Kopiraj na odložišče", "directory.federated": "Iz znanega fediverzuma", "directory.local": "Samo iz {domain}", @@ -203,6 +203,7 @@ "dismissable_banner.explore_links": "O teh novicah ravno zdaj veliko govorijo osebe na tem in drugih strežnikih decentraliziranega omrežja.", "dismissable_banner.explore_statuses": "Te objave s tega in drugih strežnikov v decentraliziranem omrežju pridobivajo ravno zdaj veliko pozornosti na tem strežniku.", "dismissable_banner.explore_tags": "Ravno zdaj dobivajo ti ključniki veliko pozoronosti med osebami na tem in drugih strežnikih decentraliziranega omrežja.", + "dismissable_banner.public_timeline": "To so najnovejše javne objave oseb z družabnega omrežja, ki jim sledijo osebe na {domain}.", "embed.instructions": "Vstavite to objavo na svojo spletno stran tako, da kopirate spodnjo kodo.", "embed.preview": "Tako bo izgledalo:", "emoji_button.activity": "Dejavnost", @@ -301,6 +302,7 @@ "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži izpostavitve", "home.column_settings.show_replies": "Pokaži odgovore", + "home.explore_prompt.body": "Vaš domači vir bo vseboval mešanico objav ključnikov, ki ste jih izbrali za sledenje, oseb, ki ste jih izbrali za sledenje, in objav, ki jih ti izpostavljajo. Če se vam to zdi preveč tiho, morda želite:", "home.explore_prompt.title": "To je vaš dom v okviru Mastodona.", "home.hide_announcements": "Skrij obvestila", "home.show_announcements": "Pokaži obvestila", @@ -308,10 +310,13 @@ "interaction_modal.description.follow": "Z računom na Mastodonu lahko sledite {name}, da prejemate njihove objave v svoj domači vir.", "interaction_modal.description.reblog": "Z računom na Mastodonu lahko izpostavite to objavo, tako da jo delite s svojimi sledilci.", "interaction_modal.description.reply": "Z računom na Mastodonu lahko odgovorite na to objavo.", + "interaction_modal.login.action": "Vrni me domov", + "interaction_modal.login.prompt": "Domena vašega domačega strežnika, npr. mastodon.social", + "interaction_modal.no_account_yet": "Niste na Mastodonu?", "interaction_modal.on_another_server": "Na drugem strežniku", "interaction_modal.on_this_server": "Na tem strežniku", - "interaction_modal.other_server_instructions": "Kopirajte in prilepite ta URL v polje iskanja vašega priljubljenega programa Mastodon ali spletnega vmesnika vašega strežnika Mastodon.", - "interaction_modal.preamble": "Ker je Mastodon decentraliziran, lahko uporabite svoj obstoječi račun, ki gostuje na drugem strežniku Mastodon ali združljivi platformi, če nimate računa na tej.", + "interaction_modal.sign_in": "Niste prijavljeni v ta strežnik. Kje gostuje vaš račun?", + "interaction_modal.sign_in_hint": "Nasvet: To je spletno mesto, na katerem ste se prijavili. Če se ne spomnite, poiščite pozdravno e-poštno sporočilo v svojem e-poštnem predalu. Vpišete lahko tudi svoje celotno uporabniško ime (npr. @Mastodon@mastodon.social)!", "interaction_modal.title.favourite": "Daj objavo {name} med priljubljene", "interaction_modal.title.follow": "Sledi {name}", "interaction_modal.title.reblog": "Izpostavi objavo {name}", @@ -360,6 +365,7 @@ "lightbox.previous": "Prejšnji", "limited_account_hint.action": "Vseeno pokaži profil", "limited_account_hint.title": "Profil so moderatorji strežnika {domain} skrili.", + "link_preview.author": "Avtor_ica {name}", "lists.account.add": "Dodaj na seznam", "lists.account.remove": "Odstrani s seznama", "lists.delete": "Izbriši seznam", @@ -592,6 +598,7 @@ "server_banner.server_stats": "Statistika strežnika:", "sign_in_banner.create_account": "Ustvari račun", "sign_in_banner.sign_in": "Prijava", + "sign_in_banner.sso_redirect": "Prijavite ali registrirajte se", "sign_in_banner.text": "Prijavite se, da sledite profilom ali ključnikom, dodajate med priljubljene, delite z drugimi ter odgovarjate na objave. V interakciji ste lahko tudi iz svojega računa na drugem strežniku.", "status.admin_account": "Odpri vmesnik za moderiranje za @{name}", "status.admin_domain": "Odpri vmesnik za moderiranje za {domain}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 915d374312..4add2f063a 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -189,7 +189,6 @@ "conversation.open": "Shfaq bisedën", "conversation.with": "Me {names}", "copypaste.copied": "U kopjua", - "copypaste.copy": "Kopjoje", "copypaste.copy_to_clipboard": "Kopjoje në të papastër", "directory.federated": "Nga fedivers i njohur", "directory.local": "Vetëm nga {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Bazë", "home.column_settings.show_reblogs": "Shfaq përforcime", "home.column_settings.show_replies": "Shfaq përgjigje", - "home.explore_prompt.body": "Prurja juaj bazë do të përmbajë një përzierje prej postimesh me hashtag-ët që keni zgjedhur të ndiqen, personat që keni zgjedhur të ndiqen dhe postimet që ata përforcojnë. Duket goxha bukur që tani, ndaj po sikur:", "home.explore_prompt.title": "Kjo është baza juaj brenda Mastodon-it.", "home.hide_announcements": "Fshihi lajmërimet", "home.show_announcements": "Shfaqi lajmërimet", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "Me një llogari në Mastodon, mund t’i përgjigjeni këtij postimi.", "interaction_modal.on_another_server": "Në një tjetër shërbyes", "interaction_modal.on_this_server": "Në këtë shërbyes", - "interaction_modal.preamble": "Ngaqë Mastodon-i është i decentralizuar, mund të përdorni llogarinë tuaj ekzistuese të strehuar nga një tjetër shërbyes Mastodon, ose platformë e përputhshme, nëse s’keni një llogari në këtë shërbyes.", "interaction_modal.title.follow": "Ndiq {name}", "interaction_modal.title.reblog": "Përforconi postimin e {name}", "interaction_modal.title.reply": "Përgjigjuni postimit të {name}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 4ea3f74dcf..9c155e8f62 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -191,7 +191,6 @@ "conversation.open": "Prikaži razgovor", "conversation.with": "Sa {names}", "copypaste.copied": "Kopirano", - "copypaste.copy": "Kopiraj", "copypaste.copy_to_clipboard": "Kopiraj", "directory.federated": "Sa znanog fediverzuma", "directory.local": "Samo sa {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Osnovna", "home.column_settings.show_reblogs": "Prikaži podržavanja", "home.column_settings.show_replies": "Prikaži odgovore", - "home.explore_prompt.body": "Vaša početna stranica će imati mešavinu ovjava od heštegova koje ste izabrali da pratite, ljudi koje ste izabrali da pratite i objava koje su podržali. Trenutno izgleda prilično tiho, pa šta kažete na:", + "home.explore_prompt.body": "Vaša početna stranica će imati mešavinu objava od heš oznaka koje ste izabrali da pratite, ljudi koje ste izabrali da pratite i objava koje su podržali. Ako izgleda previše tiho, možda ćete želeti da:", "home.explore_prompt.title": "Ovo je vaša matična baza u Mastodon-u.", "home.hide_announcements": "Sakrij najave", "home.show_announcements": "Prijaži najave", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Sa nalogom na Mastodon-u, možete pratiti korisnika {name} kako biste primali njegove objave na početnoj stranici.", "interaction_modal.description.reblog": "Sa nalogom na Mastodon-u, možete podržati ovu objavu kako bite je podelili sa svojim pratiocima.", "interaction_modal.description.reply": "Sa nalogom na Mastodon-u, možete odgovoriti na ovu objavu.", + "interaction_modal.login.action": "Vodi me na početnu stranicu", + "interaction_modal.login.prompt": "Domen vašeg matičnog servera, npr. mastodon.social", + "interaction_modal.no_account_yet": "Niste na Mastodon-u?", "interaction_modal.on_another_server": "Na drugom serveru", "interaction_modal.on_this_server": "Na ovom serveru", - "interaction_modal.other_server_instructions": "Kopirajte i nalepite ovu URL adresu u polje pretrage svoje omiljene Mastodon aplikacije ili veb okruženje svog Mastodon servera.", - "interaction_modal.preamble": "Pošto je Mastodon decentralizovan, možete koristiti svoj postojeći nalog koji hostuje drugi Mastodon server ili kompatibilna platforma ako nemate nalog na ovom.", + "interaction_modal.sign_in": "Niste prijavljeni na ovaj server. Gde je hostovan vaš nalog?", + "interaction_modal.sign_in_hint": "Savet: To je veb sajt na kome ste se registrovali. Ako se ne sećate, potražite e-poruku dobrodošlice u svom prijemnom sandučetu. Takođe možete uneti svoje puno korisničko ime! (npr. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Označi objavu korisnika {name} kao omiljenu", "interaction_modal.title.follow": "Zaprati {name}", "interaction_modal.title.reblog": "Podrži objavu korisnika {name}", @@ -466,7 +468,7 @@ "onboarding.compose.template": "Zdravo #Mastodon!", "onboarding.follows.empty": "Nažalost, trenutno se ne mogu prikazati rezultati. Možete pokušati sa korišćenjem pretrage ili pregledanjem stranice za istraživanje da biste pronašli ljude koje ćete pratiti ili pokušajte ponovo kasnije.", "onboarding.follows.lead": "Vi sami birate svoju početnu stranicu. Što više ljudi pratite, to će biti aktivnije i zanimljivije. Ovi profili mogu biti dobra polazna tačka—uvek možete da ih prestanete pratiti kasnije!", - "onboarding.follows.title": "Popularno na Mastodon-u", + "onboarding.follows.title": "Personalizujte svoju početnu stranicu", "onboarding.share.lead": "Neka ljudi znaju kako mogu da vas pronađu na Mastodon-u!", "onboarding.share.message": "Ja sam {username} na #Mastodon-u! Pratite me na {url}", "onboarding.share.next_steps": "Mogući sledeći koraci:", @@ -475,7 +477,7 @@ "onboarding.start.skip": "Želite da preskočite?", "onboarding.start.title": "Uspeli ste!", "onboarding.steps.follow_people.body": "Vi sami birate svoju početnu stranicu. Hajde da ga ispunimo zanimljivim ljudima.", - "onboarding.steps.follow_people.title": "Pratite {count, plural, one {# osobu} few {# osobe} other {# osoba}}", + "onboarding.steps.follow_people.title": "Personalizujte svoju početnu stranicu", "onboarding.steps.publish_status.body": "Reci zdravo svetu.", "onboarding.steps.publish_status.title": "Napišite svoju prvu objavu", "onboarding.steps.setup_profile.body": "Veća je verovatnoća da će drugi komunicirati sa vama sa popunjenim profilom.", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Statistike servera:", "sign_in_banner.create_account": "Napravite nalog", "sign_in_banner.sign_in": "Prijavite se", + "sign_in_banner.sso_redirect": "Prijavite se ili se registrujte", "sign_in_banner.text": "Prijavite se da biste pratili profile ili heš oznake, označili objave kao omiljene, delili i odgovarali na njih. Takođe možete komunicirati sa svog naloga na drugom serveru.", "status.admin_account": "Otvori moderatorsko okruženje za @{name}", "status.admin_domain": "Otvori moderatorsko okruženje za {domain}", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index e1a5315e94..2f6545f584 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -191,7 +191,6 @@ "conversation.open": "Прикажи разговор", "conversation.with": "Са {names}", "copypaste.copied": "Копирано", - "copypaste.copy": "Копирај", "copypaste.copy_to_clipboard": "Копирај", "directory.federated": "Са знаног федиверзума", "directory.local": "Само са {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Основна", "home.column_settings.show_reblogs": "Прикажи подржавања", "home.column_settings.show_replies": "Прикажи одговоре", - "home.explore_prompt.body": "Ваша почетна страница ће имати мешавину овјава од хештегова које сте изабрали да пратите, људи које сте изабрали да пратите и објава које су подржали. Тренутно изгледа прилично тихо, па шта кажете на:", + "home.explore_prompt.body": "Ваша почетна страница ће имати мешавину објава од хеш ознака које сте изабрали да пратите, људи које сте изабрали да пратите и објава које су подржали. Ако изгледа превише тихо, можда ћете желети да:", "home.explore_prompt.title": "Ово је ваша матична база у Mastodon-у.", "home.hide_announcements": "Сакриј најаве", "home.show_announcements": "Пријажи најаве", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Са налогом на Mastodon-у, можете пратити корисника {name} како бисте примали његове објаве на почетној страници.", "interaction_modal.description.reblog": "Са налогом на Mastodon-у, можете подржати ову објаву како бите је поделили са својим пратиоцима.", "interaction_modal.description.reply": "Са налогом на Mastodon-у, можете одговорити на ову објаву.", + "interaction_modal.login.action": "Води ме на почетну страницу", + "interaction_modal.login.prompt": "Домен вашег матичног сервера, нпр. mastodon.social", + "interaction_modal.no_account_yet": "Нисте на Mastodon-у?", "interaction_modal.on_another_server": "На другом серверу", "interaction_modal.on_this_server": "На овом серверу", - "interaction_modal.other_server_instructions": "Копирајте и налепите ову URL адресу у поље претраге своје омиљене Mastodon апликације или веб окружење свог Mastodon сервера.", - "interaction_modal.preamble": "Пошто је Mastodon децентрализован, можете користити свој постојећи налог који хостује други Mastodon сервер или компатибилна платформа ако немате налог на овом.", + "interaction_modal.sign_in": "Нисте пријављени на овај сервер. Где је хостован ваш налог?", + "interaction_modal.sign_in_hint": "Савет: То је веб сајт на коме сте се регистровали. Ако се не сећате, потражите е-поруку добродошлице у свом пријемном сандучету. Такође можете унети своје пуно корисничко име! (нпр. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Означи објаву корисника {name} као омиљену", "interaction_modal.title.follow": "Запрати {name}", "interaction_modal.title.reblog": "Подржи објаву корисника {name}", @@ -466,7 +468,7 @@ "onboarding.compose.template": "Здраво #Mastodon!", "onboarding.follows.empty": "Нажалост, тренутно се не могу приказати резултати. Можете покушати са коришћењем претраге или прегледањем странице за истраживање да бисте пронашли људе које ћете пратити или покушајте поново касније.", "onboarding.follows.lead": "Ви сами бирате своју почетну страницу. Што више људи пратите, то ће бити активније и занимљивије. Ови профили могу бити добра полазна тачка—увек можете да их престанете пратити касније!", - "onboarding.follows.title": "Популарно на Mastodon-у", + "onboarding.follows.title": "Персонализујте своју почетну страницу", "onboarding.share.lead": "Нека људи знају како могу да вас пронађу на Mastodon-у!", "onboarding.share.message": "Ја сам {username} на #Mastodon-у! Пратите ме на {url}", "onboarding.share.next_steps": "Могући следећи кораци:", @@ -475,7 +477,7 @@ "onboarding.start.skip": "Желите да прескочите?", "onboarding.start.title": "Успели сте!", "onboarding.steps.follow_people.body": "Ви сами бирате своју почетну страницу. Хајде да га испунимо занимљивим људима.", - "onboarding.steps.follow_people.title": "Пратите {count, plural, one {# особу} few {# особе} other {# особа}}", + "onboarding.steps.follow_people.title": "Персонализујте своју почетну страницу", "onboarding.steps.publish_status.body": "Реци здраво свету.", "onboarding.steps.publish_status.title": "Напишите своју прву објаву", "onboarding.steps.setup_profile.body": "Већа је вероватноћа да ће други комуницирати са вама са попуњеним профилом.", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Статистике сервера:", "sign_in_banner.create_account": "Направите налог", "sign_in_banner.sign_in": "Пријавите се", + "sign_in_banner.sso_redirect": "Пријавите се или се региструјте", "sign_in_banner.text": "Пријавите се да бисте пратили профиле или хеш ознаке, означили објаве као омиљене, делили и одговарали на њих. Такође можете комуницирати са свог налога на другом серверу.", "status.admin_account": "Отвори модераторско окружење за @{name}", "status.admin_domain": "Отвори модераторско окружење за {domain}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index ea0d2205d0..54c462c4b5 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -76,6 +76,10 @@ "admin.dashboard.retention.average": "Genomsnittlig", "admin.dashboard.retention.cohort": "Registreringsmånad", "admin.dashboard.retention.cohort_size": "Nya användare", + "admin.impact_report.instance_accounts": "Kontoprofiler som det här skulle ta bort", + "admin.impact_report.instance_followers": "Följare som våra användare skulle förlora", + "admin.impact_report.instance_follows": "Följare som deras användare skulle förlora", + "admin.impact_report.title": "Sammanfattning av påverkan", "alert.rate_limited.message": "Vänligen försök igen efter {retry_time, time, medium}.", "alert.rate_limited.title": "Mängd begränsad", "alert.unexpected.message": "Ett oväntat fel uppstod.", @@ -186,7 +190,6 @@ "conversation.open": "Visa konversation", "conversation.with": "Med {names}", "copypaste.copied": "Kopierad", - "copypaste.copy": "Kopiera", "copypaste.copy_to_clipboard": "Kopiera till urklipp", "directory.federated": "Från känt fediversum", "directory.local": "Endast från {domain}", @@ -198,6 +201,7 @@ "dismissable_banner.dismiss": "Avfärda", "dismissable_banner.explore_links": "Dessa nyheter pratas det om just nu, på denna och på andra servrar i det decentraliserade nätverket.", "dismissable_banner.explore_tags": "Dessa hashtaggar pratas det om just nu bland folk på denna och andra servrar i det decentraliserade nätverket.", + "dismissable_banner.public_timeline": "De här är de aktuella publika inlägg från personer på det sociala nätet som personer i {domain} följer.", "embed.instructions": "Bädda in detta inlägg på din webbplats genom att kopiera koden nedan.", "embed.preview": "Så här kommer det att se ut:", "emoji_button.activity": "Aktivitet", @@ -224,6 +228,7 @@ "empty_column.direct": "Du har inga privata nämningar. När du skickar eller tar emot ett direktmeddelande kommer det att visas här.", "empty_column.domain_blocks": "Det finns ännu inga dolda domäner.", "empty_column.explore_statuses": "Ingenting är trendigt just nu. Kom tillbaka senare!", + "empty_column.favourited_statuses": "Du har inga favoritmarkerade inlägg ännu. När du favoritmärker ett så kommer det att dyka upp här.", "empty_column.follow_requests": "Du har inga följarförfrågningar än. När du får en kommer den visas här.", "empty_column.followed_tags": "Du följer inga hashtaggar ännu. När du gör det kommer de att dyka upp här.", "empty_column.hashtag": "Det finns inget i denna hashtag ännu.", @@ -298,9 +303,9 @@ "interaction_modal.description.follow": "Med ett Mastodon-konto kan du följa {name} för att se hens inlägg i ditt hemflöde.", "interaction_modal.description.reblog": "Med ett Mastodon-konto kan du boosta detta inlägg för att dela den med dina egna följare.", "interaction_modal.description.reply": "Med ett Mastodon-konto kan du svara på detta inlägg.", + "interaction_modal.no_account_yet": "Inte på Mastodon?", "interaction_modal.on_another_server": "På en annan server", "interaction_modal.on_this_server": "På denna server", - "interaction_modal.preamble": "Eftersom Mastodon är decentraliserat kan du använda ditt befintliga konto från en annan Mastodonserver, eller annan kompatibel plattform, om du inte har ett konto på denna.", "interaction_modal.title.follow": "Följ {name}", "interaction_modal.title.reblog": "Boosta {name}s inlägg", "interaction_modal.title.reply": "Svara på {name}s inlägg", @@ -407,6 +412,7 @@ "notifications.column_settings.admin.report": "Nya rapporter:", "notifications.column_settings.admin.sign_up": "Nya registreringar:", "notifications.column_settings.alert": "Skrivbordsaviseringar", + "notifications.column_settings.favourite": "Favoriter:", "notifications.column_settings.filter_bar.advanced": "Visa alla kategorier", "notifications.column_settings.filter_bar.category": "Snabbfilter", "notifications.column_settings.filter_bar.show_bar": "Visa filterfält", @@ -563,6 +569,7 @@ "server_banner.server_stats": "Serverstatistik:", "sign_in_banner.create_account": "Skapa konto", "sign_in_banner.sign_in": "Logga in", + "sign_in_banner.sso_redirect": "Logga in eller registrera dig", "status.admin_account": "Öppet modereringsgränssnitt för @{name}", "status.admin_domain": "Öppet modereringsgränssnitt för @{domain}", "status.admin_status": "Öppna detta inlägg i modereringsgränssnittet", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 8f0cc74564..3d0f64bce7 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -191,7 +191,6 @@ "conversation.open": "ดูการสนทนา", "conversation.with": "กับ {names}", "copypaste.copied": "คัดลอกแล้ว", - "copypaste.copy": "คัดลอก", "copypaste.copy_to_clipboard": "คัดลอกไปยังคลิปบอร์ด", "directory.federated": "จากจักรวาลสหพันธ์ที่รู้จัก", "directory.local": "จาก {domain} เท่านั้น", @@ -303,7 +302,7 @@ "home.column_settings.basic": "พื้นฐาน", "home.column_settings.show_reblogs": "แสดงการดัน", "home.column_settings.show_replies": "แสดงการตอบกลับ", - "home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน ฟีดดูค่อนข้างเงียบในตอนนี้ ดังนั้นแล้วถ้าเป็น:", + "home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน หากนั่นรู้สึกเงียบเกินไป คุณอาจต้องการ:", "home.explore_prompt.title": "นี่คือฐานหน้าแรกของคุณภายใน Mastodon", "home.hide_announcements": "ซ่อนประกาศ", "home.show_announcements": "แสดงประกาศ", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "ด้วยบัญชีใน Mastodon คุณสามารถติดตาม {name} เพื่อรับโพสต์ของเขาในฟีดหน้าแรกของคุณ", "interaction_modal.description.reblog": "ด้วยบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแบ่งปันโพสต์กับผู้ติดตามของคุณเอง", "interaction_modal.description.reply": "ด้วยบัญชีใน Mastodon คุณสามารถตอบกลับโพสต์นี้", + "interaction_modal.login.action": "นำฉันกลับบ้าน", + "interaction_modal.login.prompt": "โดเมนของเซิร์ฟเวอร์บ้านของคุณ เช่น mastodon.social", + "interaction_modal.no_account_yet": "ไม่ได้อยู่ใน Mastodon?", "interaction_modal.on_another_server": "ในเซิร์ฟเวอร์อื่น", "interaction_modal.on_this_server": "ในเซิร์ฟเวอร์นี้", - "interaction_modal.other_server_instructions": "คัดลอกแล้ววาง URL นี้ลงในช่องค้นหาของแอป Mastodon โปรดของคุณหรือส่วนติดต่อเว็บของเซิร์ฟเวอร์ Mastodon ของคุณ", - "interaction_modal.preamble": "เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ คุณสามารถใช้บัญชีที่มีอยู่ของคุณที่ได้รับการโฮสต์โดยเซิร์ฟเวอร์ Mastodon อื่นหรือแพลตฟอร์มที่เข้ากันได้หากคุณไม่มีบัญชีในเซิร์ฟเวอร์นี้", + "interaction_modal.sign_in": "คุณไม่ได้เข้าสู่ระบบเซิร์ฟเวอร์นี้ บัญชีของคุณโฮสต์อยู่ที่ไหน?", + "interaction_modal.sign_in_hint": "เคล็ดลับ: นั่นคือเว็บไซต์ที่คุณได้ลงทะเบียน หากคุณจำไม่ได้ มองหาอีเมลต้อนรับในกล่องขาเข้าของคุณ คุณยังสามารถป้อนชื่อผู้ใช้เต็มของคุณ! (เช่น @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "ชื่นชอบโพสต์ของ {name}", "interaction_modal.title.follow": "ติดตาม {name}", "interaction_modal.title.reblog": "ดันโพสต์ของ {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "สถิติเซิร์ฟเวอร์:", "sign_in_banner.create_account": "สร้างบัญชี", "sign_in_banner.sign_in": "เข้าสู่ระบบ", + "sign_in_banner.sso_redirect": "เข้าสู่ระบบหรือลงทะเบียน", "sign_in_banner.text": "เข้าสู่ระบบเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แบ่งปัน และตอบกลับโพสต์ คุณยังสามารถโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น", "status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}", "status.admin_domain": "เปิดส่วนติดต่อการควบคุมสำหรับ {domain}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index c0f917ddd9..bc8855a75e 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -60,7 +60,7 @@ "account.requested": "Onay bekleniyor. Takip isteğini iptal etmek için tıklayın", "account.requested_follow": "{name} size takip isteği gönderdi", "account.share": "@{name} adlı kişinin profilini paylaş", - "account.show_reblogs": "@{name} kişisinin boostlarını göster", + "account.show_reblogs": "@{name} kişisinin yeniden paylaşımlarını göster", "account.statuses_counter": "{count, plural, one {{counter} Gönderi} other {{counter} Gönderi}}", "account.unblock": "@{name} adlı kişinin engelini kaldır", "account.unblock_domain": "{domain} alan adının engelini kaldır", @@ -109,11 +109,11 @@ "column.about": "Hakkında", "column.blocks": "Engellenen kullanıcılar", "column.bookmarks": "Yer İşaretleri", - "column.community": "Yerel zaman tüneli", + "column.community": "Yerel ağ akışı", "column.direct": "Özel değinmeler", "column.directory": "Profillere göz at", "column.domain_blocks": "Engellenen alan adları", - "column.favourites": "Gözdeler", + "column.favourites": "Favorilerin", "column.firehose": "Anlık Akışlar", "column.follow_requests": "Takip istekleri", "column.home": "Anasayfa", @@ -121,7 +121,7 @@ "column.mutes": "Sessize alınmış kullanıcılar", "column.notifications": "Bildirimler", "column.pins": "Sabitlenmiş gönderiler", - "column.public": "Federe zaman tüneli", + "column.public": "Federe ağ akışı", "column_back_button.label": "Geri", "column_header.hide_settings": "Ayarları gizle", "column_header.moveLeft_settings": "Sütunu sola taşı", @@ -138,7 +138,7 @@ "compose.published.body": "Gönderi yayınlandı.", "compose.published.open": "Aç", "compose_form.direct_message_warning_learn_more": "Daha fazla bilgi edinin", - "compose_form.encryption_warning": "Mastodon gönderileri uçtan uca şifrelemeli değildir. Hassas olabilecek herhangi bir bilgiyi Mastodon'da paylaşmayın.", + "compose_form.encryption_warning": "Mastodon gönderileri uçtan uca şifreli değildir. Hassas olabilecek herhangi bir bilgiyi Mastodon'da paylaşmayınız.", "compose_form.hashtag_warning": "Bu gönderi herkese açık olmadığı için hiç bir etikette yer almayacak. Sadece herkese açık gönderiler etiketlerde bulunabilir.", "compose_form.lock_disclaimer": "Hesabın {locked} değil. Yalnızca takipçilere özel gönderilerini görüntülemek için herkes seni takip edebilir.", "compose_form.lock_disclaimer.lock": "kilitli", @@ -149,8 +149,8 @@ "compose_form.poll.remove_option": "Bu seçeneği kaldır", "compose_form.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir", "compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir", - "compose_form.publish": "Tootla", - "compose_form.publish_form": "Tootla", + "compose_form.publish": "Gönder", + "compose_form.publish_form": "Gönder", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Değişiklikleri kaydet", "compose_form.sensitive.hide": "{count, plural, one {Medyayı hassas olarak işaretle} other {Medyayı hassas olarak işaretle}}", @@ -181,7 +181,7 @@ "confirmations.mute.explanation": "Bu, onlardan gelen ve bahseden gönderileri gizler. Ancak yine de gönderilerini görmelerine ve seni takip etmelerine izin verilir.", "confirmations.mute.message": "{name} kullanıcısını sessize almak istediğinden emin misin?", "confirmations.redraft.confirm": "Sil Düzenle ve yeniden paylaş", - "confirmations.redraft.message": "Bu gönderiyi silmek ve yeniden paylaşmak istediğinizden emin misiniz? Favoriler ve güncelemeler kaybolacak ve özgün gönderiye verilen yanıtlar silinecek.", + "confirmations.redraft.message": "Bu gönderiyi silip taslak haline getirmek istediğinize emin misiniz? Mevcut favoriler ve boostlar silinecek ve gönderiye verilen yanıtlar başıboş kalacak.", "confirmations.reply.confirm": "Yanıtla", "confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğun mesajın üzerine yazılır. Devam etmek istediğine emin misin?", "confirmations.unfollow.confirm": "Takibi bırak", @@ -191,7 +191,6 @@ "conversation.open": "Sohbeti görüntüle", "conversation.with": "{names} ile", "copypaste.copied": "Kopyalandı", - "copypaste.copy": "Kopyala", "copypaste.copy_to_clipboard": "Panoya kopyala", "directory.federated": "Bilinen fediverse'lerden", "directory.local": "Yalnızca {domain} adresinden", @@ -204,7 +203,7 @@ "dismissable_banner.explore_links": "Bu haberler, merkeziyetsiz ağın bu ve diğer sunucularındaki insanlar tarafından şimdilerde konuşuluyor.", "dismissable_banner.explore_statuses": "Merkeziyetsiz ağın bu ve diğer sunucularındaki bu gönderiler, mevcut sunucuda şimdilerde ilgi çekiyorlar.", "dismissable_banner.explore_tags": "Bu etiketler, merkeziyetsiz ağda bulunan bu ve diğer sunuculardaki insanların şimdilerde ilgisini çekiyor.", - "dismissable_banner.public_timeline": "Bunlar, {domain} üzeirndeki insanların, sosyal medyada takip ettiği insanlarca gönderilen en son herkese açık gönderilerdir.", + "dismissable_banner.public_timeline": "Bunlar, {domain} üzerindeki insanların, sosyal ağ da takip ettiği insanlarca gönderilen en son ve herkese açık gönderilerdir.", "embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.", "embed.preview": "İşte nasıl görüneceği:", "emoji_button.activity": "Aktivite", @@ -231,7 +230,7 @@ "empty_column.direct": "Henüz doğrudan değinmeniz yok. Bir tane gönderdiğinizde veya aldığınızda burada listelenecekler.", "empty_column.domain_blocks": "Henüz engellenmiş bir alan adı yok.", "empty_column.explore_statuses": "Şu an öne çıkan birşey yok. Daha sonra tekrar bakın!", - "empty_column.favourited_statuses": "Henüz gözde gönderileriniz yok. En sevdiğin zaman, burada görünecek.", + "empty_column.favourited_statuses": "Henüz bir gönderiyi favorilerinize eklememişsiniz. Bir gönderiyi favorilerinize eklediğinizde burada görünecek.", "empty_column.favourites": "Bu yazıyı henüz hiç kimse beğenmedi. Biri geldiğinde, buraya gelecekler.", "empty_column.follow_requests": "Hiç takip isteğiniz yok. Bir tane aldığınızda burada görünecek.", "empty_column.followed_tags": "Henüz hiç bir etiket takip etmiyorsunuz. Takip ettiğiniz etiketler burada görüntülenecek.", @@ -258,7 +257,7 @@ "filter_modal.added.context_mismatch_title": "Bağlam uyumsuzluğu!", "filter_modal.added.expired_explanation": "Bu süzgeç kategorisinin süresi dolmuş, süzgeci uygulamak için bitiş tarihini değiştirmeniz gerekiyor.", "filter_modal.added.expired_title": "Süresi dolmuş süzgeç!", - "filter_modal.added.review_and_configure": "Bu süzgeç kategorisini gözden geçirmek ve daha ayrıntılı bir şekilde yapılandırmak için {settings_link} adresine gidin.", + "filter_modal.added.review_and_configure": "Bu filtre kategorisini gözden geçirmek ve daha ayrıntılı bir şekilde yapılandırmak için {settings_link} adresine gidin.", "filter_modal.added.review_and_configure_title": "Süzgeç ayarları", "filter_modal.added.settings_link": "ayarlar sayfası", "filter_modal.added.short_explanation": "Bu gönderi şu süzgeç kategorisine eklendi: {title}.", @@ -275,7 +274,7 @@ "firehose.remote": "Diğer sunucular", "follow_request.authorize": "İzin Ver", "follow_request.reject": "Reddet", - "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa bile, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.", + "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa da, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.", "followed_tags": "Takip edilen etiketler", "footer.about": "Hakkında", "footer.directory": "Profil dizini", @@ -301,38 +300,41 @@ "home.actions.go_to_explore": "Öne çıkanları gör", "home.actions.go_to_suggestions": "Takip edecek kişileri bulun", "home.column_settings.basic": "Temel", - "home.column_settings.show_reblogs": "Boostları göster", + "home.column_settings.show_reblogs": "Yeniden paylaşımları göster", "home.column_settings.show_replies": "Yanıtları göster", - "home.explore_prompt.body": "Ana sayfa akışınızda, takip etmeyi seçtiğiniz hashtag'lerden, takip etmeyi seçtiğiniz kişilerden ve öne çıkardıkları gönderilerden oluşan bir karışım bulunur. Şu anda oldukça sessiz görünüyor, peki ya:", + "home.explore_prompt.body": "Ana sayfa akışınızda, takip etmeyi seçtiğiniz ETİKETlerden, takip etmeyi seçtiğiniz kişilerden ve öne çıkardıkları gönderilerden oluşan bir karışım bulunur. Şu anda oldukça sessiz görünüyor, gör ve takip et :", "home.explore_prompt.title": "Burası Mastodon'daki Anasayfanız.", "home.hide_announcements": "Duyuruları gizle", "home.show_announcements": "Duyuruları göster", - "interaction_modal.description.favourite": "Mastodon'da bir hesapla, yazarı takdir ettiğinizi bildirmek ve daha sonraya saklamak için bu gönderiyi gözdelerinize ekleyebilirsiniz.", + "interaction_modal.description.favourite": "Bir Mastodon hesabıyla bu gönderiyi favorilerinize ekleyerek yazara gönderiyi beğendiğinizi bildirebilir ve daha sonrası için kaydedebilirsiniz.", "interaction_modal.description.follow": "Mastodon'daki bir hesapla, {name} kişisini, ana akışınızdaki gönderilerini görmek üzere takip edebilirsiniz.", "interaction_modal.description.reblog": "Mastodon'daki bir hesapla, bu gönderiyi takipçilerinizle paylaşmak için tuşlayabilirsiniz.", "interaction_modal.description.reply": "Mastodon'daki bir hesapla, bu gönderiye yanıt verebilirsiniz.", + "interaction_modal.login.action": "Anasayfaya geri dön", + "interaction_modal.login.prompt": "Ev sunucunuzun etki alanı, örneğin mastodon.social", + "interaction_modal.no_account_yet": "Mastodon açık değil?", "interaction_modal.on_another_server": "Farklı bir sunucuda", "interaction_modal.on_this_server": "Bu sunucuda", - "interaction_modal.other_server_instructions": "Bu bağlamtıyı kopyalayıp gözde Mastodon uygulamanızın arama alanına veya Mastodon sunucunuzun web arayüzüne yapıştırın.", - "interaction_modal.preamble": "Mastodon merkeziyetsiz olduğu için, bu sunucuda bir hesabınız yoksa bile başka bir Mastodon sunucusunda veya uyumlu bir platformda barındırılan mevcut hesabınızı kullanabilirsiniz.", - "interaction_modal.title.favourite": "Gözde {name}'s gönderisi", + "interaction_modal.sign_in": "Bu sunucuya giriş yapmadınız. Hesabınız nerede barındırılıyor?", + "interaction_modal.sign_in_hint": "İpucu: Kaydolduğunuz web sitesi budur. Hatırlamıyorsanız, gelen kutunuzdaki hoş geldiniz e-postasını arayın. Tam kullanıcı adınızı da girebilirsiniz! (örneğin @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "{name} kişisinin gönderisini favorilerine ekle", "interaction_modal.title.follow": "{name} kişisini takip et", - "interaction_modal.title.reblog": "{name} kişisinin gönderisini boostla", + "interaction_modal.title.reblog": "{name} kişisinin gönderisini yeniden paylaş", "interaction_modal.title.reply": "{name} kişisinin gönderisine yanıt ver", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}", "keyboard_shortcuts.back": "Geriye git", "keyboard_shortcuts.blocked": "Engellenen kullanıcılar listesini aç", - "keyboard_shortcuts.boost": "Gönderiyi boostla", + "keyboard_shortcuts.boost": "Gönderiyi yeniden paylaş", "keyboard_shortcuts.column": "Sütunlardan birindeki duruma odaklanmak için", "keyboard_shortcuts.compose": "Yazma alanına odaklanmak için", "keyboard_shortcuts.description": "Açıklama", "keyboard_shortcuts.direct": "özel değinmeler sütununu açmak için", "keyboard_shortcuts.down": "Listede aşağıya inmek için", "keyboard_shortcuts.enter": "gönderiyi aç", - "keyboard_shortcuts.favourite": "Gözde gönderi", - "keyboard_shortcuts.favourites": "Gözdendeki listeni aç", + "keyboard_shortcuts.favourite": "Gönderiyi favorilerine ekle", + "keyboard_shortcuts.favourites": "Favoriler listeni aç", "keyboard_shortcuts.federated": "Federe akışı aç", "keyboard_shortcuts.heading": "Klavye kısayolları", "keyboard_shortcuts.home": "Ana akışı aç", @@ -389,14 +391,14 @@ "navigation_bar.advanced_interface": "Gelişmiş web arayüzünde aç", "navigation_bar.blocks": "Engellenen kullanıcılar", "navigation_bar.bookmarks": "Yer İşaretleri", - "navigation_bar.community_timeline": "Yerel Zaman Tüneli", + "navigation_bar.community_timeline": "Yerel ağ akışı", "navigation_bar.compose": "Yeni gönderi yaz", "navigation_bar.direct": "Özel değinmeler", "navigation_bar.discover": "Keşfet", "navigation_bar.domain_blocks": "Engellenen alan adları", "navigation_bar.edit_profile": "Profili düzenle", "navigation_bar.explore": "Keşfet", - "navigation_bar.favourites": "Gözdelerin", + "navigation_bar.favourites": "Favorilerin", "navigation_bar.filters": "Sessize alınmış kelimeler", "navigation_bar.follow_requests": "Takip istekleri", "navigation_bar.followed_tags": "Takip edilen etiketler", @@ -407,19 +409,19 @@ "navigation_bar.personal": "Kişisel", "navigation_bar.pins": "Sabitlenmiş gönderiler", "navigation_bar.preferences": "Tercihler", - "navigation_bar.public_timeline": "Federe zaman tüneli", + "navigation_bar.public_timeline": "Federe ağ akışı", "navigation_bar.search": "Arama", "navigation_bar.security": "Güvenlik", "not_signed_in_indicator.not_signed_in": "Bu kaynağa erişmek için oturum açmanız gerekir.", "notification.admin.report": "{name}, {target} kişisini bildirdi", "notification.admin.sign_up": "{name} kaydoldu", - "notification.favourite": "{name} gönderinizi beğendi", + "notification.favourite": "{name} gönderinizden hoşlandı", "notification.follow": "{name} seni takip etti", "notification.follow_request": "{name} size takip isteği gönderdi", "notification.mention": "{name} senden bahsetti", "notification.own_poll": "Anketiniz sona erdi", "notification.poll": "Oy verdiğiniz bir anket sona erdi", - "notification.reblog": "{name} gönderini boostladı", + "notification.reblog": "{name} gönderini yeniden paylaştı", "notification.status": "{name} az önce gönderdi", "notification.update": "{name} bir gönderiyi düzenledi", "notifications.clear": "Bildirimleri temizle", @@ -427,16 +429,16 @@ "notifications.column_settings.admin.report": "Yeni bildirimler:", "notifications.column_settings.admin.sign_up": "Yeni kayıtlar:", "notifications.column_settings.alert": "Masaüstü bildirimleri", - "notifications.column_settings.favourite": "Gözdelerin:", + "notifications.column_settings.favourite": "Favorilerin:", "notifications.column_settings.filter_bar.advanced": "Tüm kategorileri görüntüle", - "notifications.column_settings.filter_bar.category": "Hızlı filtre çubuğu", - "notifications.column_settings.filter_bar.show_bar": "Süzme çubuğunu göster", + "notifications.column_settings.filter_bar.category": "Hızlı süzgeç çubuğu", + "notifications.column_settings.filter_bar.show_bar": "Süzgeç çubuğunu göster", "notifications.column_settings.follow": "Yeni takipçiler:", "notifications.column_settings.follow_request": "Yeni takip istekleri:", "notifications.column_settings.mention": "Değinmeler:", "notifications.column_settings.poll": "Anket sonuçları:", "notifications.column_settings.push": "Anlık bildirimler", - "notifications.column_settings.reblog": "Boostlar:", + "notifications.column_settings.reblog": "Yeniden paylaşanlar:", "notifications.column_settings.show": "Sütunda göster", "notifications.column_settings.sound": "Ses çal", "notifications.column_settings.status": "Yeni gönderiler:", @@ -444,8 +446,8 @@ "notifications.column_settings.unread_notifications.highlight": "Okunmamış bildirimleri öne çıkar", "notifications.column_settings.update": "Düzenlemeler:", "notifications.filter.all": "Tümü", - "notifications.filter.boosts": "Boostlar", - "notifications.filter.favourites": "Gözdelerin", + "notifications.filter.boosts": "Yeniden paylaşımlar", + "notifications.filter.favourites": "Favorilerin", "notifications.filter.follows": "Takip edilenler", "notifications.filter.mentions": "Değinmeler", "notifications.filter.polls": "Anket sonuçları", @@ -467,14 +469,14 @@ "onboarding.follows.empty": "Maalesef şu an bir sonuç gösterilemiyor. Takip edilecek kişileri bulmak için arama veya keşfet sayfasına gözatmayı kullanabilirsiniz veya daha sonra tekrar deneyin.", "onboarding.follows.lead": "Kendi ana akışınızı siz düzenliyorsunuz. Siz daha fazla insanı takip ettikçe, daha etkin ve ilgi çekici olacaktır. Bu profiller iyi bir başlangıç olabilir, isterseniz izlemeyi daha sonra bırakabilirsiniz:", "onboarding.follows.title": "Mastodon'da Popüler", - "onboarding.share.lead": "Kullanıcılara Mastodon'da size nasıl ulaşabileceklerini söyleyin!", + "onboarding.share.lead": "Kullanıcılara Mastodon'da size nasıl ulaşabileceklerini ifade edin!", "onboarding.share.message": "#Mastodon'da kullanıcı adım {username}! Beni takip etmek için {url} bağlantısını kullanın", "onboarding.share.next_steps": "Olası sonraki adımlar:", "onboarding.share.title": "Profilinizi paylaşın", "onboarding.start.lead": "Yeni Mastodon hesabınız kullanıma hazır. Ondan nasıl yararlanabilirsiniz:", "onboarding.start.skip": "Şimdilik bunların hepsini atlamak mı istiyorsunuz?", "onboarding.start.title": "Başardınız!", - "onboarding.steps.follow_people.body": "Kendi akışınızı düzenliyorsunuz. Hadi onu ilginç insanlarla dolduralım.", + "onboarding.steps.follow_people.body": "Kendi akışınızı düzenliyorsunuz. Hadi onu ilginç kullacılarla dolduralım.", "onboarding.steps.follow_people.title": "{count, plural, one {Bir kişiyi} other {# kişiyi}} takip edin", "onboarding.steps.publish_status.body": "Dünyaya merhaba deyin.", "onboarding.steps.publish_status.title": "İlk gönderinizi oluşturun", @@ -482,7 +484,7 @@ "onboarding.steps.setup_profile.title": "Profilinizi özelleştirin", "onboarding.steps.share_profile.body": "Arkadaşlarınıza Mastodon'da size nasıl ulaşabileceklerini söyleyin!", "onboarding.steps.share_profile.title": "Profilinizi paylaşın", - "onboarding.tips.2fa": "Biliyor muydunuz? Hesabınızı, hesap ayarlarında iki aşamalı doğrılamayı ayarlayarak güvenli kılabilirsiniz. Sizin seçiminiz olan herhangi bir TOTP uygulamasıyla çalışır, telefon numarası da gerekmiyor!", + "onboarding.tips.2fa": "Biliyor muydunuz? Hesabınızı, hesap ayarlarında iki aşamalı doğrılamayı ayarlayarak güvenli kılabilirsiniz. Sizin seçiminiz olan herhangi bir İki Faktörlü TOTP uygulamasıyla çalışır, telefon numarası da gerekmiyor!", "onboarding.tips.accounts_from_other_servers": "Biliyor muydunuz? Mastodon ademi merkeziyetçi olduğu için, karşılaştığınız bazı profiller sizinkinden farklı bir sunucuda barındırılacaktır. Buna rağmen onlarla sorunsuz bir şekilde etkileşebilirsiniz! Sunucuları, kullanıcı adlarının ikinci yarısıdır!", "onboarding.tips.migration": "Biliyor muydunuz? Eğer gelecekte {domain} sunucusunu çok iyi bulmazsanız, takipçilerinizi kaybetmeden başka bir Mastodon sunucusuna taşınabilirsiniz. Kendi sunucunuzu bile oluşturabilirsiniz!", "onboarding.tips.verification": "Biliyor muydunuz? Hesabınızı, kendi web sitenize Mastodon profilinize bir bağlantı koyarak, sonra da web sitenizin bağlantısını profilinize ekleyerek doğrulayabilirsiniz. Ne ücret ne de bir belge gerekiyor!", @@ -513,15 +515,15 @@ "refresh": "Yenile", "regeneration_indicator.label": "Yükleniyor…", "regeneration_indicator.sublabel": "Ana akışın hazırlanıyor!", - "relative_time.days": "{number}g", + "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# gün} other {# gün}} önce", "relative_time.full.hours": "{number, plural, one {# saat} other {# saat}} önce", "relative_time.full.just_now": "şimdi", "relative_time.full.minutes": "{number, plural, one {# dakika} other {# dakika}} önce", "relative_time.full.seconds": "{number, plural, one {# saniye} other {# saniye}} önce", - "relative_time.hours": "{number}s", + "relative_time.hours": "{number}h", "relative_time.just_now": "şimdi", - "relative_time.minutes": "{number}dk", + "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}sn", "relative_time.today": "bugün", "reply_indicator.cancel": "İptal", @@ -542,7 +544,7 @@ "report.mute_explanation": "Gönderilerini göremeyeceksiniz. Sizi takip etmeyi sürdürebilir ve gönderilerinizi görebilirler ama sessize alındıklarını anlamayacaklar.", "report.next": "Sonraki", "report.placeholder": "Ek yorumlar", - "report.reasons.dislike": "Beğenmedim", + "report.reasons.dislike": "Hoşlanmadım", "report.reasons.dislike_description": "Görmek isteyeceğiniz bir şey değil", "report.reasons.legal": "Bu yasalara aykırı", "report.reasons.legal_description": "Kendi veya sunucunuzun ülkesinin yasalarını ihlal ettiğini düşünüyorsunuz", @@ -575,9 +577,9 @@ "search.quick_action.account_search": "Eşleşen profiller {x}", "search.quick_action.go_to_account": "Profile git {x}", "search.quick_action.go_to_hashtag": "Etikete git {x}", - "search.quick_action.open_url": "URL'yi Mastodon'da Aç", + "search.quick_action.open_url": "Bağlantıyı Mastodon'da Aç", "search.quick_action.status_search": "Eşleşen gönderiler {x}", - "search.search_or_paste": "Ara veya URL gir", + "search.search_or_paste": "Ara veya Bağlantıyı yapıştır", "search_popout.quick_actions": "Hızlı eylemler", "search_popout.recent": "Son aramalar", "search_results.accounts": "Profiller", @@ -596,14 +598,15 @@ "server_banner.server_stats": "Sunucu istatistikleri:", "sign_in_banner.create_account": "Hesap oluştur", "sign_in_banner.sign_in": "Giriş yap", - "sign_in_banner.text": "Profilleri veya etiketleri takip etmek, gözdelerin, paylaşımlar ve gönderileri yanıtlamak için giriş yapın. Hesabınızdan farklı bir sunucuda da etkileşim içinde bulunabilirsiniz.", + "sign_in_banner.sso_redirect": "Giriş yap veya kaydol", + "sign_in_banner.text": "Profilleri ve hashtagleri takip etmek, gönderileri favorilerine eklemek, paylaşmak ve yanıtlamak için giriş yap. Farklı bir sunucudaki hesabınla da etkileşimde bulunabilirsin.", "status.admin_account": "@{name} için denetim arayüzünü açın", "status.admin_domain": "{domain} için denetim arayüzünü açın", "status.admin_status": "Denetim arayüzünde bu gönderiyi açın", "status.block": "@{name} adlı kişiyi engelle", "status.bookmark": "Yer işareti ekle", - "status.cancel_reblog_private": "Boostu geri al", - "status.cannot_reblog": "Bu gönderi boost edilemez", + "status.cancel_reblog_private": "Yeniden paylaşımı geri al", + "status.cannot_reblog": "Bu gönderi yeniden paylaşılamaz", "status.copy": "Bağlantı durumunu kopyala", "status.delete": "Sil", "status.detailed_status": "Ayrıntılı sohbet görünümü", @@ -613,9 +616,9 @@ "status.edited": "{date} tarihinde düzenlenmiş", "status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi", "status.embed": "Gömülü", - "status.favourite": "Gözdem", - "status.filter": "Bu gönderiyi filtrele", - "status.filtered": "Filtrelenmiş", + "status.favourite": "Favori", + "status.filter": "Bu gönderiyi süzgeçle", + "status.filtered": "Süzgeçlenmiş", "status.hide": "Gönderiyi gizle", "status.history.created": "{name} oluşturdu {date}", "status.history.edited": "{name} düzenledi {date}", @@ -631,11 +634,11 @@ "status.pin": "Profile sabitle", "status.pinned": "Sabitlenmiş gönderi", "status.read_more": "Devamını okuyun", - "status.reblog": "Boostla", - "status.reblog_private": "Orijinal görünürlük ile boostla", - "status.reblogged_by": "{name} boostladı", - "status.reblogs.empty": "Henüz hiç kimse bu Toot'u Boost'lamadı. Biri yaptığında burada görünecek.", - "status.redraft": "Sil ve yeniden taslak yap", + "status.reblog": "Yeniden paylaş", + "status.reblog_private": "Özgün görünürlük ile yeniden paylaş", + "status.reblogged_by": "{name} yeniden paylaştı", + "status.reblogs.empty": "Henüz hiç kimse bu Gönderiyi Yeniden Paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.", + "status.redraft": "Sil,Düzenle ve Yeniden paylaş", "status.remove_bookmark": "Yer işaretini kaldır", "status.replied_to": "{name} kullanıcısına yanıt verildi", "status.reply": "Yanıtla", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 2b9262e695..536e0a5333 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -175,7 +175,6 @@ "conversation.open": "Сөйләшүне карау", "conversation.with": "{names} белән", "copypaste.copied": "Күчереп алынган", - "copypaste.copy": "Күчереп алу", "copypaste.copy_to_clipboard": "Алмашу буферына күчереп алу", "directory.federated": "Билгеле галәмнән", "directory.local": "Кемнән {domain} гына", @@ -259,7 +258,6 @@ "interaction_modal.description.reply": "Mastodon аккаунты белән сез бу язмага җавап бирә аласыз.", "interaction_modal.on_another_server": "Башка серверда", "interaction_modal.on_this_server": "Бу серверда", - "interaction_modal.preamble": "Mastodon үзәкләштерелмәгәнгә, Сез үзегезнең Mastodon серверына урнаштырылган счетыгызны яки бу серверда счетыгыз булмаса, платформага туры килгән платформаны куллана аласыз.", "interaction_modal.title.follow": "Иярү {name}", "interaction_modal.title.reblog": "Арттыру {name} сак", "interaction_modal.title.reply": "Җавап {name} сак", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 8c811423a0..c011187577 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -191,7 +191,6 @@ "conversation.open": "Переглянути бесіду", "conversation.with": "З {names}", "copypaste.copied": "Скопійовано", - "copypaste.copy": "Копіювати", "copypaste.copy_to_clipboard": "Копіювати до буфера обміну", "directory.federated": "З відомого федесвіту", "directory.local": "Лише з домену {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "Основні", "home.column_settings.show_reblogs": "Показувати поширення", "home.column_settings.show_replies": "Показувати відповіді", - "home.explore_prompt.body": "Ваша домашня стрічка буде сумішшю дописів з обраних для стеження хештегів, людей і поширених ними дописів. Зараз тут досить порожньо, тож:", + "home.explore_prompt.body": "Ваша домашня стрічка буде сумішшю дописів з обраних для стеження хештегів, людей і поширених ними дописів. Якщо цього замало, ви також можете:", "home.explore_prompt.title": "Це ваша домашня база у Mastodon.", "home.hide_announcements": "Приховати оголошення", "home.show_announcements": "Показати оголошення", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Маючи обліковий запис на Mastodon, ви можете підписатися на {name}, щоб отримувати дописи цього користувача у свою стрічку.", "interaction_modal.description.reblog": "Маючи обліковий запис на Mastodon, ви можете поширити цей допис, щоб поділитися ним зі своїми підписниками.", "interaction_modal.description.reply": "Маючи обліковий запис на Mastodon, ви можете відповісти на цей допис.", + "interaction_modal.login.action": "На домашню сторінку", + "interaction_modal.login.prompt": "Домен вашого домашнього сервера, наприклад, mastodon.social", + "interaction_modal.no_account_yet": "Не зареєстровані в Mastodon?", "interaction_modal.on_another_server": "На іншому сервері", "interaction_modal.on_this_server": "На цьому сервері", - "interaction_modal.other_server_instructions": "Скопіюйте та вставте цю URL-адресу в поле пошуку вашого улюбленого застосунку Mastodon або вебінтерфейсу вашого сервера Mastodon.", - "interaction_modal.preamble": "Оскільки Mastodon децентралізований, ви можете використовувати свій наявний обліковий запис, розміщений на іншому сервері Mastodon або сумісній платформі, якщо у вас немає облікового запису на цьому сервері.", + "interaction_modal.sign_in": "Ви не ввійшли на цей сервер. Де розміщений ваш обліковий запис?", + "interaction_modal.sign_in_hint": "Підказка: це сайт, на якому ви зареєструвалися. Якщо ви не пам'ятаєте, знайдіть привітальний електронний лист у теці \"Вхідні\". Ви також можете ввести повне ім'я користувача! (наприклад, @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Уподобати допис {name}", "interaction_modal.title.follow": "Підписатися на {name}", "interaction_modal.title.reblog": "Поширити допис {name}", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Статистика сервера:", "sign_in_banner.create_account": "Створити обліковий запис", "sign_in_banner.sign_in": "Увійти", + "sign_in_banner.sso_redirect": "Увійдіть або зареєструйтесь", "sign_in_banner.text": "Увійдіть, щоб слідкувати за профілями або хештегами, вподобаними, ділитися і відповідати на дописи. Ви також можете взаємодіяти з вашого облікового запису на іншому сервері.", "status.admin_account": "Відкрити інтерфейс модерації для @{name}", "status.admin_domain": "Відкрити інтерфейс модерації для {domain}", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index 0004e38486..52d9454d57 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -1,52 +1,73 @@ { "about.blocks": "معتدل سرورز", "about.contact": "رابطہ:", + "about.disclaimer": "میسٹادان مفت، اوپن سورس سافٹ ویئر ہے، اور میسٹادان غیر منافع بخش کا ٹریڈ مارک ہے۔", "about.domain_blocks.no_reason_available": "وجوہات نہیں دستیاب", "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": "گروپ", "account.block": "مسدود @{name}", "account.block_domain": "{domain} سے سب چھپائیں", + "account.block_short": "بلاک", "account.blocked": "مسدود کردہ", "account.browse_more_on_origin_server": "اصل پروفائل پر مزید براؤز کریں", "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "نجی طور پر @{name} کا ذکر کریں", "account.disable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع نہ کریں", "account.domain_blocked": "پوشیدہ ڈومین", "account.edit_profile": "مشخص ترمیم کریں", "account.enable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع کریں", "account.endorse": "مشکص پر نمایاں کریں", + "account.featured_tags.last_status_at": "آخری پوسٹ {date} کو", "account.featured_tags.last_status_never": "کوئی مراسلہ نہیں", + "account.featured_tags.title": "{name} کے نمایاں ہیش ٹیگز", "account.follow": "پیروی کریں", "account.followers": "پیروکار", "account.followers.empty": "\"ہنوز اس صارف کی کوئی پیروی نہیں کرتا\".", "account.followers_counter": "{count, plural,one {{counter} پیروکار} other {{counter} پیروکار}}", + "account.following": "فالو کر رہے ہیں", "account.following_counter": "{count, plural, one {{counter} پیروی کر رہے ہیں} other {{counter} پیروی کر رہے ہیں}}", "account.follows.empty": "\"یہ صارف ہنوز کسی کی پیروی نہیں کرتا ہے\".", "account.follows_you": "آپ کا پیروکار ہے", + "account.go_to_profile": "پروفائل پر جائیں", "account.hide_reblogs": "@{name} سے فروغ چھپائیں", + "account.in_memoriam": "یادگار میں۔", "account.joined_short": "شمولیت", + "account.languages": "سبسکرائب شدہ زبانیں بدلیں", "account.link_verified_on": "اس لنک کی ملکیت کی توثیق {date} پر کی گئی تھی", "account.locked_info": "اس اکاونٹ کا اخفائی ضابطہ مقفل ہے۔ صارف کی پیروی کون کر سکتا ہے اس کا جائزہ وہ خود لیتا ہے.", "account.media": "وسائل", "account.mention": "ذکر @{name}", + "account.moved_to": "{name} نے اشارہ کیا ہے کہ ان کا نیا اکاؤنٹ اب ہے:", "account.mute": "خاموش @{name}", + "account.mute_notifications_short": "نوٹیفیکیشنز کو خاموش کریں", + "account.mute_short": "خاموش", "account.muted": "خاموش کردہ", + "account.no_bio": "کوئی تفصیل نہیں دی گئی۔", + "account.open_original_page": "اصل صفحہ کھولیں", "account.posts": "ٹوٹ", "account.posts_with_replies": "ٹوٹ اور جوابات", "account.report": "@{name} اطلاع کریں", "account.requested": "منظوری کا منتظر۔ درخواستِ پیروی منسوخ کرنے کیلئے کلک کریں", + "account.requested_follow": "{name} آپ کو فالو کرنا چھاتا ہے۔", "account.share": "@{name} کے مشخص کو بانٹیں", "account.show_reblogs": "@{name} کی افزائشات کو دکھائیں", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", "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.rate_limited.message": "\"{retry_time, time, medium} کے بعد کوشش کریں\".", "alert.rate_limited.title": "محدود شرح", "alert.unexpected.message": "ایک غیر متوقع سہو ہوا ہے.", @@ -54,7 +75,11 @@ "announcement.announcement": "اعلان", "autosuggest_hashtag.per_week": "{count} فی ہفتہ", "boost_modal.combo": "آئیندہ یہ نہ دیکھنے کیلئے آپ {combo} دبا سکتے ہیں", + "bundle_column_error.error.title": "اوف، نہیں!", + "bundle_column_error.network.title": "نیٹ ورک کی خرابی", "bundle_column_error.retry": "دوبارہ کوشش کریں", + "bundle_column_error.return": "واپس گھر جاؤ", + "bundle_column_error.routing.title": "۴۰۴", "bundle_modal_error.close": "بند کریں", "bundle_modal_error.message": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", "bundle_modal_error.retry": "دوبارہ کوشش کریں", @@ -64,6 +89,7 @@ "column.community": "مقامی زمانی جدول", "column.directory": "مشخصات کا مطالعہ کریں", "column.domain_blocks": "پوشیدہ ڈومین", + "column.favourites": "پسندیدہ", "column.follow_requests": "پیروی درخواست", "column.home": "خانہ", "column.lists": "فہرستیں", @@ -130,7 +156,6 @@ "conversation.mark_as_read": "بطور پڑھا ہوا دکھائیں", "conversation.open": "گفتگو دیکھیں", "conversation.with": "{names} کے ساتھ", - "copypaste.copy": "کاپی کریں", "directory.federated": "معروف فیڈی ورس سے", "directory.local": "صرف {domain} سے", "directory.new_arrivals": "نئے آنے والے", @@ -165,6 +190,7 @@ "errors.unexpected_crash.report_issue": "مسئلہ کی اطلاع کریں", "follow_request.authorize": "اجازت دیں", "follow_request.reject": "انکار کریں", + "footer.about": "متعلق", "getting_started.heading": "آغاز کریں", "hashtag.column_header.tag_mode.all": "اور {additional}", "hashtag.column_header.tag_mode.any": "یا {additional}", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index b6b10b8d1d..9edbcab353 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -172,7 +172,6 @@ "conversation.open": "Suhbatni ko'rish", "conversation.with": "{names} bilan", "copypaste.copied": "Ko‘chirildi", - "copypaste.copy": "Nusxa olish", "directory.federated": "Faqat bilingan fediversdan", "directory.local": "Faqat {domain}dan", "directory.new_arrivals": "Yangi kelganlar", @@ -278,7 +277,6 @@ "interaction_modal.description.reply": "Mastodondagi akkaunt bilan siz ushbu xabarga javob berishingiz mumkin.", "interaction_modal.on_another_server": "Boshqa serverda", "interaction_modal.on_this_server": "Shu serverda", - "interaction_modal.preamble": "Mastodon markazlashtirilmaganligi sababli, boshqa Mastodon serverida joylashgan mavjud hisob qaydnomangizdan yoki bu serverda akkauntingiz bo'lmasa, unga mos platformadan foydalanishingiz mumkin.", "interaction_modal.title.follow": "{name} ga ergashing", "interaction_modal.title.reblog": "{name}ning postini boost qilish", "interaction_modal.title.reply": "{name} postiga javob bering", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 7ed79545fe..a74152e3a7 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -59,7 +59,7 @@ "account.report": "Báo cáo @{name}", "account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi", "account.requested_follow": "{name} yêu cầu theo dõi bạn", - "account.share": "Chia sẻ trang @{name}", + "account.share": "Chia sẻ @{name}", "account.show_reblogs": "Hiện tút do @{name} đăng lại", "account.statuses_counter": "{count, plural, one {{counter} Tút} other {{counter} Tút}}", "account.unblock": "Bỏ chặn @{name}", @@ -191,7 +191,6 @@ "conversation.open": "Xem toàn bộ tin nhắn", "conversation.with": "Với {names}", "copypaste.copied": "Đã sao chép", - "copypaste.copy": "Sao chép", "copypaste.copy_to_clipboard": "Sao chép vào bộ nhớ tạm", "directory.federated": "Từ mạng liên hợp", "directory.local": "Từ {domain}", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để nhận những tút của họ trên bảng tin của mình.", "interaction_modal.description.reblog": "Với tài khoản Mastodon, bạn có thể đăng lại tút này để chia sẻ nó với những người đang theo dõi bạn.", "interaction_modal.description.reply": "Với tài khoản Mastodon, bạn có thể bình luận tút này.", + "interaction_modal.login.action": "Đăng nhập ngay", + "interaction_modal.login.prompt": "Địa chỉ máy chủ của bạn, vd: mastodon.social", + "interaction_modal.no_account_yet": "Chưa có tài khoản Mastodon?", "interaction_modal.on_another_server": "Trên một máy chủ khác", "interaction_modal.on_this_server": "Trên máy chủ này", - "interaction_modal.other_server_instructions": "Sao chép và dán URL này vào thanh tìm kiếm của ứng dụng Mastodon hoặc giao diện web máy chủ Mastodon mà bạn hiện dùng.", - "interaction_modal.preamble": "Do Mastodon phi tập trung, bạn có thể sử dụng tài khoản hiện có trên một máy chủ Mastodon khác hoặc một nền tảng tương thích nếu bạn chưa có tài khoản trên máy chủ này.", + "interaction_modal.sign_in": "Bạn chưa đăng nhập. Bạn đã có tài khoản ở máy chủ khác?", + "interaction_modal.sign_in_hint": "Mẹo: Đó là trang web nơi bạn đã đăng ký. Nếu không nhớ, lục lại trong email của bạn. Bạn cũng có thể nhập địa chỉ Mastodon đầy đủ! (vd: @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Thích tút của {name}", "interaction_modal.title.follow": "Theo dõi {name}", "interaction_modal.title.reblog": "Đăng lại tút của {name}", @@ -526,22 +528,22 @@ "relative_time.today": "hôm nay", "reply_indicator.cancel": "Hủy bỏ", "report.block": "Chặn", - "report.block_explanation": "Bạn sẽ không thấy tút của họ nữa. Họ cũng không thể theo dõi hoặc thấy tút của bạn. Họ sẽ biết là họ đã bị chặn.", + "report.block_explanation": "Bạn sẽ không còn thấy tút của người này. Họ sẽ không thể thấy tút của bạn hoặc theo dõi bạn. Họ biết là bạn đã chặn họ.", "report.categories.other": "Khác", "report.categories.spam": "Spam", "report.categories.violation": "Vi phạm nội quy máy chủ", - "report.category.subtitle": "Chọn mục gần khớp nhất", - "report.category.title": "Có vấn đề gì với {type}", + "report.category.subtitle": "Chọn lý do phù hợp nhất:", + "report.category.title": "{type} này có vấn đề gì?", "report.category.title_account": "người này", "report.category.title_status": "tút", "report.close": "Xong", - "report.comment.title": "Bạn nghĩ chúng tôi nên biết thêm điều gì?", + "report.comment.title": "Có điều gì mà chúng tôi cần biết không?", "report.forward": "Chuyển đến {target}", "report.forward_hint": "Người này thuộc máy chủ khác. Gửi một báo cáo ẩn danh tới máy chủ đó?", "report.mute": "Ẩn", - "report.mute_explanation": "Bạn sẽ không thấy tút của họ nữa. Họ cũng không thể theo dõi hoặc thấy tút của bạn. Họ sẽ không biết là họ đã bị bạn ẩn.", + "report.mute_explanation": "Bạn sẽ không còn thấy tút của người này. Họ vẫn có thể thấy tút của bạn hoặc theo dõi bạn. Họ không biết là bạn đã chặn họ.", "report.next": "Tiếp theo", - "report.placeholder": "Bổ sung thêm", + "report.placeholder": "Thêm lưu ý", "report.reasons.dislike": "Tôi không thích nó", "report.reasons.dislike_description": "Đó không phải là thứ gì mà bạn muốn thấy", "report.reasons.legal": "Vi phạm pháp luật", @@ -558,7 +560,7 @@ "report.statuses.title": "Bạn muốn báo cáo tút nào?", "report.submit": "Gửi đi", "report.target": "Báo cáo {target}", - "report.thanks.take_action": "Đây là một số cách để kiểm soát thứ bạn nhìn thấy trên Mastodon:", + "report.thanks.take_action": "Đây là cách kiểm soát những thứ mà bạn thấy:", "report.thanks.take_action_actionable": "Trong lúc chờ chúng tôi xem xét, bạn có thể áp dụng hành động với @{name}:", "report.thanks.title": "Không muốn xem thứ này?", "report.thanks.title_actionable": "Cảm ơn đã báo cáo, chúng tôi sẽ xem xét kỹ.", @@ -596,6 +598,7 @@ "server_banner.server_stats": "Thống kê:", "sign_in_banner.create_account": "Đăng ký", "sign_in_banner.sign_in": "Đăng nhập", + "sign_in_banner.sso_redirect": "Đăng nhập", "sign_in_banner.text": "Đăng nhập để theo dõi người hoặc hashtag, thích, chia sẻ và trả lời tút. Bạn cũng có thể tương tác từ tài khoản của mình trên một máy chủ khác.", "status.admin_account": "Mở giao diện quản trị @{name}", "status.admin_domain": "Mở giao diện quản trị @{domain}", @@ -627,7 +630,7 @@ "status.more": "Thêm", "status.mute": "Ẩn @{name}", "status.mute_conversation": "Không quan tâm nữa", - "status.open": "Xem nguyên văn", + "status.open": "Đọc tút", "status.pin": "Ghim lên hồ sơ", "status.pinned": "Tút đã ghim", "status.read_more": "Đọc tiếp", @@ -637,9 +640,9 @@ "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.", "status.redraft": "Xóa và viết lại", "status.remove_bookmark": "Bỏ lưu", - "status.replied_to": "{name} viết tiếp", + "status.replied_to": "Trả lời {name}", "status.reply": "Trả lời", - "status.replyAll": "Trả lời người đăng tút", + "status.replyAll": "Trả lời", "status.report": "Báo cáo @{name}", "status.sensitive_warning": "Nhạy cảm", "status.share": "Chia sẻ", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 075643c9eb..f7c7d5f785 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1,5 +1,5 @@ { - "about.blocks": "被限制的服务器", + "about.blocks": "服务器被限制", "about.contact": "联系方式:", "about.disclaimer": "Mastodon 是自由的开源软件,商标由 Mastodon gGmbH 持有。", "about.domain_blocks.no_reason_available": "原因不可用", @@ -172,7 +172,7 @@ "confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?", "confirmations.domain_block.confirm": "屏蔽整个域名", - "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。", + "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,对几个特定的用户进行屏蔽或禁用对他们的消息提醒就足够了。屏蔽后,来自该域名的内容将不再出现在你任何的公共时间轴或通知列表里,你来自该域名下的关注者也将被移除。", "confirmations.edit.confirm": "编辑", "confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?", "confirmations.logout.confirm": "退出登录", @@ -191,7 +191,6 @@ "conversation.open": "查看对话", "conversation.with": "与 {names}", "copypaste.copied": "已复制", - "copypaste.copy": "复制", "copypaste.copy_to_clipboard": "复制到剪贴板", "directory.federated": "来自已知联邦宇宙", "directory.local": "仅来自 {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "基本设置", "home.column_settings.show_reblogs": "显示转嘟", "home.column_settings.show_replies": "显示回复", - "home.explore_prompt.body": "你的主页动态会推送一系列关注的话题标签和用户,以及转发的嘟文。目前看起来比较清静,不妨试一下:", + "home.explore_prompt.body": "你的主页动态会推送一系列关注的话题标签和用户,以及转发的嘟文。如果你觉得过于清净,不妨试一下:", "home.explore_prompt.title": "这是你在 Mastodon 的主页。", "home.hide_announcements": "隐藏公告", "home.show_announcements": "显示公告", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "拥有一个 Mastodon 账号,你可以关注 {name} 并在自己的主页上接收对方的新嘟文。", "interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你可以向自己的关注者们转发此嘟文。", "interaction_modal.description.reply": "拥有一个 Mastodon 账号,你可以回复此嘟文。", + "interaction_modal.login.action": "转到主页", + "interaction_modal.login.prompt": "您所入驻的服务器域名,如:mastodon.social", + "interaction_modal.no_account_yet": "不在 Mastodon 上?", "interaction_modal.on_another_server": "在另一服务器", "interaction_modal.on_this_server": "在此服务器", - "interaction_modal.other_server_instructions": "将此URL复制并粘贴到您喜欢的Mastodon应用程序的搜索栏中,或者粘贴到你的Mastodon实例的Web界面中。", - "interaction_modal.preamble": "基于 Mastodon 去中心化的特性,如果你在本站没有账号,也可以使用在另一 Mastodon 服务器或其他兼容平台上的已有账号。", + "interaction_modal.sign_in": "您尚未登录此服务器,您的账号托管在哪?", + "interaction_modal.sign_in_hint": "提示:这是您注册的网站,如果您不记得了,请在邮箱的收件箱中查找欢迎邮件。您还可以输入完整的用户名!(例如 @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "喜欢 {name} 的嘟文", "interaction_modal.title.follow": "关注 {name}", "interaction_modal.title.reblog": "转发 {name} 的嘟文", @@ -596,6 +598,7 @@ "server_banner.server_stats": "服务器统计数据:", "sign_in_banner.create_account": "创建账户", "sign_in_banner.sign_in": "登录", + "sign_in_banner.sso_redirect": "登录或注册", "sign_in_banner.text": "登录关注用户和话题标签,喜欢、分享和回复嘟文。您还可以与其他服务器上的用户进行互动。", "status.admin_account": "打开 @{name} 的管理界面", "status.admin_domain": "打开 {domain} 的管理界面", @@ -667,7 +670,7 @@ "time_remaining.minutes": "剩余 {number, plural, one {# 分钟} other {# 分钟}}", "time_remaining.moments": "即将结束", "time_remaining.seconds": "剩余 {number, plural, one {# 秒} other {# 秒}}", - "timeline_hint.remote_resource_not_displayed": "不会显示来自其它服务器的 {resource}", + "timeline_hint.remote_resource_not_displayed": "不会显示来自其它服务器的{resource}", "timeline_hint.resources.followers": "关注者", "timeline_hint.resources.follows": "关注", "timeline_hint.resources.statuses": "更早的嘟文", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 7a7c39d5c7..b2f73f6a06 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -188,7 +188,6 @@ "conversation.open": "檢視對話", "conversation.with": "與 {names}", "copypaste.copied": "已複製", - "copypaste.copy": "複製", "copypaste.copy_to_clipboard": "複製到剪貼簿", "directory.federated": "來自已知的聯盟網絡", "directory.local": "僅來自 {domain}", @@ -301,7 +300,6 @@ "interaction_modal.description.reply": "在 Mastodon 上擁有帳號的話,您可以回覆此帖文。", "interaction_modal.on_another_server": "於不同伺服器", "interaction_modal.on_this_server": "於此伺服器", - "interaction_modal.preamble": "由於 Mastodon 是去中心化的,即使您於此伺服器上沒有帳號,仍可以利用託管於其他 Mastodon 伺服器或相容平台上的既存帳號。", "interaction_modal.title.follow": "追蹤 {name}", "interaction_modal.title.reblog": "轉發 {name} 的帖文", "interaction_modal.title.reply": "回覆 {name} 的帖文", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index a13504e23e..df30565263 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -191,7 +191,6 @@ "conversation.open": "檢視對話", "conversation.with": "與 {names}", "copypaste.copied": "已複製", - "copypaste.copy": "複製", "copypaste.copy_to_clipboard": "複製到剪貼簿", "directory.federated": "來自已知聯邦宇宙", "directory.local": "僅來自 {domain} 網域", @@ -303,7 +302,7 @@ "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "顯示轉嘟", "home.column_settings.show_replies": "顯示回覆", - "home.explore_prompt.body": "您的首頁時間軸將由您所跟隨之主題標籤、帳號以及其轉嘟所組成。目前似乎有點空,是否要考慮這些:", + "home.explore_prompt.body": "您的首頁時間軸將由您所跟隨之主題標籤、帳號以及其轉嘟所組成。若目前流速有點慢,您可以考慮以下幾點:", "home.explore_prompt.title": "這是您於 Mastodon 的基地", "home.hide_announcements": "隱藏公告", "home.show_announcements": "顯示公告", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "在 Mastodon 上有個帳號的話,您可以跟隨 {name} 以於首頁時間軸接收他們的嘟文。", "interaction_modal.description.reblog": "在 Mastodon 上有個帳號的話,您可以轉嘟此嘟文以分享給您的跟隨者們。", "interaction_modal.description.reply": "在 Mastodon 上有個帳號的話,您可以回覆此嘟文。", + "interaction_modal.login.action": "返回首頁", + "interaction_modal.login.prompt": "您帳號所屬伺服器之網域,例如:mastodon.social", + "interaction_modal.no_account_yet": "還沒有 Mastodon 帳號嗎?", "interaction_modal.on_another_server": "於不同伺服器", "interaction_modal.on_this_server": "於此伺服器", - "interaction_modal.other_server_instructions": "複製貼上此 URL 至您愛用的 Mastodon 應用程式或您 Mastodon 伺服器網頁介面之搜尋欄。", - "interaction_modal.preamble": "由於 Mastodon 是去中心化的,即便您於此沒有帳號,仍可以利用託管於其他 Mastodon 伺服器或相容平台上的既存帳號。", + "interaction_modal.sign_in": "您未登入於此伺服器。您的帳號是於何方託管呢?", + "interaction_modal.sign_in_hint": "提示:這是您所註冊之網站。若您無法回想起,請檢查您電子信箱收件夾內之歡迎信。您也能輸入完整帳號名稱!(如:@Mastodon@mastodon.social)", "interaction_modal.title.favourite": "將 {name} 之嘟文加入最愛", "interaction_modal.title.follow": "跟隨 {name}", "interaction_modal.title.reblog": "轉嘟 {name} 的嘟文", @@ -596,6 +598,7 @@ "server_banner.server_stats": "伺服器統計:", "sign_in_banner.create_account": "新增帳號", "sign_in_banner.sign_in": "登入", + "sign_in_banner.sso_redirect": "登入或註冊", "sign_in_banner.text": "登入以跟隨個人檔案和主題標籤,或收藏、分享和回覆嘟文。您也可以使用您的帳號在其他伺服器上進行互動。", "status.admin_account": "開啟 @{name} 的管理介面", "status.admin_domain": "開啟 {domain} 的管理介面", diff --git a/config/locales/activerecord.cs.yml b/config/locales/activerecord.cs.yml index 505828112f..6f4fe86e3f 100644 --- a/config/locales/activerecord.cs.yml +++ b/config/locales/activerecord.cs.yml @@ -53,3 +53,7 @@ cs: position: elevated: nemůže být vyšší než vaše aktuální role own_role: nelze změnit s vaší aktuální rolí + webhook: + attributes: + events: + invalid_permissions: nelze zahrnout události, k nimž nemáte práva diff --git a/config/locales/activerecord.nn.yml b/config/locales/activerecord.nn.yml index 30afb8b079..a303af6247 100644 --- a/config/locales/activerecord.nn.yml +++ b/config/locales/activerecord.nn.yml @@ -53,3 +53,7 @@ nn: position: elevated: kan ikkje vere høgare enn di noverande rolle own_role: kan ikkje endrast med di noverande rolle + webhook: + attributes: + events: + invalid_permissions: kan ikkje inkludere hendingar du ikkje har rettar til diff --git a/config/locales/activerecord.no.yml b/config/locales/activerecord.no.yml index eb1793ca76..5abe3fdc38 100644 --- a/config/locales/activerecord.no.yml +++ b/config/locales/activerecord.no.yml @@ -8,7 +8,7 @@ user: agreement: Tjenesteavtale email: E-postadresse - locale: Landstandard + locale: Språk password: Passord user/account: username: Brukernavn @@ -24,11 +24,11 @@ admin/webhook: attributes: url: - invalid: er ikke en gyldig nettadresse + invalid: er ikke en gyldig lenke doorkeeper/application: attributes: website: - invalid: er ikke en gyldig nettadresse + invalid: er ikke en gyldig lenke import: attributes: data: @@ -53,3 +53,7 @@ position: elevated: kan ikke være høyere enn din nåværende rolle own_role: kan ikke endres med din nåværende rolle + webhook: + attributes: + events: + invalid_permissions: kan ikke inkludere hendelser du ikke har rettigheter til diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml index 17b13fc7b4..14f9f61f6c 100644 --- a/config/locales/activerecord.ru.yml +++ b/config/locales/activerecord.ru.yml @@ -53,3 +53,7 @@ ru: position: elevated: не может быть выше, чем ваша текущая роль own_role: невозможно изменить с вашей текущей ролью + webhook: + attributes: + events: + invalid_permissions: нельзя включать события, к которым у вас нет прав diff --git a/config/locales/be.yml b/config/locales/be.yml index bb08532bab..a48fa97e32 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -798,6 +798,7 @@ be: approved: Для рэгістрацыі патрабуецца пацвярджэнне none: Нікому не магчыма зарэгістравацца open: Любому магчыма зарэгістравацца + title: Налады сервера site_uploads: delete: Выдаліць запампаваны файл destroyed_msg: Загрузка сайту паспяхова выдалена! @@ -1314,12 +1315,14 @@ be: bookmarks_html: Вы збіраецеся замяніць свае закладкі на %{total_items} допісаў з файла %{filename}. domain_blocking_html: Вы збіраецеся замяніць свой спіс блакіроўкі даменаў на %{total_items} даменаў з файла %{filename}. following_html: Вы збіраецеся падпісацца на %{total_items} уліковых запісаў з файла %{filename} і адпісацца ад усіх іншых карыстальнікаў. + lists_html: Вы збіраецеся замяніць свае спісы змесцівам з %{filename}. Да %{total_items} уліковых запісаў будуць дададзены ў новыя спісы. muting_html: Вы збіраецеся замяніць свой спіс ігнараваных уліковых запісаў на %{total_items} уліковых запісаў з файла %{filename}. preambles: blocking_html: Вы збіраецеся заблакіраваць да %{total_items} уліковых запісаў з файла%{filename}. bookmarks_html: Вы збіраецеся дадаць да %{total_items} паведамленняў з файла %{filename} у вашы закладкі. domain_blocking_html: Вы збіраецеся заблакіраваць да %{total_items} даменаў з файла %{filename}. following_html: Вы збіраецеся падпісацца на%{total_items} уліковых запісаў з файла %{filename}. + lists_html: Вы збіраецеся дадаць да %{total_items} уліковых запісаў з %{filename} у вашы спісы. Новыя спісы будуць створаны, калі іх няма. muting_html: Вы збіраецеся ігнараваць да %{total_items} уліковых запісаў з файла %{filename}. preface: Вы можаце імпартаваць даныя, экспартаваныя вамі з іншага сервера, напрыклад, спіс людзей, на якіх вы падпісаны або якіх блакуеце. recent_imports: Нядаўнія імпарты @@ -1336,6 +1339,7 @@ be: bookmarks: Імпарт закладак domain_blocking: Імпарт заблакіраваных даменаў following: Імпарт падпісаных уліковых запісаў + lists: Імпартаванне спісаў muting: Імпарт ігнараваных уліковых запісаў type: Тып імпарту type_groups: @@ -1346,6 +1350,7 @@ be: bookmarks: Закладкі domain_blocking: Спіс заблакіраваных даменаў following: Падпіскі + lists: Спісы muting: Спіс ігнаравання upload: Запампаваць invites: diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 84eb59a08e..9637169090 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -5,12 +5,14 @@ bn: contact_missing: নেই contact_unavailable: প্রযোজ্য নয় hosted_on: এই মাস্টাডনটি আছে %{domain} এ + title: পরিচিতি accounts: follow: যুক্ত followers: one: যুক্ত আছে other: যারা যুক্ত হয়েছে following: যুক্ত করা + instance_actor_flash: এই অ্যাকাউন্টটি একটি ভার্চুয়াল সত্তা যা সার্ভারের প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং কোনও স্বতন্ত্র ব্যবহারকারী নয়। এটি ফেডারেশনের উদ্দেশ্যে ব্যবহার করা হয় এবং স্থগিত করা উচিত নয়. last_active: শেষ সক্রিয় ছিল link_verified_on: এই লিংকের মালিকানা শেষ চেক করা হয় %{date} তারিখে nothing_here: এখানে কিছুই নেই! @@ -31,21 +33,32 @@ bn: accounts: add_email_domain_block: নিষিদ্ধ করা ই-মেইল ডোমেইন approve: অনুমোদন দিন + approved_msg: "%{username}-এর অ্যাকাউন্ট সৃষ্টি আবেদন সফলভাবে অনুমোদিত হয়েছে" are_you_sure: আপনি কি নিশ্চিত ? avatar: অবতার by_domain: ওয়েবসাইট/কার্যক্ষেত্র change_email: + changed_msg: ইমেল সফলভাবে পরিবর্তিত হয়েছে! current_email: এখনকার ইমেইল label: ইমেইল পরিবর্তন new_email: নতুন ইমেইল submit: ইমেইল পরিবর্তন title: "%{username} এর ইমেইল পরিবর্তন" + change_role: + changed_msg: ভূমিকা সফলভাবে পরিবর্তিত! + label: ভূমিকা পরিবর্তন করুন + no_role: কোন ভূমিকা বরাদ্দ করা হয়নি + title: "%{username}-এর ভূমিকা পরিবর্তন করুন" confirm: নিশ্চিত করুন confirmed: নিশ্চিত হয়েছে confirming: নিশ্চিত করা হচ্ছে + custom: বিশেষ + delete: ডেটা মুছুন deleted: মুছে ফেলা হয়েছে demote: নিচের পদে দিন + destroyed_msg: "%{username}-এর ডেটা এখন সারিবদ্ধভাবে মুছে ফেলা হবে" disable: বন্ধ করুন + disable_sign_in_token_auth: ই-মেইল টোকেন প্রমাণীকরণ অক্ষম করুন disable_two_factor_authentication: দুই পদ্ধতির প্রমাণীকরণ(2FA) বন্ধ করুন disabled: বন্ধ করা হয়েছে display_name: দেখানোর জন্য নাম @@ -54,11 +67,14 @@ bn: email: ইমেইল email_status: ইমেইলের অবস্থা enable: চালু করুন + enable_sign_in_token_auth: ই-মেইল টোকেন প্রমাণীকরণ সক্ষম করুন enabled: চালু করুন + enabled_msg: "%{username}-এর অ্যাকাউন্ট সফলভাবে আনফ্রোজ করা হয়েছে" followers: অনুসরকারীরা follows: অনুসরণ করে header: শিরোলেখা inbox_url: চিঠি পাওয়ার বক্স লিংক + invite_request_text: যোগদানের কারণ invited_by: আমন্ত্রণ করেছে ip: আইপি(IP) joined: যোগ দিয়েছে diff --git a/config/locales/br.yml b/config/locales/br.yml index d2c24cb383..24d934fdeb 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -289,8 +289,10 @@ br: view_status: Gwelet ar c'hannad auth: delete_account: Dilemel ar gont + delete_account_html: Ma fell deoc'h dilemel ho kont e c'hellit klikañ amañ. Goulennet e vo ganeoc'h kadarnaat an obererezh. login: Mont tre logout: Digennaskañ + migrate_account_html: Ma fell deoc'h adkas ar gont-mañ war-zu unan all e c'hellit arventenniñ an dra-se amañ. providers: cas: CAS saml: SAML @@ -390,6 +392,8 @@ br: table: uses: Implijoù title: Pediñ tud + migrations: + incoming_migrations_html: Evit dilojañ ur gont all da homañ e rankit sevel un alias da gentañ. moderation: title: Habaskadur notification_mailer: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 519670864b..a8d67e8e4d 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -448,7 +448,7 @@ ca: no_file: No s'ha seleccionat cap fitxer export_domain_blocks: import: - description_html: Estàs a punt d'importar una llista de dominis blocats. Si us plau, revisa aquesta llista amb molta cura, especialment si no l'has creada tu mateix. + description_html: Esteu a punt d'importar una llista de dominis blocats. Reviseu aquesta llista amb molta cura, especialment si no l'heu creada vós mateix. existing_relationships_warning: Relacions de seguiment existents private_comment_description_html: 'Per a ajudar-te a fer un seguiment d''on provenen els bloquejos importats, es crearan amb el següent comentari privat: %{comment}' private_comment_template: Importar des de %{source} el %{date} @@ -458,7 +458,7 @@ ca: title: Importa dominis bloquejats no_file: No s'ha seleccionat cap fitxer follow_recommendations: - description_html: "Seguir les recomanacions ajuda als nous usuaris a trobar ràpidament contingut interessant. Quan un usuari no ha interactuat prou amb d'altres com per a formar a qui seguir personalment, aquests comptes li seran recomanats. Es recalculen a diari a partir d'una barreja de comptes amb els compromisos recents més alts i el nombre més alt de seguidors locals per a un idioma determinat." + description_html: "Seguir les recomanacions ajuda als nous usuaris a trobar ràpidament contingut interessant. Quan un usuari no ha interactuat prou amb altres per a formar a qui seguir personalment, aquests comptes li seran recomanats. Es recalculen diàriament a partir d'una barreja de comptes amb els compromisos recents més alts i el nombre més alt de seguidors locals per a un idioma determinat." language: Per idioma status: Estat suppress: Suprimeix les recomanacions de seguiment @@ -813,9 +813,9 @@ ca: appeal_rejected: Apel·lació rebutjada system_checks: database_schema_check: - message_html: Hi ha pendents migracions de la base de dades. Si us plau executa-les per a assegurar que l'aplicació es comporta com s'espera + message_html: Hi ha pendents migracions de la base de dades. Executeu-les per a assegurar que l'aplicació es comporta com s'espera elasticsearch_running_check: - message_html: No s'ha pogut connectar a Elasticsearch. Si us plau verifica que estigui funcionant o desactiva la cerca de text complet + message_html: No s'ha pogut connectar a Elasticsearch. Verifiqueu que funciona o desactiveu la cerca de text complet elasticsearch_version_check: message_html: 'Versió incompatible de Elasticsearch: %{value}' version_comparison: Elasticsearch %{running_version} està funcionant mentre %{required_version} és requerida @@ -823,7 +823,7 @@ ca: action: Gestiona les normes del servidor message_html: No has definit cap norma del servidor. sidekiq_process_check: - message_html: No hi ha cap procés de Sidekiq executant-se per a la cua (o cues) de %{value}. Si us plau revisa la teva configuració de Sidekiq + message_html: No hi ha cap procés de Sidekiq executant-se per a la cua (o cues) de %{value}. Reviseu la configuració de Sidekiq upload_check_privacy_error: action: Consulta aquí per a més informació message_html: "El teu servidor no està ben configurat. La privacitat dels teus usuaris està en risc." @@ -1094,7 +1094,7 @@ ca: proceed: Elimina el compte success_msg: El compte s'ha eliminat correctament warning: - before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:' + before: 'Abans de procedir, llegiu amb cura aquestes notes:' caches: El contingut que ha estat memoritzat en la memòria cau per altres servidors pot persistir data_removal: Els teus tuts i altres dades seran permanentment eliminades email_change_html: Pots canviar la teva adreça de correu electrònic sense eliminar el teu compte @@ -1244,7 +1244,7 @@ ca: today: avui validation_errors: one: Alguna cosa no va bé! Si us plau, revisa l'error - other: Alguna cosa no va bé! Si us plau, revisa %{count} errors més a baix + other: Alguna cosa no va bé! Reviseu els %{count} errors següents imports: errors: empty: Fitxer CSV buit @@ -1366,7 +1366,7 @@ ca: cancelled_msg: Redirecció cancel·lada amb èxit. errors: already_moved: és el mateix compte al que ja t'has mogut - missing_also_known_as: no fa referencia a aquest compte + missing_also_known_as: no fa referència a aquest compte move_to_self: no pot ser el compte actual not_found: podria no ser trobat on_cooldown: Estàs en temps de refredament @@ -1383,7 +1383,7 @@ ca: set_redirect: Ajusta la redirecció warning: backreference_required: El compte nou primer ha de ser configurat per a referenciar aquest - before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:' + before: 'Abans de procedir, llegiu amb cura aquestes notes:' cooldown: Després de moure't hi ha un període de recuperació durant el qual no seràs capaç de moure't un altre cop disabled_account: El teu compte actual no serà plenament utilitzable després. Tanmateix, tindràs accés a exportació de dades així com reactivació. followers: Aquesta acció mourà tots els seguidors des de l'actual al compte nou @@ -1791,5 +1791,5 @@ ca: nickname_hint: Introdueix el sobrenom de la teva clau de seguretat nova not_enabled: Encara no has activat WebAuthn not_supported: Aquest navegador no suporta claus de seguretat - otp_required: Per emprar claus de seguretat si us plau activa primer l'autenticació de dos factors. + otp_required: Per a usar claus de seguretat, activeu primer l'autenticació de dos factors. registered_on: Registrat en %{date} diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 7cb2ba2225..12873fafc1 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -845,7 +845,7 @@ cy: language: Iaith media: title: Cyfryngau - metadata: Metaddata + metadata: Metadata no_status_selected: Heb newid postiad gan na ddewiswyd dim un open: Agor postiad original_status: Postiad gwreiddiol @@ -1049,7 +1049,7 @@ cy: notification_preferences: Newid gosodiadau e-bost salutation: "%{name}," settings: 'Newid gosodiadau e-bost: %{link}' - unsubscribe: Datdanysgrifio + unsubscribe: Dad-danysgrifio view: 'Gweld:' view_profile: Gweld proffil view_status: Gweld postiad @@ -1321,7 +1321,7 @@ cy: other: Mae pob un o'r %{count} eitem sy'n cyfateb i'ch chwiliad wedi'u dewis. two: Mae pob un o'r %{count} eitem sy'n cyfateb i'ch chwiliad wedi'u dewis. zero: Does %{count} o eitemau sy'n cyfateb i'ch chwiliad wedi'u dewis. - cancel: Diddymu + cancel: Canslo changes_saved_msg: Llwyddwyd i gadw'r newidiadau! confirm: Cadarnhau copy: Copïo @@ -1365,12 +1365,14 @@ cy: bookmarks_html: Rydych ar fin amnewid eich nodau tudalen gyda hyd at %{total_items} o bostiadau gan %{filename} . domain_blocking_html: Rydych ar fin amnewid eich rhestr rhwystro parth gyda hyd at %{total_items} parth o %{filename} . following_html: Rydych ar fin dilyn hyd at %{total_items} o gyfrifon o %{filename} a pheidio a ddilyn unrhyw un arall . + lists_html: Rydych ar fin amnewid eich rhestrau gyda chynnwys %{filename} . Bydd hyd at %{total_items} o gyfrifon yn cael eu hychwanegu at restrau newydd. muting_html: Rydych ar fin amnewid eich rhestr o gyfrifon tawel gyda hyd at %{total_items} o gyfrifon o %{filename} . preambles: blocking_html: Rydych ar fin rhwystro hyd at %{total_items} o gyfrifon o %{filename} . bookmarks_html: Rydych ar fin ychwanegu hyd at %{total_items} o bostiadau o %{filename} at eich nodau tudalen . domain_blocking_html: Rydych ar fin rhwystro hyd at %{total_items} parth o %{filename} . following_html: Rydych ar fin dilyn hyd at %{total_items} cyfrif gan %{filename} . + lists_html: Rydych ar fin ychwanegu hyd at %{total_items} o gyfrifon o %{filename} at eich rhestrau . Bydd rhestrau newydd yn cael eu creu os nad oes rhestr i ychwanegu ati. muting_html: Rydych ar fin tewi hyd at %{total_items} cyfrif o %{filename} . preface: Gallwch fewnforio data rydych chi wedi'i allforio o weinydd arall, fel rhestr o'r bobl rydych chi'n eu dilyn neu'n eu blocio. recent_imports: Mewnforion diweddar @@ -1387,6 +1389,7 @@ cy: bookmarks: Mewnforio nodau tudalen domain_blocking: Mewnforio parthau sydd wedi'u rhwystro following: Mewnforio cyfrifon yn cael eu dilyn + lists: Mewnforio rhestrau muting: Mewnforio cyfrifon wedi'u tewi type: Math o fewnforion type_groups: @@ -1397,6 +1400,7 @@ cy: bookmarks: Llyfrnodau domain_blocking: Rhestr rhwystro parth following: Rhestr ddilynion + lists: Rhestrau muting: Rhestr tewi upload: Llwytho invites: @@ -1453,7 +1457,7 @@ cy: reblog: e-bost hysbysu hybu resubscribe_html: Os ydych wedi dad-danysgrifio trwy gamgymeriad, gallwch ail-danysgrifio o'ch gosodiadau hysbysiadau e-bost . success_html: Os nad ydych bellach yn derbyn %{type} Mastodon %{domain} i'ch e-bost %{email}. - title: Datdanysgrifio + title: Dad-danysgrifio media_attachments: validations: images_and_video: Methu atodi fideo i bostiad sydd eisoes yn cynnwys delweddau @@ -1679,7 +1683,7 @@ cy: migrate: Mudo cyfrif notifications: Hysbysiadau preferences: Dewisiadau - profile: Proffil + profile: Proffil cyhoeddus relationships: Yn dilyn a dilynwyr statuses_cleanup: Dileu postiadau'n awtomatig strikes: Rhybuddion cymedroli diff --git a/config/locales/de.yml b/config/locales/de.yml index 9b9d9eea65..219231a514 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -200,10 +200,10 @@ de: destroy_user_role: Rolle entfernen disable_2fa_user: 2FA deaktivieren disable_custom_emoji: Eigenes Emoji deaktivieren - disable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für diesen Account deaktivieren + disable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für dieses Konto deaktivieren disable_user: Benutzer*in deaktivieren enable_custom_emoji: Eigenes Emoji aktivieren - enable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für diesen Account aktivieren + enable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für dieses Konto aktivieren enable_user: Benutzer*in aktivieren memorialize_account: Gedenkkonto promote_user: Benutzer*in hochstufen @@ -348,7 +348,7 @@ de: interactions: Interaktionen media_storage: Medien new_users: neue Profile - opened_reports: ungelöste Meldungen + opened_reports: eingereichte Meldungen pending_appeals_html: one: "%{count} ausstehender Einspruch" other: "%{count} ausstehende Einsprüche" @@ -361,7 +361,7 @@ de: pending_users_html: one: "%{count} unerledigte*r Benutzer*in" other: "%{count} unerledigte Benutzer*innen" - resolved_reports: erledigte Meldungen + resolved_reports: geklärte Meldungen software: Programme sources: Registrierungsort space: Speicherplatz @@ -501,7 +501,7 @@ de: instance_follows_measure: deren Follower hier instance_languages_dimension: Häufigste Sprachen instance_media_attachments_measure: deren Medien hier im Cache - instance_reports_measure: Meldungen zu deren Accounts + instance_reports_measure: Meldungen zu deren Konten instance_statuses_measure: deren Beiträge hier im Cache delivery: all: Alle @@ -591,8 +591,8 @@ de: resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen und der Vorgang wird nicht aufgezeichnet – die Meldung wird hiermit geschlossen. silence_description_html: Das Konto wird nur für diejenigen sichtbar sein, die dem Konto bereits folgen oder es manuell suchen, was die Reichweite stark einschränkt. Kann jederzeit rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. suspend_description_html: Das Konto und alle Inhalte werden unzugänglich und ggf. gelöscht. Eine Interaktion mit dem Konto wird unmöglich. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. - actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet, außer wenn die Spam-Kategorie ausgewählt ist. - actions_description_remote_html: Entscheide, welche Maßnahmen du zur Lösung dieser Meldungen ergreifen möchtest. Dies wirkt sich lediglich darauf aus, wie dein Server mit diesem externen Konto kommuniziert und dessen Inhalt handhabt. + actions_description_html: Entscheide, welche Maßnahmen du zum Klären dieser Meldung ergreifen möchtest. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an dieses gesendet, außer wenn die Spam-Kategorie ausgewählt ist. + actions_description_remote_html: Entscheide, welche Maßnahmen du zum Klären dieser Meldung ergreifen möchtest. Dies wirkt sich lediglich darauf aus, wie dein Server mit diesem externen Konto kommuniziert und dessen Inhalt handhabt. add_to_report: Meldung ergänzen are_you_sure: Bist du dir sicher? assign_to_self: Mir zuweisen @@ -610,31 +610,31 @@ de: delete_and_resolve: Beiträge löschen forwarded: Weitergeleitet forwarded_to: Weitergeleitet an %{domain} - mark_as_resolved: Als gelöst markieren + mark_as_resolved: Als geklärt markieren mark_as_sensitive: Mit einer Inhaltswarnung versehen - mark_as_unresolved: Als ungelöst markieren + mark_as_unresolved: Als ungeklärt markieren no_one_assigned: Niemand notes: create: Notiz hinzufügen - create_and_resolve: Mit Notiz wieder lösen + create_and_resolve: Mit Notiz als geklärt markieren create_and_unresolve: Mit Notiz wieder öffnen delete: Löschen placeholder: Bitte beschreibe, welche Maßnahmen bzw. Sanktionen ergriffen worden sind, und führe alles auf, was es Erwähnenswertes zu diesem Profil zu berichten gibt … title: Notizen notes_description_html: Notiz an dich und andere Moderator*innen hinterlassen - processed_msg: 'Meldung #%{id} erfolgreich bearbeitet' - quick_actions_description_html: 'Eine schnelle Aktion ausführen oder nach unten rolle, um gemeldete Inhalte zu sehen:' + processed_msg: Meldung Nr. %{id} erfolgreich bearbeitet + quick_actions_description_html: 'Führe eine schnelle Aktion aus oder scrolle nach unten, um gemeldete Inhalte zu sehen:' remote_user_placeholder: das externe Profil von %{instance} reopen: Meldung wieder eröffnen report: "%{id}. Meldung" reported_account: Gemeldetes Konto reported_by: Gemeldet von - resolved: Gelöst + resolved: Geklärt resolved_msg: Meldung erfolgreich geklärt! skip_to_actions: Zur Maßnahme springen status: Status statuses: Gemeldeter Inhalt - statuses_description_html: Störende Inhalte werden in der Kommunikation mit dem gemeldeten Konto zitiert + statuses_description_html: Beanstandete Inhalte werden in der Kommunikation mit dem gemeldeten Konto erwähnt summary: action_preambles: delete_html: 'Du bist dabei, einige Beiträge von @%{acct} zu entfernen. Dies wird:' @@ -642,22 +642,22 @@ de: silence_html: 'Du bist dabei, das Konto von @%{acct} einzuschränken. Dies wird:' suspend_html: 'Du bist dabei, das Konto von @%{acct} zu sperren. Dies wird:' actions: - delete_html: Die anstößigen Beiträge entfernen - mark_as_sensitive_html: Medien der anstößigen Beiträge mit einer Inhaltswarnung versehen + delete_html: Die beanstandeten Beiträge entfernen + mark_as_sensitive_html: Medien der beanstandeten Beiträge mit einer Inhaltswarnung versehen silence_html: Schränkt die Reichweite von @%{acct} stark ein, indem das Profil und dessen Inhalte nur für Personen sichtbar sind, die dem Profil bereits folgen oder es manuell aufrufen suspend_html: "@%{acct} sperren, sodass das Profil und dessen Inhalte nicht mehr zugänglich sind und keine Interaktion mehr möglich ist" - close_report: Meldung Nr. %{id} als erledigt markieren - close_reports_html: "Alle Meldungen gegen @%{acct} als erledigt markieren" - delete_data_html: Das Profil und die Inhalte von @%{acct} werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt + close_report: Meldung Nr. %{id} als geklärt markieren + close_reports_html: "Alle Meldungen gegen @%{acct} als geklärt markieren" + delete_data_html: Das Profil und die Inhalte von @%{acct} in 30 Tagen löschen, es sei denn, das Konto wird in der Zwischenzeit entsperrt preview_preamble_html: "@%{acct} wird eine Warnung mit folgenden Inhalten erhalten:" - record_strike_html: Einen Verstoß gegen @%{acct} eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können - send_email_html: "@%{acct} eine Verwarnung per E-Mail senden" - warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme. + record_strike_html: Einen Verstoß gegen @%{acct} vermerken, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können + send_email_html: "@%{acct} eine Warnung per E-Mail senden" + warning_placeholder: "(Optional) Zusätzliche Begründung für die Moderationsaktion." target_origin: Domain des gemeldeten Kontos title: Meldungen unassign: Zuweisung aufheben unknown_action_msg: 'Unbekannte Aktion: %{action}' - unresolved: Ungelöst + unresolved: Ungeklärt updated_at: Aktualisiert view_profile: Profil anzeigen roles: @@ -754,7 +754,7 @@ de: preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren. profile_directory: Profilverzeichnis public_timelines: Öffentliche Timeline - publish_discovered_servers: Publish discovered servers + publish_discovered_servers: Entdeckte Server offenlegen publish_statistics: Statistiken veröffentlichen title: Entdecken trends: Trends @@ -943,7 +943,7 @@ de: new_report: body: "%{reporter} hat %{target} gemeldet" body_remote: Jemand von %{domain} hat %{target} gemeldet - subject: Neue Meldung auf %{instance} (#%{id}) + subject: Neue Meldung auf %{instance} (Nr. %{id}) new_trends: body: 'Die folgenden Einträge müssen überprüft werden, bevor sie öffentlich angezeigt werden können:' new_trending_links: @@ -959,9 +959,9 @@ de: add_new: Alias erstellen created_msg: Neuer Alias erfolgreich erstellt. Du kannst nun den Umzug vom alten zum neuen Konto starten. deleted_msg: Der Alias wurde erfolgreich entfernt. Aus jenem Konto zu diesem zu verschieben, ist nicht mehr möglich. - empty: Du hast keine Aliase. - hint_html: Wenn du von einem anderen Konto auf dieses umziehen möchtest, dann kannst du hier einen Alias erstellen, der erforderlich ist, um deine Follower vom alten Konto auf dieses zu migrieren. Diese Aktion ist harmlos und wi­der­ruf­lich. Die Kontenmigration wird vom alten Konto aus eingeleitet. - remove: Alle Aliase aufheben + empty: Du hast keine Aliasse. + hint_html: Wenn du von einem anderen Konto auf dieses umziehen möchtest, dann kannst du hier einen Alias erstellen, der erforderlich ist, um deine Follower vom alten Konto auf dieses zu migrieren. Diese Aktion ist harmlos und wi­der­ruf­lich. Der Kontoumzug wird vom alten Konto aus eingeleitet. + remove: Alle Aliasse aufheben appearance: advanced_web_interface: Erweitertes Webinterface advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, kannst du mit dem erweiterten Webinterface weitere Spalten hinzufügen und dadurch mehr Informationen auf einmal sehen, z. B. deine Startseite, die Mitteilungen, die föderierte Timeline sowie beliebig viele deiner Listen und Hashtags. @@ -1018,7 +1018,7 @@ de: privacy_policy_agreement_html: Ich habe die Datenschutzerklärung gelesen und stimme ihr zu progress: confirm: E-Mail-Adresse bestätigen - details: Deine Details + details: Deine Daten review: Unsere Überprüfung rules: Regeln akzeptieren providers: @@ -1050,7 +1050,7 @@ de: sign_up: manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest. preamble: Mit einem Konto auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Konto registriert ist. - title: Okay, lass uns mit %{domain} anfangen. + title: Okay, lass uns dein Konto auf %{domain} einrichten. status: account_status: Kontostatus confirming: Auf die Bestätigung deiner E-Mail-Adresse wird gewartet. @@ -1094,7 +1094,7 @@ de: proceed: Konto löschen success_msg: Dein Konto wurde erfolgreich gelöscht warning: - before: 'Bevor du fortfährst, lies bitte diese Punkte sorgfältig durch:' + before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:' caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können fortbestehen data_removal: Deine Beiträge und alle anderen Daten werden für immer entfernt email_change_html: Du kannst deine E-Mail-Adresse ändern, ohne dein Konto zu löschen @@ -1127,7 +1127,7 @@ de: delete_statuses: Beitragsentfernung disable: Konto einfrieren mark_statuses_as_sensitive: Beiträge mit einer Inhaltswarnung versehen - none: Verwarnung + none: Warnung sensitive: Profil mit einer Inhaltswarnung versehen silence: Kontobeschränkung suspend: Kontosperre @@ -1335,10 +1335,10 @@ de: sign_in_token: E-Mail-Sicherheitscode webauthn: Sicherheitsschlüssel description_html: Wenn du verdächtige Aktivitäten bemerkst, die du nicht verstehst oder zuordnen kannst, solltest du dringend dein Passwort ändern und ungeachtet dessen die Zwei-Faktor-Authentisierung (2FA) aktivieren. - empty: Kein Authentisierungsverlauf verfügbar - failed_sign_in_html: Fehler beim Anmeldeversuch mit %{method} von %{ip} (%{browser}) - successful_sign_in_html: Erfolgreiche Anmeldung mit %{method} von %{ip} (%{browser}) - title: Authentisierungsverlauf + empty: Kein Anmeldeverlauf verfügbar + failed_sign_in_html: Fehlgeschlagener Anmeldeversuch mit %{method} von %{ip} (%{browser}) + successful_sign_in_html: Erfolgreiches Anmelden mit %{method} von %{ip} (%{browser}) + title: Anmeldeverlauf mail_subscriptions: unsubscribe: action: Ja, abbestellen @@ -1366,7 +1366,7 @@ de: cancelled_msg: Die Weiterleitung wurde erfolgreich beendet. errors: already_moved: ist das gleiche Konto, zu dem du bereits umgezogen bist - missing_also_known_as: referenziert nicht zurück auf dieses Konto + missing_also_known_as: ist kein Alias für dieses Konto move_to_self: darf nicht das aktuelles Konto sein not_found: konnte nicht gefunden werden on_cooldown: Die Abklingzeit läuft gerade @@ -1565,7 +1565,7 @@ de: settings: account: Konto account_settings: Kontoeinstellungen - aliases: Kontoaliase + aliases: Konto-Aliasse appearance: Design authorized_apps: Autorisierte Anwendungen back: Zurück zu Mastodon @@ -1728,11 +1728,11 @@ de: spam: Spam violation: Inhalt verstößt gegen die folgenden Serverregeln explanation: - delete_statuses: Einige deiner Beiträge wurden als Verstoß gegen eine oder mehrere Serverregeln erkannt und von den Moderator*innen von %{instance} entfernt. + delete_statuses: Einige deiner Beiträge haben gegen eine oder mehrere Serverregeln verstoßen und wurden daher von den Moderator*innen von %{instance} entfernt. disable: Du kannst dein Konto nicht mehr verwenden, aber dein Profil und deine anderen Daten bleiben erhalten. Du kannst eine Sicherung deiner Daten anfordern, die Kontoeinstellungen ändern oder dein Konto löschen. - mark_statuses_as_sensitive: Ein oder mehrere deiner Beiträge wurden von den Moderator*innen von %{instance} mit einer Inhaltswarnung versehen. Das bedeutet, dass Besucher*innen diese Medien in den Beiträgen zunächst antippen müssen, um die Vorschau anzuzeigen. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen. + mark_statuses_as_sensitive: Ein oder mehrere deiner Beiträge wurden von den Moderator*innen von %{instance} mit einer Inhaltswarnung versehen. Das bedeutet, dass die Medien in den Beiträgen erst angeklickt werden müssen, bevor sie angezeigt werden. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen. sensitive: Von nun an werden alle deine hochgeladenen Medieninhalte mit einer Inhaltswarnung versehen und hinter einer Warnung versteckt. - silence: Du kannst dein Konto weiterhin verwenden, aber nur Personen, die dir bereits folgen, sehen deine Beiträge auf diesem Server. Ebenso kannst du von verschiedenen Entdeckungsfunktionen ausgeschlossen werden. Andere können dir jedoch weiterhin manuell folgen. + silence: Du kannst dein Konto weiterhin verwenden, aber nur Personen, die dir bereits folgen, sehen deine Beiträge auf diesem Server. Ebenso kannst du aus verschiedenen Suchfunktionen ausgeschlossen werden. Andere können dir jedoch weiterhin manuell folgen. suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um eine Sicherung deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst. reason: 'Begründung:' statuses: 'Betroffene Beiträge:' @@ -1770,7 +1770,7 @@ de: seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar. signed_in_as: 'Angemeldet als:' verification: - extra_instructions_html: Tipp: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me", wodurch das Nachahmen von Personen auf Websites mit nutzergenerierten Inhalten verhindert wird. Du kannst auch ein link-Tag statt a im Header auf der Seite verwenden, jedoch muss der HTML-Code ohne das Ausführen von JavaScript zugänglich sein. + extra_instructions_html: Hinweis: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me", wodurch das Nachahmen von Personen auf Websites mit nutzergenerierten Inhalten verhindert wird. Du kannst auch ein link-Tag statt a im Header auf der Seite verwenden, jedoch muss der HTML-Code ohne das Ausführen von JavaScript zugänglich sein. here_is_how: So funktioniert's hint_html: "Alle können ihre Identität auf Mastodon verifizieren. Basierend auf offenen Standards – jetzt und für immer kostenlos. Alles, was du brauchst, ist eine eigene Website. Wenn du von deinem Profil auf diese Website verlinkst, überprüfen wir, ob die Website zu deinem Profil zurückverlinkt und zeigen einen visuellen Hinweis an." instructions_html: Kopiere und füge den untenstehenden Code in das HTML deiner Website ein. Füge anschließend die Adresse deiner Website in ein Zusatzfeld auf deinem Profil hinzu und speichere die Änderungen. Die Zusatzfelder befinden sich im Reiter „Profil bearbeiten“. diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml index a724dae193..6ebdafb9ec 100644 --- a/config/locales/devise.ca.yml +++ b/config/locales/devise.ca.yml @@ -24,7 +24,7 @@ ca: action_with_app: Confirma i torna a %{app} explanation: Has creat un compte a %{host} amb aquesta adreça de correu electrònic. Estàs a un sol clic d'activar-lo. Si no ho has fet tu, ignora aquest correu electrònic. explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça-e. Revisarem la sol·licitud quan la confirmis. Pots iniciar la sessió per canviar els detalls o eliminar el compte, però no pots accedir a la majoria de les funcions fins que s'hagi aprovat. Si es rebutja la sol·licitud, les teves dades s’eliminaran, de manera que no se t’exigirà cap acció més. Si tu no has fet aquesta sol·licitud, ignora aquest correu-e. - extra_html: Si us plau, consulta també a les regles del servidor i a les nostres condicions de servei. + extra_html: Consulteu també a les regles del servidor i a les nostres condicions de servei. subject: 'Mastodon: Instruccions de confirmació de %{instance}' title: Verifica l'adreça-e email_changed: diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml index 3166f7b20c..4524dd707e 100644 --- a/config/locales/doorkeeper.be.yml +++ b/config/locales/doorkeeper.be.yml @@ -127,6 +127,7 @@ be: bookmarks: Закладкі conversations: Размовы crypto: Скразное шыфраванне + favourites: Упадабанае filters: Фільтры follow: Падпіскі, ігнараванне і блакіроўка follows: Падпіскі @@ -169,6 +170,7 @@ be: read:accounts: бачыць інфармацыю аб уліковых запісах read:blocks: бачыць свае блакіроўкі read:bookmarks: бачыць свае закладкі + read:favourites: бачыць сваё упадабанае read:filters: бачыць свае фільтры read:follows: бачыць свае падпіскі read:lists: бачыць свае спісы @@ -182,6 +184,7 @@ be: write:blocks: блакіраваць уліковыя запісы і дамены write:bookmarks: закладкі допісаў write:conversations: ігнараваць і выдаляць размовы + write:favourites: упадабаныя допісы write:filters: ствараць фільтры write:follows: Сачыць за людзьмі write:lists: ствараць спiсы diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index d4c694d587..9706f3db70 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -150,11 +150,11 @@ ca: admin:read: llegeix totes les dades en el servidor admin:read:accounts: llegir informació confidencial de tots els comptes admin:read:canonical_email_blocks: llegeix informació sensible de tots els blocs canònics de correu-e - admin:read:domain_allows: llegeix informació sensible de tots els dominis permesos - admin:read:domain_blocks: llegeix informació sensible de tots els blocs de domini - admin:read:email_domain_blocks: llegeix informació sensible de tots els blocs de domini de correu-e - admin:read:ip_blocks: llegeix informació sensible de tots els blocs d'IP - admin:read:reports: llegir informació confidencial de tots els informes i comptes reportats + admin:read:domain_allows: llegeix informació confidencial de tots els dominis permesos + admin:read:domain_blocks: llegeix informació confidencial de tots els blocs de domini + admin:read:email_domain_blocks: llegeix informació confidencial de tots els blocs de domini de correu-e + admin:read:ip_blocks: llegeix informació confidencial de tots els blocs d'IP + admin:read:reports: llegeix informació confidencial de tots els informes i comptes reportats admin:write: modificar totes les dades en el servidor admin:write:accounts: fer l'acció de moderació en els comptes admin:write:canonical_email_blocks: executa accions de moderació en blocs canònics de correu-e diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml index 49d7acad66..ba2100edfd 100644 --- a/config/locales/doorkeeper.cs.yml +++ b/config/locales/doorkeeper.cs.yml @@ -127,6 +127,7 @@ cs: bookmarks: Záložky conversations: Konverzace crypto: End-to-end šifrování + favourites: Oblíbené filters: Filtry follow: Sledování, ztlumení a blokování follows: Sledovaní @@ -169,6 +170,7 @@ cs: read:accounts: vidět informace o účtech read:blocks: vidět vaše blokace read:bookmarks: vidět vaše záložky + read:favourites: zobrazit vaše oblíbené read:filters: vidět vaše filtry read:follows: vidět vaše sledování read:lists: vidět vaše seznamy @@ -182,6 +184,7 @@ cs: write:blocks: blokovat účty a domény write:bookmarks: přidávat příspěvky do záložek write:conversations: skrývat a mazat konverzace + write:favourites: oblíbené příspěvky write:filters: vytvářet filtry write:follows: sledovat lidi write:lists: vytvářet seznamy diff --git a/config/locales/doorkeeper.es-MX.yml b/config/locales/doorkeeper.es-MX.yml index 76f5eace7c..4d91b74af4 100644 --- a/config/locales/doorkeeper.es-MX.yml +++ b/config/locales/doorkeeper.es-MX.yml @@ -127,6 +127,7 @@ es-MX: bookmarks: Marcadores conversations: Conversaciones crypto: Cifrado de extremo a extremo + favourites: Favoritos filters: Filtros follow: Seguimientos, silenciados y bloqueos follows: Seguidos @@ -169,6 +170,7 @@ es-MX: read:accounts: ver información de cuentas read:blocks: ver a quién has bloqueado read:bookmarks: ver tus marcadores + read:favourites: ver tus favoritos read:filters: ver tus filtros read:follows: ver a quién sigues read:lists: ver tus listas @@ -182,6 +184,7 @@ es-MX: write:blocks: bloquear cuentas y dominios write:bookmarks: guardar estados como marcadores write:conversations: silenciar y eliminar conversaciones + write:favourites: marcar publicaciones como favoritas write:filters: crear filtros write:follows: seguir usuarios write:lists: crear listas diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index 0a7382a245..002f813b32 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -127,6 +127,7 @@ es: bookmarks: Marcadores conversations: Conversaciones crypto: Cifrado de extremo a extremo + favourites: Favoritos filters: Filtros follow: Seguimientos, silenciados y bloqueos follows: Seguidos @@ -169,6 +170,7 @@ es: read:accounts: ver información de cuentas read:blocks: ver a quién has bloqueado read:bookmarks: ver tus marcadores + read:favourites: ver tus favoritos read:filters: ver tus filtros read:follows: ver a quién sigues read:lists: ver tus listas @@ -182,6 +184,7 @@ es: write:blocks: bloquear cuentas y dominios write:bookmarks: guardar publicaciones como marcadores write:conversations: silenciar y eliminar conversaciones + write:favourites: marcar publicaciones como favoritas write:filters: crear filtros write:follows: seguir usuarios write:lists: crear listas diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml index 594b6e27b0..66dd0f9093 100644 --- a/config/locales/doorkeeper.nn.yml +++ b/config/locales/doorkeeper.nn.yml @@ -127,6 +127,7 @@ nn: bookmarks: Bokmerke conversations: Samtalar crypto: Ende-til-ende-kryptering + favourites: Favorittar filters: Filter follow: Dei du fylgjer, målbind og blokkerer follows: Fylgjer @@ -169,6 +170,7 @@ nn: read:accounts: sjå informasjon om kontoar read:blocks: sjå dine blokkeringar read:bookmarks: sjå bokmerka dine + read:favourites: sjå favorittane dine read:filters: sjå filtera dine read:follows: sjå fylgjarane dine read:lists: sjå listene dine @@ -182,6 +184,7 @@ nn: write:blocks: blokker kontoar og domene write:bookmarks: bokmerk innlegg write:conversations: målbind og slett samtalar + write:favourites: favorittmarker innlegg write:filters: lag filter write:follows: fylg folk write:lists: lag lister diff --git a/config/locales/doorkeeper.no.yml b/config/locales/doorkeeper.no.yml index ed0c6da108..c432f6645c 100644 --- a/config/locales/doorkeeper.no.yml +++ b/config/locales/doorkeeper.no.yml @@ -127,6 +127,7 @@ bookmarks: Bokmerker conversations: Samtaler crypto: Ende-til-ende-kryptering + favourites: Favoritter filters: Filtre follow: Hvem du følger, demper og blokkerer follows: Følger @@ -169,6 +170,7 @@ read:accounts: se informasjon om kontoer read:blocks: se blokkeringene dine read:bookmarks: se bokmerkene dine + read:favourites: se favorittene dine read:filters: se filtrene dine read:follows: se hvem du følger read:lists: se listene dine @@ -182,6 +184,7 @@ write:blocks: blokkere kontoer og domener write:bookmarks: bokmerke innlegg write:conversations: dempe og slette samtaler + write:favourites: favorittmarker innlegg write:filters: opprette filtre write:follows: følge personer write:lists: opprette lister diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index 4014397dc3..acf0ddd676 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -127,6 +127,7 @@ sv: bookmarks: Bokmärken conversations: Konversationer crypto: Ände-till-ände-kryptering + favourites: Favoriter filters: Filter follow: Följare, mjutade och blockerade follows: Följer diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index c05d4d242a..127937141b 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1265,12 +1265,14 @@ es-MX: bookmarks_html: Estás a punto de reemplazar tus marcadores por hasta %{total_items} publicaciones provenientes de %{filename}. domain_blocking_html: Estás a punto de reemplazar tu lista de bloqueos de dominio por hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta %{total_items} cuentas provenientes de %{filename} y dejar de seguir a cualquier otra cuenta. + lists_html: Estás a punto de reemplazar tus listas con contenidos de %{filename}. Se añadirán %{total_items} cuentas a nuevas listas. muting_html: Estás a punto de reemplazar tu lista de cuentas silenciadas con hasta %{total_items} cuentas proveninetes de %{filename}. preambles: blocking_html: Estás a punto de bloquear hasta %{total_items} cuentas proveninetes de %{filename}. bookmarks_html: Estás a punto de añadir hasta %{total_items} publicaciones proveninetes de %{filename} a tus marcadores. domain_blocking_html: Estás a punto de bloquear hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta cuentas%{total_items} provenientes de %{filename}. + lists_html: Estás a punto de añadir %{total_items} cuentas desde %{filename} a tus listas. Se crearán nuevas listas si no hay listas para añadirlas. muting_html: Estás a punto de silenciar hasta %{total_items} cuentas provenientes de %{filename}. preface: Puedes importar ciertos datos, como todas las personas que estás siguiendo o bloqueando en tu cuenta en esta instancia, desde archivos exportados de otra instancia. recent_imports: Importaciones recientes @@ -1287,6 +1289,7 @@ es-MX: bookmarks: Importando marcadores domain_blocking: Importando dominios bloqueados following: Importando cuentas seguidas + lists: Importando listas muting: Importando cuentas silenciadas type: Importar tipo type_groups: @@ -1297,6 +1300,7 @@ es-MX: bookmarks: Marcadores domain_blocking: Lista de dominios bloqueados following: Lista de seguidos + lists: Listas muting: Lista de silenciados upload: Cargar invites: diff --git a/config/locales/es.yml b/config/locales/es.yml index 8bb99c42ed..622bf17617 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1265,12 +1265,14 @@ es: bookmarks_html: Estás a punto de reemplazar tus marcadores por hasta %{total_items} publicaciones provenientes de %{filename}. domain_blocking_html: Estás a punto de reemplazar tu lista de bloqueos de dominio por hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta %{total_items} cuentas provenientes de %{filename} y dejar de seguir a cualquier otra cuenta. + lists_html: Estás a punto de reemplazar tus listas con contenidos de %{filename}. Se añadirán %{total_items} cuentas a nuevas listas. muting_html: Estás a punto de reemplazar tu lista de cuentas silenciadas con hasta %{total_items} cuentas proveninetes de %{filename}. preambles: blocking_html: Estás a punto de bloquear hasta %{total_items} cuentas proveninetes de %{filename}. bookmarks_html: Está a punto de añadir hasta %{total_items} publicaciones proveninetes de %{filename} a tus marcadores. domain_blocking_html: Estás a punto de bloquear hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta cuentas%{total_items} provenientes de %{filename}. + lists_html: Estás a punto de añadir %{total_items} cuentas desde %{filename} a tus listas. Se crearán nuevas listas si no hay listas para añadirlas. muting_html: Estás a punto de silenciar hasta %{total_items} cuentas provenientes de %{filename}. preface: Puedes importar ciertos datos, como todas las personas que estás siguiendo o bloqueando en tu cuenta en esta instancia, desde archivos exportados de otra instancia. recent_imports: Importaciones recientes @@ -1287,6 +1289,7 @@ es: bookmarks: Importando marcadores domain_blocking: Importando dominios bloqueados following: Importando cuentas seguidas + lists: Importando listas muting: Importando cuentas silenciadas type: Importar tipo type_groups: @@ -1297,6 +1300,7 @@ es: bookmarks: Marcadores domain_blocking: Lista de dominios bloqueados following: Lista de seguidos + lists: Listas muting: Lista de silenciados upload: Cargar invites: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 9fa0d51d7d..a1f27c6ab3 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -387,7 +387,7 @@ fi: confirm: Jäädytä permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai suhteita. preamble_html: Olet jäädyttämässä verkkotunnuksen %{domain} ja sen aliverkkotunnukset. - remove_all_data: Tämä poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän verkkotunnuksen tileiltä. + remove_all_data: Tämä toiminto poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän palvelun tileiltä. stop_communication: Palvelimesi lopettaa näiden palvelinten viestinnän. title: Vahvista verkkotunnuksen %{domain} esto undo_relationships: Tämä kumoaa näiden palvelimien ja sinun tilien välisen seurannan. @@ -1343,6 +1343,7 @@ fi: unsubscribe: action: Kyllä, peru tilaus complete: Tilaus lopetettiin + confirmation_html: Olethan varma, että haluat lopettaa %{type} -aiheisten Mastodonin sähköposti-ilmoitusten vastaanoton palvelimelta %{domain} osoitteeseesi %{email}? Voit toki milloin tahansa ottaa jälleen käyttöön muun muassa nämä viestit sähköposti-ilmoitusasetusten kautta. emails: notification_emails: favourite: sähköpostit ilmoituksille @@ -1350,6 +1351,8 @@ fi: follow_request: seuraa pyyntöjä sähköpostiin mention: mainitse sähköpostin ilmoitukset reblog: tehosta sähköpostien ilmoituksia + resubscribe_html: Jos olet perunut ilmoitusviestien vastaanottamisen suotta, pääset jälleentilaamaan ilmoitusviestejä sähköposti-ilmoitusasetusten kautta. + success_html: Sinulle ei vastedes lähetetä %{type} -aihepiirin Mastodon-sähköposti-ilmoituksia palvelimelta %{domain} osoitteeseen %{email}. title: Lopeta tilaus media_attachments: validations: @@ -1767,6 +1770,10 @@ fi: seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. signed_in_as: 'Kirjautunut tilillä:' verification: + extra_instructions_html: Vinkki: Tämä linkitys verkkosivustollasi voidaan toteuttaa myös näkymättömänä. Tärkeä osuus on rel="me" -määre, jolla ehkäistään valeprofiilikäyttötarkoituksia sivustoilla, joiden sisältö perustuu käyttäjiensä julkaisuihin. Voit siis käyttää linkkiviittauselementtiä link HTML-lähdekoodin otsakeosassa (head) sen sijaan, että käyttäisit näkyvää hyperlinkkielementtiä a. HTML-lähdekoodin tulee tuolta osin kuitenkin olla JavaScriptistä riippumatonta. + here_is_how: Näin voit tehdä sen + hint_html: "Mastodonissa henkilöllisyyden vahventaminen on jokaisen käyttäjän ulottuvilla. Tämä perustuu avoimiin standardeihin, maksuttomasti nyt ja aina. Kaikki mitä tarvitset on henkilökohtainen verkkosivusto, jonka avulla sinut voidaan tunnistaa. Kun Mastodon-profiilistasi on linkki kyseiselle verkkosivustollesi, ja sieltä löytyy vastaviittaus tai -linkitys profiiliisi, näkyy profiilissasi vahvistustunniste." + instructions_html: Kopioi ja liitä alla oleva koodi verkkosivusi HTML-lähdekoodiin. Lisää sitten verkkosivustosi osoite johonkin ylimääräisistä kentistä profiiliasetuksissa, "Muokkaa profiilia" -välilehdestä, ja tallenna muutokset. verification: Vahvistus verified_links: Vahvistetut linkkisi webauthn_credentials: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index fe195ee09f..6cce9b9937 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -269,7 +269,7 @@ ko: reopen_report_html: "%{name} 님이 신고 %{target}을 다시 열었습니다" resend_user_html: "%{name} 님이 %{target} 님에 대한 확인 메일을 다시 보냈습니다" reset_password_user_html: "%{name} 님이 사용자 %{target}의 암호를 초기화했습니다" - resolve_report_html: "%{name} 님이 신고 %{target}를 처리됨으로 변경하였습니다" + resolve_report_html: "%{name} 중재자가 %{target}번 신고를 해결로 변경하였습니다" sensitive_account_html: "%{name} 님이 %{target}의 미디어를 민감함으로 표시했습니다" silence_account_html: "%{name} 님이 %{target}의 계정을 제한시켰습니다" suspend_account_html: "%{name} 님이 %{target}의 계정을 정지시켰습니다" @@ -354,7 +354,7 @@ ko: other: "%{count}개의 대기 중인 해시태그" pending_users_html: other: "%{count}명의 대기 중인 사용자" - resolved_reports: 신고 해결됨 + resolved_reports: 해결된 신고 software: 소프트웨어 sources: 가입 출처 space: 디스크 사용량 @@ -600,7 +600,7 @@ ko: delete_and_resolve: 게시물 삭제 forwarded: 전달됨 forwarded_to: "%{domain}에게 전달됨" - mark_as_resolved: 해결 완료 처리 + mark_as_resolved: 해결로 표시 mark_as_sensitive: 민감함으로 설정 mark_as_unresolved: 미해결로 표시 no_one_assigned: 아무도 없음 @@ -619,7 +619,7 @@ ko: report: '신고 #%{id}' reported_account: 신고 대상 계정 reported_by: 신고자 - resolved: 해결됨 + resolved: 해결 resolved_msg: 신고를 잘 해결했습니다! skip_to_actions: 작업으로 건너뛰기 status: 상태 @@ -712,7 +712,7 @@ ko: rules: add_new: 규칙 추가 delete: 삭제 - description_html: 대부분의 경우 사람들이 이용약관을 반드시 읽고 동의하도록 하지만, 보통의 사람들은 문제가 일어나기 전까지는 읽지 않습니다. 여러분의 서버 규칙을 목록으로 정리해서 한 번에 읽기 쉽게 만드세요. 규칙 각각을 짧고 단순하게 만들고, 하나를 여러 개로 쪼개지도 마세요. + description_html: 대부분의 사람들은 서비스 약관을 읽고 동의한다고 밝힙니다만, 대개 문제가 발생하기 전까지는 약관을 자세히 읽어보지 않습니다. 서버의 운영원칙을 단일한 글머리 기호 목록으로 제공하여 한 눈에 쉽게 확인할 수 있도록 하세요. 각 규칙을 짧고 간결하게 유지하되, 많은 항목으로 나누지 않도록 하세요. edit: 규칙 수정 empty: 아직 정의된 서버 규칙이 없습니다. title: 서버 규칙 @@ -851,7 +851,7 @@ ko: statuses: allow: 게시물 허용 allow_account: 작성자 허용 - description_html: 당신의 서버가 알기로 현재 많은 수의 공유와 좋아요가 되고 있는 게시물들입니다. 새로운 사용자나 돌아오는 사용자들이 팔로우 할 사람들을 찾는 데 도움이 될 수 있습니다. 작성자를 승인하고, 작성자가 그들의 계정이 다른 계정에게 탐색되도록 설정하지 않는 한 게시물들은 공개적으로 표시되지 않습니다. 또한 각각의 게시물을 별개로 거절할 수도 있습니다. + description_html: 여러분의 서버가 알기로 현재 많은 수의 공유와 좋아요가 되고 있는 게시물들입니다. 새로운 사용자나 돌아오는 사용자들이 팔로우 할 사람들을 찾는 데 도움이 될 수 있습니다. 작성자를 승인하고, 작성자가 그들의 계정이 다른 계정에게 탐색되도록 설정하지 않는 한 게시물들은 공개적으로 표시되지 않습니다. 또한 각각의 게시물을 별개로 거절할 수도 있습니다. disallow: 게시물 비허용 disallow_account: 작성자 비허용 no_status_selected: 아무 것도 선택 되지 않아 어떤 유행중인 게시물도 바뀌지 않았습니다 @@ -1229,7 +1229,7 @@ ko: invalid_csv_file: '올바르지 않은 CSV 파일입니다. 오류: %{error}' over_rows_processing_limit: "%{count}개 이상의 열을 포함합니다" too_large: 파일이 너무 큼 - failures: 실패함 + failures: 실패 imported: 가져옴 mismatched_types_warning: 가져오기할 때 잘못된 유형을 선택했을 수 있으니, 꼭 두 번 체크해주세요. modes: @@ -1276,9 +1276,9 @@ ko: blocking: 차단한 계정 목록 bookmarks: 북마크 domain_blocking: 도메인 차단 목록 - following: 팔로우 중인 계정 목록 + following: 팔로잉 목록 lists: 리스트 - muting: 뮤트 중인 계정 목록 + muting: 뮤트한 계정 목록 upload: 업로드 invites: delete: 비활성화 @@ -1363,7 +1363,7 @@ ko: cooldown: 이주 뒤에는 새로운 이주를 하지 못하는 휴식기간이 존재합니다 disabled_account: 이 계정은 완전한 사용이 불가능하게 됩니다. 하지만, 데이터 내보내기나 재활성화를 위해 접근할 수 있습니다. followers: 이 행동은 현재 계정의 모든 팔로워를 새 계정으로 이동시킵니다 - only_redirect_html: 대신, 프로필에 리디렉션만 표시할 수 있습니다. + only_redirect_html: 대신, 프로필에 리디렉션만 표시할 수도 있습니다. other_data: 다른 어떤 데이터도 자동적으로 옮겨지지 않을 것입니다 redirect: 현재 계정 프로필은 리다이렉트 알림과 함께 업데이트 되며 검색에서 제외 됩니다 moderation: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 74b5f51eeb..d03b1e5dbe 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -3,9 +3,16 @@ lt: about: about_mastodon_html: Mastodon, tai socialinis tinklas pagrįstas atviro kodo programavimu, ir atvirais web protokolais. Visiškai nemokamas. Ši sistema decantrilizuota kaip jūsų elektroninis paštas. contact_missing: Nenustatyta + contact_unavailable: Nėra duomenų hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu + title: Apie accounts: follow: Sekti + followers: + few: Sekėjai + many: Sekėjai + one: Sekėjas + other: Sekėjai following: Sekami last_active: paskutinį kartą aktyvus link_verified_on: Nuorodos nuosavybė paskutinį kartą tikrinta %{date} @@ -22,6 +29,7 @@ lt: created_msg: Moderavimo žinutė sėkimngai sukurta! destroyed_msg: Moderacijos žinutė sėkmingai ištrinta! accounts: + approve: Patvirtinti are_you_sure: Ar esate įsitikinęs? avatar: Profilio nuotrauka by_domain: Domenas @@ -51,6 +59,7 @@ lt: header: Antraštė inbox_url: Gautųjų URL invited_by: Pakvietė + ip: IP joined: Prisijungė location: all: Visi @@ -84,6 +93,7 @@ lt: reset_password: Atkurti slaptažodį resubscribe: Per prenumeruoti search: Ieškoti + sensitized: Pažymėti kaip jautrią informaciją shared_inbox_url: Bendroji gautųjų URL show: created_reports: Parašyti raportai diff --git a/config/locales/ml.yml b/config/locales/ml.yml index 5f8de52987..ae2a93a33a 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -76,6 +76,14 @@ ml: invites: filter: all: എല്ലാം + errors: + '400': The request you submitted was invalid or malformed. + '403': You don't have permission to view this page. + '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. + '410': The page you were looking for doesn't exist here anymore. + '429': Too many requests + '503': The page could not be served due to a temporary server failure. filters: contexts: notifications: അറിയിപ്പുകൾ diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 90616bf863..29065db53f 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -385,7 +385,12 @@ nn: confirm_suspension: cancel: Avbryt confirm: Suspender - permanent_action: Å oppheve suspensjonen vil ikke gjenopprette noe data eller koblinger. + permanent_action: Å oppheve suspensjonen vil ikkje gjenopprette data eller koplingar. + preamble_html: Du er i ferd med å suspendera %{domain} inkludert underdomener. + remove_all_data: Dette vil fjerna alt innhald, media og profildata for kontoar som tilhøyrer dette domenet frå din tenar. + stop_communication: Tenaren din vil slutta å kommunisera med desse tenarane. + title: Stadfest domeneblokkering for %{domain} + undo_relationships: Dette vil oppheve alle følgar-relasjonar mellom kontoane dine og kontoar på desse tenerane. created_msg: Domeneblokkering blir nå behandlet destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene @@ -735,6 +740,9 @@ nn: branding: preamble: Profileringa av tenaren din skil den frå andre tenarar i nettverket. Informasjonen kan bli vist ulike stadar, til dømes i Mastodon sitt web-grensesnitt, i eigne applikasjonar, i førehandsvisningar på andre nettsider, i meldingsappar og så bortetter. På grunn av dette er det best å halde informasjonen enkel, kort og treffande. title: Profilering + captcha_enabled: + desc_html: Dette er avhengig av eksterne skript fra hCaptcha, som kan være et sikkerhets- og personvernproblem. I tillegg kan dette gjøre registreringsprosessen betydelig mindre tilgjengelig for noen (spesielt funksjonshemmede) personer. Av disse grunnene bør du vurdere alternative tiltak som godkjenningsbasert eller invitasjonsbasert registrering. + title: Krev at nye brukarar løyser ein CAPTCHA for å bekrefte kontoen sin content_retention: preamble: Styr korleis brukargenerert innhald blir lagra i Mastodon. title: Bevaring av innhald @@ -762,6 +770,7 @@ nn: approved: Godkjenning kreves for påmelding none: Ingen kan melda seg inn open: Kven som helst kan melda seg inn + title: Tenarinstillingar site_uploads: delete: Slett opplasta fil destroyed_msg: Vellukka sletting av sideopplasting! @@ -968,7 +977,7 @@ nn: notification_preferences: Endr e-post-innstillingane salutation: Hei %{name}, settings: 'Endr e-post-innstillingar: %{link}' - unsubscribe: Avslutt abonnement + unsubscribe: Meld av view: 'Sjå:' view_profile: Sjå profil view_status: Sjå status @@ -983,7 +992,9 @@ nn: auth: apply_for_account: Søk om ein konto captcha_confirmation: - title: Sikkerhetskontroll + help_html: Om du har problem med å løyse CAPTCHA, kan kontakte oss på %{email} og vi kan hjelpe deg. + hint_html: Berre ein ting til! Vi må bekrefte at du er et menneske (så vi kan halde spam ute!). Løys CAPTCHA-en nedanfor og klikk "Fortsett". + title: Sikkerheitssjekk confirmations: wrong_email_hint: Viss epostadressa er feil, kan du endra ho i kontoinnstillingane. delete_account: Slett konto @@ -1020,9 +1031,9 @@ nn: rules: accept: Godkjenn back: Attende - invited_by: 'Du kan bli med %{domain} takket være invitasjonen du fikk fra:' + invited_by: 'Du kan bli med i %{domain} takka vere invitasjonen du har fått frå:' preamble: Disse angis og håndheves av %{domain}-moderatorene. - preamble_invited: Før du fortsetter, vennligst gå gjennom reglene som er satt av moderatorene av %{domain}. + preamble_invited: Før du held fram, ver snill og sjå gjennom reglane bestemt av moderatorane av %{domain}. title: Noen grunnregler. title_invited: Du har blitt invitert. security: Tryggleik @@ -1126,10 +1137,10 @@ nn: domain_validator: invalid_domain: er ikkje eit gangbart domenenamn edit_profile: - basic_information: Grunnleggende informasjon + basic_information: Grunnleggande informasjon hint_html: "Tilpass hva folk ser på din offentlige profil og ved siden av dine innlegg. Det er mer sannsynlig at andre mennesker følger deg tilbake og samhandler med deg når du har fylt ut en profil og et profilbilde." - other: Annet - safety_and_privacy: Sikkerhet og personvern + other: Anna + safety_and_privacy: Sikkerheit og personvern errors: '400': Søknaden du sende var ugyldig eller sett opp feil. '403': Du har ikkje løyve til å sjå denne sida. @@ -1193,6 +1204,12 @@ nn: keywords: one: "%{count} stikkord" other: "%{count} stikkord" + statuses: + one: "%{count} innlegg" + other: "%{count} innlegg" + statuses_long: + one: "%{count} individuelt innlegg er gøymd" + other: "%{count} individuelle innlegg er gøymde" title: Filter new: save: Lagre nytt filter @@ -1206,6 +1223,12 @@ nn: title: Filtrerte innlegg generic: all: Alle + all_items_on_page_selected_html: + one: Du har valt %{count} element på denne sida. + other: Du har valt %{count} element på denne sida. + all_matching_items_selected_html: + one: "%{count} element som passar til søket ditt er vald." + other: Du har valt %{count} element som passar til søket ditt. cancel: Avbryt changes_saved_msg: Alle endringane vart lagra! confirm: Stadfest @@ -1215,6 +1238,9 @@ nn: none: Ingen order_by: Sorter etter save_changes: Lagr endringar + select_all_matching_items: + one: Vel %{count} element som passar til søket ditt. + other: Vel %{count} element som passar til søket ditt. today: i dag validation_errors: one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til @@ -1239,12 +1265,14 @@ nn: bookmarks_html: Du skal til å byta ut bokmerka dine med opp til %{total_items} innlegg frå %{filename}. domain_blocking_html: Du skal til å byta ut domeneblokkeringslista di med opp til %{total_items} domene frå %{filename}. following_html: Du skal til å fylgja opp til %{total_items} brukarkontoar frå %{filename} og slutta å fylgja alle andre. + lists_html: Du er i ferd med å erstatte dine lister med innholdet i %{filename}. Inntil %{total_items} kontoer legges til i nye lister. muting_html: Du skal til å byta ut lista di over dempa brukarkontoar med opp til %{total_items} brukarkontoar frå %{filename}. preambles: blocking_html: Du skal til å blokkera opp til %{total_items} brukarkontoar frå %{filename}. bookmarks_html: Du skal til å leggja til opp til %{total_items} innlegg frå %{filename} til bokmerka dine. domain_blocking_html: Du skal til å blokkera opp til %{total_items} domene frå %{filename}. following_html: Du skal til å fylgja opp til %{total_items} brukarkontoar frå %{filename}. + lists_html: Du er i ferd med å legge inntil %{total_items} kontoer fra %{filename} til dine lister. Nye lister vil bli opprettet hvis det ikke finnes noen liste å legge til. muting_html: Du skal til å dempa opp til %{total_items} brukarkontoar frå %{filename}. preface: Du kan henta inn data som du har eksportert frå ein annan tenar, som t.d. ei liste over folka du fylgjer eller blokkerer. recent_imports: Siste importar @@ -1261,6 +1289,7 @@ nn: bookmarks: Importerer bokmerke domain_blocking: Importerer blokkerte domene following: Importerer fylgde brukarkontoar + lists: Importerer lister muting: Importerer dempa brukarkontoar type: Type import type_groups: @@ -1271,6 +1300,7 @@ nn: bookmarks: Bokmerker domain_blocking: Liste over blokkerte domene following: Fylgjeliste + lists: Lister muting: Dempeliste upload: Last opp invites: @@ -1311,8 +1341,8 @@ nn: title: Autentiseringshistorikk mail_subscriptions: unsubscribe: - action: Ja, avslutt abonnement - complete: Abonnement avsluttet + action: Ja, meld av + complete: Meldt av confirmation_html: Er du sikker på at du vil slutte å motta %{type} fra Mastodon %{domain} i e-posten din på %{email}? Du kan når som helst gjenoppta i innstillinger for e-postvarsling. emails: notification_emails: @@ -1323,7 +1353,7 @@ nn: reblog: e-poster om fremhevinger resubscribe_html: Hvis du har avsluttet abonnementet ved en feiltakelse, kan du abonnere på nytt i innstillinger for e-postvarsling. success_html: Du vil ikke lenger motta %{type} fra Mastodon på %{domain} i e-posten din på %{email}. - title: Avslutt abonnement + title: Meld av media_attachments: validations: images_and_video: Kan ikkje leggja ved video til status som allereie inneheld bilete @@ -1439,7 +1469,7 @@ nn: expired: Denne rundspørjinga er allereie ferdig invalid_choice: Det valgte stemmealternativet eksisterer ikke over_character_limit: kan ikkje vera lengre enn %{max} teikn kvar - self_vote: Du kan ikke stemme i dine egne avstemninger + self_vote: Du kan ikkje stemme i di eiga avstemming too_few_options: må ha meir enn eitt element too_many_options: kan ikkje ha meir enn %{max} element preferences: @@ -1741,11 +1771,11 @@ nn: signed_in_as: 'Logga inn som:' verification: extra_instructions_html: Tips: Lenken på din nettside kan være usynlig. Den viktige delen er rel="me" som sikrer at nettsteder med brukergenerert innhold ikke kan utgi seg for å være deg. Du kan til og med bruke en link lenke i sidens topptekst i stedet for a, men HTML-koden må være tilgjengelig uten å kjøre JavaScript. - here_is_how: Slik gjør du + here_is_how: Slik gjer du hint_html: "Verifisering av identiteten din på Mastodon er for alle. Basert på åpne nettstandarder, gratis nå og for alltid. Alt du trenger er en personlig nettside som gjør at folk kjenner deg igjen. Når du lenker til dette nettstedet fra din profil, vil vi sjekke at nettstedet lenker tilbake til profilen din og viser dette på profilen din." instructions_html: Kopier og lim inn koden nedenfor i HTML til ditt nettsted. Deretter legger du til adressen til nettstedet ditt i et av ekstrafeltene på profilen din fra fanen "Rediger profil" og lagre endringer. verification: Stadfesting - verified_links: Dine bekreftede lenker + verified_links: Dine verifiserte lenker webauthn_credentials: add: Legg til ny sikkerhetsnøkkel create: diff --git a/config/locales/no.yml b/config/locales/no.yml index 336c19e3dd..6a0bdca071 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -386,6 +386,11 @@ cancel: Avbryt confirm: Suspender permanent_action: Å oppheve suspensjonen vil ikke gjenopprette noe data eller koblinger. + preamble_html: Du er i ferd med å suspendere %{domain} og dens underdomener. + remove_all_data: Dette vil fjerne alt innhold, medier og profildata for domenets kontoer på serveren din. + stop_communication: Serveren din vil slutte å kommunisere med disse serverne. + title: Bekreft domene blokkering for %{domain} + undo_relationships: Dette vil angre ethvert følgeforhold mellom kontoene til disse serverne og dine. created_msg: Domeneblokkering blir nå behandlet destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene @@ -636,9 +641,22 @@ mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:' silence_html: 'Du er i ferd med å avgrense @%{acct} sin konto. Dette vil:' suspend_html: 'Du er i ferd med å stoppe @%{acct} sin konto. Dette vil:' + actions: + delete_html: Fjerne fornærmede innlegg + mark_as_sensitive_html: Merk fornærmede innlegg medier som sensitivt + silence_html: Sterkt begrense @%{acct}ved å gjøre deres profil og innhold kun synlig for personer som allerede følger dem, eller manuelt ser etter den + suspend_html: Suspender @%{acct}, og gjøre profilen og innholdet utilgjengelig og umulig å samhandle med + close_report: 'Marker rapport #%{id} som løst' + close_reports_html: Merk alle rapporter mot @%{acct} som løst + delete_data_html: Slett @%{acct} sin profil og innhold 30 dager fra nå med mindre de blir suspendert i mellomtiden + preview_preamble_html: "@%{acct} vil motta en advarsel med følgende innhold:" + record_strike_html: Ta opp en streik mot @%{acct} for å hjelpe deg med å eskalere fremtidige brudd fra denne kontoen + send_email_html: Send @%{acct} en advarsels e-post + warning_placeholder: Valgfritt ytterligere resonnement for moderasjonstiltaket. target_origin: Opprinnelse for innrapportert konto title: Rapporter unassign: Fjern tilegning + unknown_action_msg: 'Ukjent handling: %{action}' unresolved: Uløst updated_at: Oppdatert view_profile: Vis profil @@ -670,7 +688,10 @@ invite_users_description: Lar brukere invitere nye personer til serveren manage_announcements: Behandle Kunngjøringer manage_announcements_description: Lar brukere endre kunngjøringer på serveren + manage_appeals: Behandle klager + manage_appeals_description: Lar brukere gjennomgå klager mot modereringsaktiviteter manage_blocks: Behandle Blokker + manage_blocks_description: Lar brukere blokkere e-postleverandører og IP-adresser manage_custom_emojis: Administrer egendefinerte Emojier manage_custom_emojis_description: Lar brukere endre egendefinert emojis på serveren manage_federation: Administrer Føderasjon @@ -680,15 +701,21 @@ manage_reports: Administrer Rapporter manage_reports_description: Lar brukere se på rapporter og utføre moderasjonshandlinger mot dem manage_roles: Behandle Roller + manage_roles_description: Lar brukere administrere og tildele roller under sine rettigheter manage_rules: Administrer Regler manage_rules_description: La brukere endre serverregler manage_settings: Administrer Innstillinger manage_settings_description: La brukere endre sideinnstillinger + manage_taxonomies: Administrer taksonomier + manage_taxonomies_description: Lar brukere gjennomgå populære innhold og oppdatere emneknagg innstillinger manage_user_access: Administrer Brukertilgang manage_user_access_description: Lar brukere deaktivere andre brukeres 2-trinnsinnlogging, endre sin e-postadresse, og tilbakestille passordet deres manage_users: Behandle Brukere manage_users_description: Lar brukere se detaljer om andre brukere og utføre moderasjonshandlinger mot dem manage_webhooks: Administrer Webhooks + manage_webhooks_description: Lar brukere sette opp webhooks for administrative hendelser + view_audit_log: Vis overvåkingslogg + view_audit_log_description: La brukere se en logg over administrative handlinger på serveren view_dashboard: Vis dashbord view_dashboard_description: Gir brukere tilgang til dashbordet og ulike metrikker view_devops: DevOps @@ -711,15 +738,24 @@ preamble: Tilpass Mastodons webgrensesnitt. title: Utseende branding: + preamble: Serverens merkevarebygging skiller den fra andre servere i nettverket. Denne informasjonen kan vises på tvers av en rekke miljøer, for eksempel Mastodons webgrensesnitt, native applikasjoner, i forhåndsvisning av lenker på andre nettsteder og i meldingsapper, osv. Av denne grunn er det best å holde denne informasjonen klar, kort og kortfattet. title: Merkevare + captcha_enabled: + desc_html: Dette er avhengig av eksterne skript fra hCaptcha, som kan være et sikkerhets- og personvernproblem. I tillegg kan dette gjøre registreringsprosessen betydelig mindre tilgjengelig for noen (spesielt funksjonshemmede) personer. Av disse grunnene bør du vurdere alternative tiltak som godkjenningsbasert eller invitasjonsbasert registrering. + title: Krev at nye brukere løser en CAPTCHA for å bekrefte kontoen sin content_retention: preamble: Kontroller hvordan brukergenerert innhold lagres i Mastodon. + title: Oppbevaring av innhold default_noindex: desc_html: Påvirker alle brukerne som ikke selv har justert denne innstillingen title: Ikke la brukere indekseres av søkemotorer som standard discovery: follow_recommendations: Følg anbefalinger + preamble: Overflater interessant innhold er medvirkende til ombordstigning av nye brukere som kanskje ikke kjenner noen Mastodon. Kontroller hvordan ulike oppdagelsesfunksjoner fungerer på serveren. + profile_directory: Profilkatalog public_timelines: Offentlige tidslinjer + publish_discovered_servers: Publiser liste over oppdagede servere + publish_statistics: Publiser statistikk title: Oppdagelse trends: Trender domain_blocks: @@ -734,6 +770,7 @@ approved: Godkjenning kreves for påmelding none: Ingen kan melde seg inn open: Hvem som helst kan melde seg inn + title: Serverinnstillinger site_uploads: delete: Slett den opplastede filen destroyed_msg: Vellykket sletting av sideopplasting! @@ -820,6 +857,7 @@ pending_review: Avventer gjennomgang preview_card_providers: allowed: Lenker fra denne utgiveren kan "trende" + description_html: Dette er domener som lenker ofte deles fra på serveren din. Lenker vil ikke bli populært offentlig med mindre domenet til lenken er godkjent. Din godkjenning (eller avvisning) strekker seg til underdomener. rejected: Lenker fra denne utgiveren vil ikke "trende" title: Utgivere rejected: Avvist @@ -829,6 +867,11 @@ description_html: Dette er innlegg som serveren din vet om at de blir delt og favorisert for øyeblikket. Dette kan hjelpe dine nye og returnerede brukere med å finne flere å følge. Ingen innlegg vises offentlig før du godkjenner forfatteren, og forfatteren tillater at kontoen deres foreslås til andre. Du kan også tillate eller avvise individuelle innlegg. disallow: Ikke tillat innlegg disallow_account: Forby forfatter + no_status_selected: Ingen populære innlegg ble endret da ingen ble valgt + not_discoverable: Forfatter har valgt å ikke være synlig + shared_by: + one: Delt eller lagt til som favoritt én gang + other: Delt og favorittmarkert %{friendly_count} ganger title: Populære innlegg tags: current_score: Gjeldende poengsum %{score} @@ -840,10 +883,16 @@ tag_uses_measure: samlet bruk description_html: Dette er emneknagger som for øyeblikket vises i mange innlegg som serveren din ser. Det kan hjelpe dine brukere med å finne ut hva folk snakker mest om i øyeblikket. Ingen emneknagger vises offentlig før du godkjenner dem. listable: Kan bli foreslått + no_tag_selected: Ingen emneknagger ble endret da ingen ble valgt not_listable: Vil ikke bli foreslått not_trendable: Kunne ikke vises under trender not_usable: Kan ikke brukes + peaked_on_and_decaying: Høyeste på %{date}, nå faller + title: Populære emneknagger + trendable: Kan vises under populært + trending_rank: 'Populært #%{rank}' usable: Kan brukes + usage_comparison: Brukt %{today} ganger i dag, sammenlignet med %{yesterday} i går used_by_over_week: one: Brukt av en person i løpet av siste uke other: Brukes av %{count} personer i løpet av den siste uken @@ -869,7 +918,12 @@ one: 1 aktivert hendelse other: "%{count} aktiverte hendelser" events: Hendelser + new: Ny webhook + rotate_secret: Roter hemmelighet + secret: Signer hemmelighet status: Status + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -880,6 +934,9 @@ sensitive: å merke kontoen sin som følsom silence: for å begrense deres konto suspend: for å avslutte kontoen + body: "%{target} klager på en moderasjonsbeslutning av %{action_taken_by} fra %{date}, noe som var %{type}. De skrev:" + next_steps: Du kan godkjenne anken for å angre på moderasjonsvedtaket eller ignorere det. + subject: "%{username} klager på en moderasjonsbeslutning for %{instance}" new_pending_account: body: Detaljer om den nye kontoen er nedenfor. Du kan godkjenne eller avvise denne søknaden. subject: Ny konto opp til vurdering på %{instance} (%{username}) @@ -888,11 +945,14 @@ body_remote: Noen fra %{domain} har rapportert %{target} subject: Ny rapport for %{instance} (#%{id}) new_trends: + body: 'Følgende elementer trenger en gjennomgang før de kan vises offentlig:' new_trending_links: title: Populære lenker new_trending_statuses: title: Populære innlegg new_trending_tags: + no_approved_tags: Det er for øyeblikket ingen godkjente populære emneknagger. + requirements: 'Enhver av disse kandidatene kan overgå #%{rank} godkjent populære emneknagger, som for øyeblikket er #%{lowest_tag_name} med en poengsum på %{lowest_tag_score}.' title: Populære emneknagger subject: Ny trender for gjennomsyn av %{instance} aliases: @@ -932,7 +992,11 @@ auth: apply_for_account: Be om en konto captcha_confirmation: + help_html: Hvis du har problemer med å løse CAPTCHA, kan du komme i kontakt med oss via %{email} og vi kan hjelpe deg. + hint_html: Bare en ting til! Vi må bekrefte at du er et menneske (dette er slik at vi kan holde spam ute!). Løs CAPTCHA nedenfor og klikk "Fortsett". title: Sikkerhetskontroll + confirmations: + wrong_email_hint: Hvis e-postadressen ikke er riktig, kan du endre den i kontoinnstillingene. delete_account: Slett konto delete_account_html: Hvis du ønsker å slette kontoen din, kan du gå hit. Du vil bli spurt om bekreftelse. description: @@ -962,6 +1026,7 @@ saml: SAML register: Meld deg på registration_closed: "%{instance} tar ikke imot nye medlemmer" + resend_confirmation: Send bekreftelse lenke på nytt reset_password: Tilbakestill passord rules: accept: Godta @@ -973,10 +1038,17 @@ title_invited: Du har blitt invitert. security: Sikkerhet set_new_password: Angi nytt passord + setup: + email_below_hint_html: Sjekk søppelpostmappen din, eller be om en ny. Du kan korrigere e-postadressen din hvis den er feil. + email_settings_hint_html: Klikk på lenken vi sendte deg for å bekrefte %{email}. Vi venter her. + link_not_received: Fikk du ikke lenken? + new_confirmation_instructions_sent: Du vil motta en ny e-post med bekreftelse lenke om noen minutter! + title: Sjekk innboksen din sign_in: preamble_html: Logg inn med ditt %{domain} brukeropplysninger. Hvis kontoen din er plassert på en annen server, vil du ikke kunne logge inn her. title: Logg inn på %{domain} sign_up: + manual_review: Registreringer på %{domain} går gjennom manuell gjennomgang av moderatorene våre. For å hjelpe oss med å behandle registreringen din, skriv litt om deg selv og hvorfor du vil ha en konto på %{domain}. preamble: Med en konto på denne Mastodon-tjeneren vil du kunne følge andre personer på nettverket, uansett hvor kontoen deres holder til. title: La oss få deg satt i gang på %{domain}. status: @@ -1118,7 +1190,11 @@ add_keyword: Legg til stikkord keywords: Nøkkelord statuses: Individuelle innlegg + statuses_hint_html: Dette filteret gjelder for utvalgte enkeltinnlegg, uavhengig av om de samsvarer med søkeordene nedenfor.Se gjennom eller fjern innlegg fra filteret.. title: Rediger filter + errors: + deprecated_api_multiple_keywords: Disse parameterne kan ikke endres fra dette programmet fordi de gjelder for mer enn ett filter nøkkelord. Bruk et nyere program eller webgrensesnittet. + invalid_context: Ingen eller ugyldig kontekst angitt index: contexts: Filtre i %{contexts} delete: Slett @@ -1189,12 +1265,14 @@ bookmarks_html: Du er i ferd med å erstatte dine bokmerker med inntil %{total_items} innlegg fra %{filename}. domain_blocking_html: Du er i ferd med å erstatte din domene-blokkeringsliste med inntil %{total_items} domener fra %{filename}. following_html: Du er i ferd med å følge inntil %{total_items} kontoer fra %{filename} og slutte å følge alle andre. + lists_html: Du er i ferd med å erstatte dine lister med innholdet i %{filename}. Inntil %{total_items} kontoer legges til i nye lister. muting_html: Du er i ferd med å erstatte listen over dempede kontoer med inntil %{total_items} kontoer fra %{filename}. preambles: blocking_html: Du er i ferd med å blokkere inntil %{total_items} kontoer fra %{filename}. bookmarks_html: Du er i ferd med å legge til inntil %{total_items} innlegg fra %{filename} til dine bokmerker. domain_blocking_html: Du er i ferd med å blokkere inntil %{total_items} domener fra %{filename}. following_html: Du er i ferd med å følge inntil %{total_items} kontoer fra %{filename}. + lists_html: Du er i ferd med å legge inntil %{total_items} kontoer fra %{filename} til dine lister. Nye lister vil bli opprettet hvis det ikke finnes noen liste å legge til. muting_html: Du er i ferd med å dempe inntil %{total_items} kontoer fra %{filename}. preface: Du kan importere data om brukere du følger eller blokkerer til kontoen din på denne instansen med eksportfiler fra andre instanser. recent_imports: Siste importer @@ -1211,6 +1289,7 @@ bookmarks: Importerer bokmerker domain_blocking: Importerer blokkerte domener following: Importerer fulgte kontoer + lists: Importerer lister muting: Importerer dempede kontoer type: Type import type_groups: @@ -1221,6 +1300,7 @@ bookmarks: Bokmerker domain_blocking: Domeneblokkeringsliste following: Følgeliste + lists: Lister muting: Dempeliste upload: Opplastning invites: @@ -1404,6 +1484,9 @@ unrecognized_emoji: er ikke en gjenkjent emoji relationships: activity: Kontoaktivitet + confirm_follow_selected_followers: Er du sikker på at du vil følge utvalgte følgere? + confirm_remove_selected_followers: Er du sikker på at du vil fjerne valgte følgere? + confirm_remove_selected_follows: Er du sikker på at du vil fjerne valgte følger? dormant: Dormende follow_failure: Kunne ikke følge noen av de valgte kontoene. follow_selected_followers: Følg valgte tilhengere diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 4c4aaa415e..4357d30e62 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1265,12 +1265,14 @@ pt-PT: bookmarks_html: Está prestes a substituir os seus marcadores com até %{total_items} publicações de %{filename}. domain_blocking_html: Está prestes a substituir a sua lista de bloqueios de domínio com até %{total_items} domínios de %{filename}. following_html: Está prestes a seguir até %{total_items} contas de %{filename} e parar de seguir quaisquer outras contas. + lists_html: Está prestes a substituir as suas listas pelo conteúdo de %{filename}. Até %{total_items} contas serão adicionadas a novas listas. muting_html: Está prestes a substituir a sua lista de contas silenciadas com até %{total_items} contas de %{filename}. preambles: blocking_html: Está prestes a bloquear até %{total_items} contas de %{filename}. bookmarks_html: Está prestes a adicionar até %{total_items} publicações de %{filename} aos seus marcadores. domain_blocking_html: Está prestes a bloquear até %{total_items} domínios de %{filename}. following_html: Está prestes a seguir até %{total_items} contas de %{filename}. + lists_html: Está prestes a adicionar até %{total_items} contas do ficheiro %{filename} para as suas listas. Novas listas serão criadas se não existir uma lista onde as adicionar. muting_html: Está prestes a silenciar até %{total_items} contas de %{filename}. preface: Podes importar dados que tenhas exportado de outra instância, como a lista de pessoas que segues ou bloqueadas. recent_imports: Importações recentes @@ -1287,6 +1289,7 @@ pt-PT: bookmarks: Importando marcadores domain_blocking: Importando domínios bloqueados following: Importando contas seguidas + lists: A importar listas muting: Importando contas silenciadas type: Tipo de importação type_groups: @@ -1297,6 +1300,7 @@ pt-PT: bookmarks: Itens salvos domain_blocking: Lista de domínios bloqueados following: Lista de pessoas que estás a seguir + lists: Listas muting: Lista de utilizadores silenciados upload: Carregar invites: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index c6fdff9aa8..9a97f9a3dc 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1069,7 +1069,9 @@ ru: back: Назад invited_by: 'Вы можете присоединиться к %{domain} благодаря приглашению полученному от:' preamble: Они устанавливаются и применяются модераторами %{domain}. + preamble_invited: Прежде чем продолжить, ознакомьтесь с основными правилами, установленными модераторами сервера %{domain}. title: Несколько основных правил. + title_invited: Вы были приглашены. security: Безопасность set_new_password: Задать новый пароль setup: @@ -1170,6 +1172,11 @@ ru: your_appeal_rejected: Ваша апелляция отклонена domain_validator: invalid_domain: не является корректным доменным именем + edit_profile: + basic_information: Основная информация + hint_html: "Настройте то, что люди видят в вашем публичном профиле и рядом с вашими сообщениями. Другие люди с большей вероятностью подпишутся на Вас и будут взаимодействовать с вами, если у Вас заполнен профиль и добавлено изображение." + other: Прочее + safety_and_privacy: Безопасность и приватность errors: '400': Ваш запрос был недействительным или неправильным. '403': У Вас нет доступа к просмотру этой страницы. @@ -1384,6 +1391,20 @@ ru: failed_sign_in_html: Неудачная попытка входа используя %{method} через %{browser} (%{ip}) successful_sign_in_html: Успешный вход используя %{method} через %{browser} (%{ip}) title: История входов + mail_subscriptions: + unsubscribe: + action: Да, отписаться + complete: Подписка отменена + confirmation_html: Вы уверены, что хотите отписаться от получения на ваш адрес электронной почты %{email} %{type} от Сообщества Mastodon %{domain}? Вы всегда можете заново подписаться на уведомления по электронной почте в разделе настройки . + emails: + notification_emails: + favourite: Избранные уведомления по электронной почте + follow: подписаться на уведомления по электронной почте + follow_request: Уведомлять по электронной почте о новых запросах + mention: получать уведомления с упоминаниями + reblog: подписаться на уведомления по электронной почте + resubscribe_html: Если вы отказались от подписки по ошибке, вы всегда можете заново подписаться на уведомления по электронной почте по этой ссылке . + title: Отписаться media_attachments: validations: images_and_video: Нельзя добавить видео к посту с изображениями @@ -1499,6 +1520,7 @@ ru: expired: Опрос уже завершился invalid_choice: Выбранного варианта голосования не существует over_character_limit: каждый не вариант не может быть длиннее %{max} символов + self_vote: Вы не можете голосовать в своих опросах too_few_options: должно быть больше 1 варианта too_many_options: может содержать не больше %{max} вариантов preferences: @@ -1811,7 +1833,9 @@ ru: seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны. signed_in_as: 'Выполнен вход под именем:' verification: + instructions_html: Скопируйте и вставьте код ниже в HTML вашего сайта. Затем, добавьте адрес вашего веб сайта в одно из дополнительных полей на вкладке "Редактировать профиль" и сохраните изменения. verification: Верификация ссылок + verified_links: Ваши ссылки подтверждения webauthn_credentials: add: Добавить новый ключ безопасности create: diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 3c6635c0f0..279ad9cb81 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -38,8 +38,8 @@ ca: avatar: PNG, GIF o JPG de com a màxim %{size}. S'escalarà a %{dimensions}px bot: Notifica que aquest compte realitza principalment accions automatitzades i que pot estar no monitorat context: Un o diversos contextos en què s'ha d'aplicar el filtre - current_password: Per motius de seguretat, introdueix la contrasenya del compte actual - current_username: Per a confirmar, si us plau entra el nom d'usuari del compte actual + current_password: Per motius de seguretat, introduïu la contrasenya del compte actual + current_username: Per a confirmar, entreu el nom d'usuari del compte actual digest: Només s'envia després d'un llarg període d'inactivitat i només si has rebut algun missatge personal durant la teva absència discoverable: Permet que el teu compte sigui descobert per desconeguts a través de recomanacions, etiquetes i altres característiques email: Se t'enviarà un correu electrònic de confirmació @@ -85,7 +85,7 @@ ca: custom_css: Pots aplicar estils personalitzats en la versió web de Mastodon. mascot: Anul·la la il·lustració en la interfície web avançada. media_cache_retention_period: Els fitxers multimèdia descarregats s'esborraran després del nombre de dies especificat quan el valor configurat és positiu, i tornats a descarregats sota demanda. - peers_api_enabled: Una llista de noms de domini que aquest servidor ha trobat al fedivers. No inclou cap dada sobre si estàs federat amb un servidor determinat, només si el teu en sap res. La fan servir, en un sentit general, serveis que recoŀlecten estadístiques sobre la federació. + peers_api_enabled: Una llista de noms de domini que aquest servidor ha trobat al fedivers. No inclou cap dada sobre si estàs federat amb un servidor determinat, només si el teu en sap res. La fan servir, en un sentit general, serveis que recol·lecten estadístiques sobre la federació. profile_directory: El directori de perfils llista tots els usuaris que tenen activat ser descoberts. require_invite_text: Quan el registre requereixi aprovació manual, fes que sigui obligatori en lloc d'opcional d'escriure el text de la sol·licitud d'invitació "Per què vols unir-te?" site_contact_email: Com pot la gent comunicar amb tu per a consultes legals o de recolzament. diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index 05dd9c54b1..8323ac15cb 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -2,6 +2,10 @@ cs: simple_form: hints: + account: + display_name: Vaše celé jméno nebo přezdívka. + fields: Vaše domovská stránka, zájmena, věk, cokoliv chcete. + note: 'Můžete @zmínit jiné osoby nebo #hashtagy.' account_alias: acct: Zadejte svůj účet, ze kterého se chcete přesunout jinam, ve formátu přezdívka@doména account_migration: @@ -130,6 +134,7 @@ cs: position: Vyšší role rozhoduje o řešení konfliktů v určitých situacích. Některé akce lze provádět pouze na rolích s nižší prioritou webhook: events: Zvolte odesílané události + template: Sestavte si vlastní JSON payload pomocí interpolace proměnných. Pro výchozí JSON ponechte prázdné. url: Kam budou události odesílány labels: account: @@ -294,6 +299,7 @@ cs: usable: Povolit používat tento hashtag v příspěvcích user: role: Role + time_zone: Časové pásmo user_role: color: Barva odznaku highlighted: Zobrazit roli jako odznak na profilech uživatelů @@ -302,6 +308,7 @@ cs: position: Priorita webhook: events: Zapnuté události + template: Šablona payloadu url: URL koncového bodu 'no': Ne not_recommended: Nedoporučuje se diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 012989244d..15174b2acd 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -20,7 +20,7 @@ de: type_html: Wähle aus, wie mit %{acct} vorgegangen werden soll types: disable: Benutzer*in daran hindern, das Konto verwenden zu können, aber die Inhalte nicht löschen oder ausblenden. - none: Dem Konto eine Verwarnung zusenden, ohne dabei eine andere Aktion vorzunehmen. + none: Dem Konto eine Warnung zusenden, ohne dabei eine andere Aktion vorzunehmen. sensitive: Erzwingen, dass alle Medieninhalte dieses Profils mit einer Inhaltswarnung versehen werden. silence: Verhindert, dass dieses Profil öffentlich sichtbare Beiträge verfassen kann, und verbirgt alle Beiträge und Benachrichtigungen vor Personen, die diesem Profil nicht folgen. Alle Meldungen zu diesem Konto werden geschlossen. suspend: Verhindert jegliche Interaktion von oder zu diesem Konto und löscht dessen Inhalt. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. @@ -51,7 +51,7 @@ de: password: Verwende mindestens 8 Zeichen phrase: Wird unabhängig von der Groß- und Kleinschreibung im Text oder der Inhaltswarnung eines Beitrags abgeglichen scopes: Welche Schnittstellen der Applikation erlaubt sind. Wenn du einen Top-Level-Scope auswählst, dann musst du nicht jeden einzelnen darunter auswählen. - setting_aggregate_reblogs: Keine geteilten Beiträge anzeigen, die bereits kürzlich geteilt wurden (wirkt sich nur auf zukünftige geteilte Beiträge aus) + setting_aggregate_reblogs: Beiträge, die erst kürzlich geteilt wurden, werden nicht noch einmal angezeigt (wirkt sich nur auf zukünftige geteilte Beiträge aus) setting_always_send_emails: Normalerweise werden Benachrichtigungen nicht per E-Mail versendet, wenn du gerade auf Mastodon aktiv bist setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden – je nach Einstellung – erst nach einem zusätzlichen Klick angezeigt setting_display_media_default: Medien mit Inhaltswarnung ausblenden @@ -151,7 +151,7 @@ de: admin_account_action: include_statuses: Gemeldete Beiträge der E-Mail beifügen send_email_notification: Benachrichtigung per E-Mail - text: Individuelle Verwarnung + text: Individuelle Warnung type: Aktion types: disable: Einfrieren diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 142ed483f6..ef375261fc 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -134,6 +134,7 @@ et: position: Kõrgem roll otsustab teatud olukordades konfliktide lahendamise. Teatud toiminguid saab teha ainult madalama prioriteediga rollidega webhook: events: Saadetavate sündmuste valik + template: Koosta oma JSON manus kasutades muutujateasendust. Jäta tühaks tavalise JSONi jaoks. url: Kuhu sündmused saadetakse labels: account: @@ -307,6 +308,7 @@ et: position: Positsioon webhook: events: Lubatud sündmused + template: Manuse mall url: Lõpp-punkti URL 'no': Ei not_recommended: Pole soovitatav diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index a3a45ebea7..23db63dee1 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -134,6 +134,7 @@ fi: position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimintoja voidaan suorittaa vain rooleille, joiden prioriteetti on pienempi webhook: events: Valitse lähetettävät tapahtumat + template: Luo oma JSON-hyötykuorma käyttäen muuttujainterpolointia. Jättäessäsi kentän tyhjäksi, käytetään vakio-JSON-kuormaa. url: Mihin tapahtumat lähetetään labels: account: @@ -307,6 +308,7 @@ fi: position: Prioriteetti webhook: events: Tapahtumat käytössä + template: Hyötykuormapohja url: Päätepisteen URL 'no': Ei not_recommended: Ei suositella diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index a8e9f474bc..b07db9a9a4 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -2,6 +2,10 @@ nn: simple_form: hints: + account: + display_name: Ditt fulle namn eller ditt tøysenamn. + fields: Heimesida di, pronomen, alder, eller kva du måtte ynskje. + note: 'Du kan @nemne folk eller #emneknaggar.' account_alias: acct: Angi brukarnamn@domene til brukaren du ynskjer å flytta frå account_migration: @@ -130,6 +134,7 @@ nn: position: Høgare rolle avgjer konfliktløysing i visse situasjonar. Visse handlingar kan kun utførast på rollar med lågare prioritet webhook: events: Vel hendingar å senda + template: Skriv di eiga JSON nyttelast ved å bruka variabel interpolering. La stå tom for standard JSON. url: Kvar hendingar skal sendast labels: account: @@ -294,6 +299,7 @@ nn: usable: Gje tut lov til å nytta denne emneknaggen user: role: Rolle + time_zone: Tidssone user_role: color: Emblemfarge highlighted: Vis rolle som emblem på brukarprofil @@ -302,6 +308,7 @@ nn: position: Prioritet webhook: events: Aktiverte hendingar + template: Nyttelastmal url: Endepunkts-URL 'no': Nei not_recommended: Ikkje anbefalt diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml index 6889638fa5..b566dd3712 100644 --- a/config/locales/simple_form.no.yml +++ b/config/locales/simple_form.no.yml @@ -2,6 +2,10 @@ 'no': simple_form: hints: + account: + display_name: Ditt fulle navn eller ditt morsomme navn. + fields: Din hjemmeside, uttalelse, alder, eller alt annet du vil. + note: 'Du kan @nevne andre eller #emneknagger.' account_alias: acct: Spesifiser brukernavn@domene til brukeren du vil flytte fra account_migration: @@ -18,6 +22,8 @@ disable: Forhindre brukeren fra å bruke kontoen sin, men ikke slett eller skjul innholdet deres. none: Bruk dette for å sende en advarsel til brukeren uten å utløse noen andre handlinger. sensitive: Tving alle denne brukerens medievedlegg til å bli merket som følsomme. + silence: Forhindre at brukeren kan legge ut innlegg med offentlig synlighet, skjule innleggene og varslene sine fra folk som ikke følger dem. Lukker alle rapporter mot denne kontoen. + suspend: Forhindre interaksjon fra eller til denne kontoen og slett innholdet. Tilbakestiller innholdet innen 30 dager. Lukk alle rapporter mot denne kontoen. warning_preset_id: Valgfritt. Du kan fortsatt legge til tilpasset tekst til slutten av forhåndsinnstillingen announcement: all_day: Hvis noen av dem er valgt, vil kun datoene av tidsrammen bli vist @@ -56,6 +62,7 @@ setting_show_application: Appen du bruker til å publisere innlegg vil bli vist i den detaljerte visningen til innleggene dine setting_use_blurhash: Gradientene er basert på fargene til de skjulte visualitetene, men gjør alle detaljer uklare setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle + username: Du kan bruke bokstaver, tall og understrekingstegn whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet domain_allow: domain: Dette domenet vil være i stand til å hente data fra denne serveren og dets innkommende data vil bli prosessert og lagret @@ -70,6 +77,7 @@ hide: Skjul filtrert innhold fullstendig, som om det ikke eksisterte warn: Skjul det filtrerte innholdet bak et varsel som omtaler filterets tittel form_admin_settings: + activity_api_enabled: Teller med lokale publiserte innlegg, aktive brukere og nye registreringer i ukentlige bøtter backups_retention_period: Behold genererte brukerarkiv i det angitte antall dager. bootstrap_timeline_accounts: Disse kontoene vil bli festet til toppen av nye brukeres følge-anbefalinger. closed_registrations_message: Vises når det er stengt for registrering @@ -77,6 +85,7 @@ custom_css: Du kan bruke egendefinerte stiler på nettversjonen av Mastodon. mascot: Overstyrer illustrasjonen i det avanserte webgrensesnittet. media_cache_retention_period: Mediafiler som lastes ned vil bli slettet etter det angitte antall dager når det settes til en positiv verdi, og blir lastet ned på nytt ved behov. + peers_api_enabled: En liste over domenenavn denne serveren har oppstått i fødiverset. Det finnes ikke data om du føderer med en gitt server, for akkurat det serveren din vet om. Dette brukes av tjenester som i all hovedsak innhenter føderasjonsstatistikk. profile_directory: Profilkatalogen viser alle brukere som har valgt å kunne bli oppdaget. require_invite_text: Når registreringer krever manuell godkjenning, må du gjøre «Hvorfor vil du bli med?»-tekstinput obligatorisk i stedet for valgfritt site_contact_email: Hvordan mennesker får tak i deg for rettslige spørsmål eller brukerstøtte. @@ -87,6 +96,11 @@ site_title: Hva man kan kalle tjeneren din utover domenenavnet. status_page_url: URL-adressen til en side hvor folk kan se tilstanden til denne tjeneren under et avbrudd theme: Tema som vises for nye brukere og besøkende som ikke er logget inn. + thumbnail: Et omtrent 2:1 bilde vist sammen med serverinformasjonen din. + timeline_preview: Logget ut besøkende vil kunne bla gjennom de siste offentlige innlegg tilgjengelig på serveren. + trendable_by_default: Hopp over manuell gjennomgang av populære innhold. Individuelle elementer kan fjernes fra populært etter faktaen. + trends: Trender viser hvilke innlegg, emneknagger og nyheter som får trekkraft på serveren din. + trends_as_landing_page: Vis populære innhold til innloggede brukere og besøkende i stedet for en beskrivelse av tjeneren. Krever populært for å bli aktivert. form_challenge: current_password: Du går inn i et sikkert område imports: @@ -106,10 +120,12 @@ text: Beskriv en regel eller krav til brukere på denne serveren. Prøv å holde den kort og enkelt sessions: otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. + webauthn: Hvis det er en USB-nøkkel må du sette den inn og om nødvendig trykke på den. tag: name: Du kan bare forandre bruken av store/små bokstaver, f.eks. for å gjøre det mer lesbart user: chosen_languages: Hvis noen av dem er valgt, vil kun innlegg i de valgte språkene bli vist i de offentlige tidslinjene + role: Rollekontroller som bestemmer rettigheter brukeren har user_role: color: Farge som skal brukes for rollen gjennom hele UI, som RGB i hex-format highlighted: Dette gjør rollen offentlig synlig @@ -118,6 +134,7 @@ position: Høyere rolle bestemmer konfliktløsning i visse situasjoner. Enkelte tiltak kan bare utføres på roller med lavere prioritet webhook: events: Velg hendelser som skal sendes + template: Skriv din egen JSON nyttelast ved å bruke variabel interpolering. La stå tom for standard JSON. url: Hvor hendelser vil bli sendt til labels: account: @@ -219,12 +236,15 @@ hide: Skjul fullstendig warn: Skjul med en advarsel form_admin_settings: + activity_api_enabled: Publiser samlet statistikk om brukeraktivitet i API backups_retention_period: Brukers oppbevaringsperiode for arkiv bootstrap_timeline_accounts: Anbefaler alltid disse kontoene til nye brukere closed_registrations_message: Egendefinert melding når registrering ikke er tilgjengelig content_cache_retention_period: Oppbevaringsperiode for innholdsbuffer custom_css: Egendefinert CSS + mascot: Egendefinert maskot (legacy) media_cache_retention_period: Oppbevaringsperiode for mediebuffer + peers_api_enabled: Publiser liste over oppdagede instanser i API profile_directory: Aktiver profilkatalog registrations_mode: Hvem kan opprette konto require_invite_text: Krev en grunn for å bli med @@ -236,10 +256,13 @@ site_short_description: Beskrivelse av server site_terms: Retningslinjer for personvern site_title: Servernavn + status_page_url: Status side lenke theme: Standard tema thumbnail: Miniatyrbilde til server + timeline_preview: Tillat uautentisert tilgang til offentlige tidslinjer trendable_by_default: Tillat trender uten foregående vurdering trends: Aktiver trender + trends_as_landing_page: Bruk trender som landingsside interactions: must_be_follower: Blokker varslinger fra ikke-følgere must_be_following: Blokker varslinger fra personer du ikke følger @@ -276,6 +299,7 @@ usable: Tillat innlegg å bruke denne emneknaggen user: role: Rolle + time_zone: Tidssone user_role: color: Merkefarge highlighted: Vis rolle som merke på brukerprofiler @@ -284,6 +308,8 @@ position: Prioritet webhook: events: Aktiverte hendelser + template: Nyttelast mal + url: Endepunkt lenke 'no': Nei not_recommended: Ikke anbefalt recommended: Anbefalt diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml index d765e2ed06..88687cb78e 100644 --- a/config/locales/simple_form.sl.yml +++ b/config/locales/simple_form.sl.yml @@ -134,6 +134,7 @@ sl: position: Višja vloga se odloča o razrešitvi sporov v določenih situacijah. Določena dejanja lahko izvede le na vlogah z nižjo prioriteto webhook: events: Izberite dogodke za pošiljanje + template: Sestavite svojo obremenitev JSON z uporabo interpolacije spremenljivk. Za privzeti JSON pustite prazno. url: Kam bodo poslani dogodki labels: account: @@ -307,6 +308,7 @@ sl: position: Prioriteta webhook: events: Omogočeni dogodki + template: Predloga obremenitev url: URL končne točke 'no': Ne not_recommended: Ni priporočeno diff --git a/config/locales/sk.yml b/config/locales/sk.yml index adc4e8b59d..7e055acf79 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -945,7 +945,7 @@ sk: carry_mutes_over_text: Tento užívateľ sa presunul z účtu %{acct}, ktorý si mal/a stíšený. notification_mailer: favourite: - body: 'Tvoj príspevok bol uložený medzi obľúbené užívateľa %{name}:' + body: 'Tvoj príspevok bol obľúbený užívateľom %{name}:' subject: "%{name} si obľúbil/a tvoj príspevok" title: Novo obľúbené follow: diff --git a/config/locales/sl.yml b/config/locales/sl.yml index b963c64673..a3060f294b 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -399,6 +399,7 @@ sl: confirm_suspension: cancel: Prekliči confirm: Suspendiraj + permanent_action: Z razveljavitvijo suzpenza ne boste obnovili nobenih podatkov ali razmerij. stop_communication: Vaš strežnik bo prenehal komunicirati s temi strežniki. title: Potrdi domenski blok za %{domain} created_msg: Domenski blok se sedaj obdeluje @@ -791,6 +792,7 @@ sl: approved: Potrebna je odobritev za prijavo none: Nihče se ne more prijaviti open: Vsakdo se lahko prijavi + title: Nastavitve strežnika site_uploads: delete: Izbriši naloženo datoteko destroyed_msg: Prenos na strežnik uspešno izbrisan! @@ -1798,6 +1800,7 @@ sl: signed_in_as: 'Vpisani kot:' verification: here_is_how: Kako to poteka + instructions_html: Spodnjo kodo kopirajte in prilepite v HTML svojega spletnega mesta. Nato dodajte naslov svoje spletne strani v eno od dodatnih polj v svojem profilu v zavihku »Uredi profil« in shranite spremembe. verification: Potrditev verified_links: Vaše preverjene povezave webauthn_credentials: diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index cbd60dc5b0..b09488aa12 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -466,7 +466,7 @@ sr-Latn: title: Uvezi blokirane domene no_file: Nijedan fajl nije odabran follow_recommendations: - description_html: "Predlozi za praćenje pomažu novim korisnicima da brzo pronađu zanimljiv sadržaj. Kada korisnik nije dovoljno interagovao sa ostalima da bi se za njega formirali personalizovani predlozi za praćenje, ovi nalozi će biti preporučeni umesto toga. Oni se generišu na dnevnoj bazi iz skupa naloga sa najviše nedavnih angažovanja i najviše lokalnih pratilaca za jedan jezik." + description_html: "Predlozi za praćenje pomažu novim korisnicima da brzo pronađu zanimljiv sadržaj. Kada korisnik nije dovoljno komunicirao sa drugima da bi se za njega formirali personalizovani predlozi za praćenje, ovi nalozi će biti preporučeni umesto toga. Oni se generišu na dnevnoj bazi iz skupa naloga sa najviše nedavnih angažovanja i najviše lokalnih pratilaca za jedan jezik." language: Za jezik status: Status suppress: Potisni preporuke za praćenje @@ -1200,7 +1200,7 @@ sr-Latn: filters: contexts: account: Profili - home: Vremenska linija početne + home: Početna stranica i liste notifications: Obaveštenja public: Javne vremenske linije thread: Razgovori @@ -1631,8 +1631,8 @@ sr-Latn: default_language: Isto kao jezik okruženja disallowed_hashtags: few: 'sadrži zabranjene heštegove: %{tags}' - one: 'sadrži zabranjeni hešteg: %{tags}' - other: 'sadrži zabranjene heštegove: %{tags}' + one: 'sadrži zabranjenu heš oznaku: %{tags}' + other: 'sadrži zabranjene heš oznake: %{tags}' edited_at_html: Izmenjeno %{date} errors: in_reply_not_found: Objava na koju pokušavate da odgovorite naizgled ne postoji. diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 8b4954d16a..6398d0b79c 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -466,7 +466,7 @@ sr: title: Увези блокиране домене no_file: Ниједан фајл није одабран follow_recommendations: - description_html: "Предлози за праћење помажу новим корисницима да брзо пронађу занимљив садржај. Када корисник није довољно интераговао са осталима да би се за њега формирали персонализовани предлози за праћење, ови налози ће бити препоручени уместо тога. Они се генеришу на дневној бази из скупа налога са највише недавних ангажовања и највише локалних пратилаца за један језик." + description_html: "Предлози за праћење помажу новим корисницима да брзо пронађу занимљив садржај. Када корисник није довољно комуницирао са другима да би се за њега формирали персонализовани предлози за праћење, ови налози ће бити препоручени уместо тога. Они се генеришу на дневној бази из скупа налога са највише недавних ангажовања и највише локалних пратилаца за један језик." language: За језик status: Статус suppress: Потисни препоруке за праћење @@ -1200,7 +1200,7 @@ sr: filters: contexts: account: Профили - home: Временска линија почетне + home: Почетна страница и листе notifications: Обавештења public: Јавне временске линије thread: Разговори @@ -1630,9 +1630,9 @@ sr: content_warning: 'Упозорење на садржај: %{warning}' default_language: Исто као језик окружења disallowed_hashtags: - few: 'садржи забрањене хештегове: %{tags}' - one: 'садржи забрањени хештег: %{tags}' - other: 'садржи забрањене хештегове: %{tags}' + few: 'садржи забрањене хеш ознаке: %{tags}' + one: 'садржи забрањену хеш ознаку: %{tags}' + other: 'садржи забрањене хеш ознаке: %{tags}' edited_at_html: Измењено %{date} errors: in_reply_not_found: Објава на коју покушавате да одговорите наизглед не постоји. diff --git a/config/locales/th.yml b/config/locales/th.yml index 264beffaf4..f7309bbb96 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1650,9 +1650,9 @@ th: mastodon-light: Mastodon (สว่าง) time: formats: - default: "%d %b %Y, %H:%M" + default: "%d %b %Y %H:%M น." month: "%b %Y" - time: "%H:%M" + time: "%H:%M น." two_factor_authentication: add: เพิ่ม disable: ปิดใช้งาน 2FA diff --git a/config/locales/tt.yml b/config/locales/tt.yml index 4006aac625..3ee9b27d7c 100644 --- a/config/locales/tt.yml +++ b/config/locales/tt.yml @@ -337,6 +337,8 @@ tt: accept: Кабул итү back: Кире security: Хәвефсезлек + status: + account_status: Хисап халәте challenge: confirm: Дәвам итү date: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 08e0eeb17c..e8f3c26b9c 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -31,7 +31,7 @@ vi: accounts: add_email_domain_block: Chặn tên miền email approve: Phê duyệt - approved_msg: Đã phê duyệt %{username} đăng ký thành công + approved_msg: Đã phê duyệt đăng ký %{username} are_you_sure: Bạn có chắc không? avatar: Ảnh đại diện by_domain: Máy chủ @@ -964,7 +964,7 @@ vi: view_profile: Xem trang hồ sơ view_status: Xem tút applications: - created: Đơn đăng ký được tạo thành công + created: Đã gửi yêu cầu đăng ký destroyed: Đã xóa đơn đăng ký logout: Đăng xuất regenerate_token: Tạo lại mã truy cập @@ -1592,7 +1592,7 @@ vi: show_more: Đọc thêm show_newer: Mới hơn show_older: Cũ hơn - show_thread: Trích nguyên văn + show_thread: Nội dung gốc title: '%{name}: "%{quote}"' visibilities: direct: Nhắn riêng diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 7ec003135d..7f614f725e 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -810,7 +810,7 @@ zh-TW: message_html: 不相容的 Elasticsearch 版本:%{value} version_comparison: Elasticsearch %{running_version} 版正在執行,需要 %{required_version} 版。 rules_check: - action: 管理服务器规则 + action: 管理伺服器規則 message_html: 您尚未定義任何伺服器規則。 sidekiq_process_check: message_html: 沒有佇列 %{value} 的 Sidekiq 行程,請檢查您的 Sidekiq 設定組態 From 11f5a8e54b240d15424bd69deabbaf5742a37723 Mon Sep 17 00:00:00 2001 From: Eashwar Ranganathan Date: Mon, 7 Aug 2023 06:41:34 -0700 Subject: [PATCH 23/71] Make mastodon-streaming systemd unit templated (#24751) Co-authored-by: Emelia Smith --- dist/mastodon-streaming.service | 47 +++------------------------ dist/mastodon-streaming@.service | 54 ++++++++++++++++++++++++++++++++ dist/nginx.conf | 8 +++++ 3 files changed, 66 insertions(+), 43 deletions(-) create mode 100644 dist/mastodon-streaming@.service diff --git a/dist/mastodon-streaming.service b/dist/mastodon-streaming.service index 533feb5341..66cc3474ef 100644 --- a/dist/mastodon-streaming.service +++ b/dist/mastodon-streaming.service @@ -1,51 +1,12 @@ [Unit] Description=mastodon-streaming After=network.target +Wants=mastodon-streaming@4000.service [Service] -Type=simple -User=mastodon -WorkingDirectory=/home/mastodon/live -Environment="NODE_ENV=production" -Environment="PORT=4000" -ExecStart=/usr/bin/node ./streaming -TimeoutSec=15 -Restart=always -LimitNOFILE=65536 -# Proc filesystem -ProcSubset=pid -ProtectProc=invisible -# Capabilities -CapabilityBoundingSet= -# Security -NoNewPrivileges=true -# Sandboxing -ProtectSystem=strict -PrivateTmp=true -PrivateDevices=true -PrivateUsers=true -ProtectHostname=true -ProtectKernelLogs=true -ProtectKernelModules=true -ProtectKernelTunables=true -ProtectControlGroups=true -RestrictAddressFamilies=AF_INET -RestrictAddressFamilies=AF_INET6 -RestrictAddressFamilies=AF_NETLINK -RestrictAddressFamilies=AF_UNIX -RestrictNamespaces=true -LockPersonality=true -RestrictRealtime=true -RestrictSUIDSGID=true -RemoveIPC=true -PrivateMounts=true -ProtectClock=true -# System Call Filtering -SystemCallArchitectures=native -SystemCallFilter=~@cpu-emulation @debug @keyring @ipc @memlock @mount @obsolete @privileged @resources @setuid -SystemCallFilter=pipe -SystemCallFilter=pipe2 -ReadWritePaths=/home/mastodon/live +Type=oneshot +ExecStart=/bin/echo "mastodon-streaming exists only to collectively start and stop mastodon-streaming@ instances, shimming over the migration to templated mastodon-streaming systemd unit" +RemainAfterExit=yes [Install] WantedBy=multi-user.target diff --git a/dist/mastodon-streaming@.service b/dist/mastodon-streaming@.service new file mode 100644 index 0000000000..f43c4ea4a6 --- /dev/null +++ b/dist/mastodon-streaming@.service @@ -0,0 +1,54 @@ +[Unit] +Description=mastodon-streaming on port %I +After=network.target +# handles using `systemctl restart mastodon-streaming` +PartOf=mastodon-streaming.service +ReloadPropagatedFrom=mastodon-streaming.service + +[Service] +Type=simple +User=mastodon +WorkingDirectory=/home/mastodon/live +Environment="NODE_ENV=production" +Environment="PORT=%i" +ExecStart=/usr/bin/node ./streaming +TimeoutSec=15 +Restart=always +LimitNOFILE=65536 +# Proc filesystem +ProcSubset=pid +ProtectProc=invisible +# Capabilities +CapabilityBoundingSet= +# Security +NoNewPrivileges=true +# Sandboxing +ProtectSystem=strict +PrivateTmp=true +PrivateDevices=true +PrivateUsers=true +ProtectHostname=true +ProtectKernelLogs=true +ProtectKernelModules=true +ProtectKernelTunables=true +ProtectControlGroups=true +RestrictAddressFamilies=AF_INET +RestrictAddressFamilies=AF_INET6 +RestrictAddressFamilies=AF_NETLINK +RestrictAddressFamilies=AF_UNIX +RestrictNamespaces=true +LockPersonality=true +RestrictRealtime=true +RestrictSUIDSGID=true +RemoveIPC=true +PrivateMounts=true +ProtectClock=true +# System Call Filtering +SystemCallArchitectures=native +SystemCallFilter=~@cpu-emulation @debug @keyring @ipc @memlock @mount @obsolete @privileged @resources @setuid +SystemCallFilter=pipe +SystemCallFilter=pipe2 +ReadWritePaths=/home/mastodon/live + +[Install] +WantedBy=multi-user.target mastodon-streaming.service diff --git a/dist/nginx.conf b/dist/nginx.conf index fc68e9a6d1..39fa58e50d 100644 --- a/dist/nginx.conf +++ b/dist/nginx.conf @@ -8,7 +8,15 @@ upstream backend { } upstream streaming { + # Instruct nginx to send connections to the server with the least number of connections + # to ensure load is distributed evenly. + least_conn; + server 127.0.0.1:4000 fail_timeout=0; + # Uncomment these lines for load-balancing multiple instances of streaming for scaling, + # this assumes your running the streaming server on ports 4000, 4001, and 4002: + # server 127.0.0.1:4001 fail_timeout=0; + # server 127.0.0.1:4002 fail_timeout=0; } proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g; From c3639787828f174c9c58d797e5210d74a96d33a9 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 7 Aug 2023 11:58:12 -0400 Subject: [PATCH 24/71] Spec media attachment speedups (#25416) --- spec/fixtures/files/attachment.gif | Bin 108560 -> 30184 bytes spec/fixtures/files/attachment.webm | Bin 653991 -> 43777 bytes spec/models/media_attachment_spec.rb | 96 ++++++++++----------------- 3 files changed, 35 insertions(+), 61 deletions(-) diff --git a/spec/fixtures/files/attachment.gif b/spec/fixtures/files/attachment.gif index 2937f5abefbf66a6b90302110e6962fad59ac3f7..89dd73ad3e9fb61eaf4467b9d44c1c9cc9dff16a 100644 GIT binary patch delta 29668 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 literal 108560 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
GU3Qr}qmSyWGcMoiu=7N_?*iry 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 UnyBs1s9BMhaoM^(BOm|(J5Md5I{*Lx diff --git a/spec/fixtures/files/attachment.webm b/spec/fixtures/files/attachment.webm index 3babe5cf594f1877f9c235fac68941e53bca47b8..edde44396046dffb96248b3e3e7ba062ba89057c 100644 GIT binary patch delta 353 zcmZ4fRlV^V(**fQCa2a$CW+vNbVddcSang*cXr7x-`(B8t6M}pSEdE8XU0j1)+EMH+F5aAcpgS31L;8tDu8TWdLW3MbJpKJ#+NT&8Sb-79(GbAEAn&}b jRAHsfW<^n(m0}>TPu$(VxshRe*Y`%ok4=mf9~zkf`NW2h delta 610549 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 BDQh2d@yNSvrs7NUn@l@pm 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

{-N}YAAYH*xULTC)}c}1_+LQ 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 z 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

xdu1XcyE)2#Pq8?#%B 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

ep9tR?~7$NJ89%V_!0J2;U;Hq;g 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

h&ehq8#63aU(dLf-7GN4|6 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 DDMncU diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index d142875aa9..d57d43eda7 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -6,7 +6,7 @@ RSpec.describe MediaAttachment, paperclip_processing: true do describe 'local?' do subject { media_attachment.local? } - let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) } + let(:media_attachment) { described_class.new(remote_url: remote_url) } context 'when remote_url is blank' do let(:remote_url) { '' } @@ -28,7 +28,7 @@ RSpec.describe MediaAttachment, paperclip_processing: true do describe 'needs_redownload?' do subject { media_attachment.needs_redownload? } - let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) } + let(:media_attachment) { described_class.new(remote_url: remote_url, file: file) } context 'when file is blank' do let(:file) { nil } @@ -64,11 +64,11 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end describe '#to_param' do - let(:media_attachment) { Fabricate(:media_attachment, shortcode: shortcode) } - let(:shortcode) { nil } + let(:media_attachment) { Fabricate.build(:media_attachment, shortcode: shortcode, id: id) } context 'when media attachment has a shortcode' do let(:shortcode) { 'foo' } + let(:id) { 123 } it 'returns shortcode' do expect(media_attachment.to_param).to eq shortcode @@ -77,9 +77,10 @@ RSpec.describe MediaAttachment, paperclip_processing: true do context 'when media attachment does not have a shortcode' do let(:shortcode) { nil } + let(:id) { 123 } it 'returns string representation of id' do - expect(media_attachment.to_param).to eq media_attachment.id.to_s + expect(media_attachment.to_param).to eq id.to_s end end end @@ -89,38 +90,33 @@ RSpec.describe MediaAttachment, paperclip_processing: true do media.destroy end - it 'saves media attachment' do + it 'saves media attachment with correct file metadata' do expect(media.persisted?).to be true expect(media.file).to_not be_nil - end - it 'completes processing' do + # completes processing expect(media.processing_complete?).to be true - end - it 'sets type' do + # sets type expect(media.type).to eq 'image' - end - it 'sets content type' do + # sets content type expect(media.file_content_type).to eq content_type - end - it 'sets file extension' do + # sets file extension expect(media.file_file_name).to end_with extension end - it 'strips original file name' do + it 'saves media attachment with correct size metadata' do + # strips original file name expect(media.file_file_name).to_not start_with '600x400' - end - it 'sets meta for original' do + # sets meta for original expect(media.file.meta['original']['width']).to eq 600 expect(media.file.meta['original']['height']).to eq 400 expect(media.file.meta['original']['aspect']).to eq 1.5 - end - it 'sets meta for thumbnail' do + # sets meta for thumbnail expect(media.file.meta['small']['width']).to eq 588 expect(media.file.meta['small']['height']).to eq 392 expect(media.file.meta['small']['aspect']).to eq 1.5 @@ -128,54 +124,48 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end describe 'jpeg' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.jpeg')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.jpeg')) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'png' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.png')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.png')) } it_behaves_like 'static 600x400 image', 'image/png', '.png' end describe 'webp' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.webp')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.webp')) } it_behaves_like 'static 600x400 image', 'image/webp', '.webp' end describe 'avif' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.avif')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.avif')) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'heic' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.heic')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.heic')) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'base64-encoded image' do let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('600x400.jpeg').read)}" } - let(:media) { described_class.create(account: Fabricate(:account), file: base64_attachment) } + let(:media) { Fabricate(:media_attachment, file: base64_attachment) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'animated gif' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('avatar.gif')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('avatar.gif')) } - it 'sets type to gifv' do + it 'sets correct file metadata' do expect(media.type).to eq 'gifv' - end - - it 'converts original file to mp4' do expect(media.file_content_type).to eq 'video/mp4' - end - - it 'sets meta' do expect(media.file.meta['original']['width']).to eq 128 expect(media.file.meta['original']['height']).to eq 128 end @@ -189,17 +179,11 @@ RSpec.describe MediaAttachment, paperclip_processing: true do fixtures.each do |fixture| context fixture[:filename] do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture(fixture[:filename])) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture(fixture[:filename])) } - it 'sets type to image' do + it 'sets correct file metadata' do expect(media.type).to eq 'image' - end - - it 'leaves original file as-is' do expect(media.file_content_type).to eq 'image/gif' - end - - it 'sets meta' do expect(media.file.meta['original']['width']).to eq fixture[:width] expect(media.file.meta['original']['height']).to eq fixture[:height] expect(media.file.meta['original']['aspect']).to eq fixture[:aspect] @@ -209,31 +193,19 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end describe 'ogg with cover art' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('boop.ogg')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('boop.ogg')) } - it 'detects it as an audio file' do + it 'sets correct file metadata' do expect(media.type).to eq 'audio' - end - - it 'sets meta for the duration' do expect(media.file.meta['original']['duration']).to be_within(0.05).of(0.235102) - end - - it 'extracts thumbnail' do expect(media.thumbnail.present?).to be true - end - - it 'extracts colors from thumbnail' do expect(media.file.meta['colors']['background']).to eq '#3088d4' - end - - it 'gives the file a random name' do expect(media.file_file_name).to_not eq 'boop.ogg' end end describe 'mp3 with large cover art' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('boop.mp3')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('boop.mp3')) } it 'detects it as an audio file' do expect(media.type).to eq 'audio' @@ -253,34 +225,36 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end it 'is invalid without file' do - media = described_class.new(account: Fabricate(:account)) + media = described_class.new + expect(media.valid?).to be false + expect(media).to model_have_error_on_field(:file) end describe 'size limit validation' do it 'rejects video files that are too large' do stub_const 'MediaAttachment::IMAGE_LIMIT', 100.megabytes stub_const 'MediaAttachment::VIDEO_LIMIT', 1.kilobyte - expect { described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.webm')) }.to raise_error(ActiveRecord::RecordInvalid) + expect { Fabricate(:media_attachment, file: attachment_fixture('attachment.webm')) }.to raise_error(ActiveRecord::RecordInvalid) end it 'accepts video files that are small enough' do stub_const 'MediaAttachment::IMAGE_LIMIT', 1.kilobyte stub_const 'MediaAttachment::VIDEO_LIMIT', 100.megabytes - media = described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.webm')) + media = Fabricate(:media_attachment, file: attachment_fixture('attachment.webm')) expect(media.valid?).to be true end it 'rejects image files that are too large' do stub_const 'MediaAttachment::IMAGE_LIMIT', 1.kilobyte stub_const 'MediaAttachment::VIDEO_LIMIT', 100.megabytes - expect { described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.jpg')) }.to raise_error(ActiveRecord::RecordInvalid) + expect { Fabricate(:media_attachment, file: attachment_fixture('attachment.jpg')) }.to raise_error(ActiveRecord::RecordInvalid) end it 'accepts image files that are small enough' do stub_const 'MediaAttachment::IMAGE_LIMIT', 100.megabytes stub_const 'MediaAttachment::VIDEO_LIMIT', 1.kilobyte - media = described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.jpg')) + media = Fabricate(:media_attachment, file: attachment_fixture('attachment.jpg')) expect(media.valid?).to be true end end From cd6f2b3cbc8dc20c26c6f92f5c0ef3ae906fc2f0 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 7 Aug 2023 17:58:29 +0200 Subject: [PATCH 25/71] Fix interaction modal layout (#26368) --- .../features/interaction_modal/index.jsx | 47 ++++++------------- .../features/ui/components/sign_in_banner.jsx | 4 +- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/app/javascript/mastodon/features/interaction_modal/index.jsx b/app/javascript/mastodon/features/interaction_modal/index.jsx index a8b86b7212..220719a94a 100644 --- a/app/javascript/mastodon/features/interaction_modal/index.jsx +++ b/app/javascript/mastodon/features/interaction_modal/index.jsx @@ -331,36 +331,24 @@ class InteractionModal extends React.PureComponent { } let signupButton; - let signUpOrSignInButton; if (sso_redirect) { - signUpOrSignInButton = ( - - + signupButton = ( + + - ) + ); + } else if (registrationsOpen) { + signupButton = ( + + + + ); } else { - if(registrationsOpen) { - signupButton = ( - - - - ); - } else { - signupButton = ( - - ); - } - - signUpOrSignInButton = ( - <> - - - - {signupButton} - + signupButton = ( + ); } @@ -371,13 +359,6 @@ class InteractionModal extends React.PureComponent {

{actionDescription}

-
-
-

- {signUpOrSignInButton} -
-
-

diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx index db85c6cbfb..d5f0c00dca 100644 --- a/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx +++ b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx @@ -17,9 +17,9 @@ const SignInBanner = () => { let signupButton; - const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); + const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); - if (sso_redirect) { + if (sso_redirect) { return (

From 30c64bf61676f8fcccc17b253a0a58cd6f51fc69 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 7 Aug 2023 17:59:20 +0200 Subject: [PATCH 26/71] Fix list import concurrently creating lists of the same name (#26372) --- app/services/bulk_import_service.rb | 7 +++++-- spec/services/bulk_import_row_service_spec.rb | 6 ++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/services/bulk_import_service.rb b/app/services/bulk_import_service.rb index 5c14adc499..591b112127 100644 --- a/app/services/bulk_import_service.rb +++ b/app/services/bulk_import_service.rb @@ -162,10 +162,9 @@ class BulkImportService < BaseService def import_lists! rows = @import.rows.to_a + included_lists = rows.map { |row| row.data['list_name'] }.uniq if @import.overwrite? - included_lists = rows.map { |row| row.data['list_name'] }.uniq - @account.owned_lists.where.not(title: included_lists).destroy_all # As list membership changes do not retroactively change timeline @@ -175,6 +174,10 @@ class BulkImportService < BaseService end end + included_lists.each do |title| + @account.owned_lists.find_or_create_by!(title: title) + end + Import::RowWorker.push_bulk(rows) do |row| [row.id] end diff --git a/spec/services/bulk_import_row_service_spec.rb b/spec/services/bulk_import_row_service_spec.rb index 5e09845b53..a77acc0732 100644 --- a/spec/services/bulk_import_row_service_spec.rb +++ b/spec/services/bulk_import_row_service_spec.rb @@ -161,6 +161,12 @@ RSpec.describe BulkImportRowService do end include_examples 'common behavior' + + it 'does not create a new list' do + account.follow!(target_account) + + expect { subject.call(import_row) }.to_not(change { List.where(title: 'my list').count }) + end end end end From 60fbb0fe91d46603d2c1920ab2e7e6b6105febfd Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 8 Aug 2023 02:57:18 -0400 Subject: [PATCH 27/71] Omniauth 2.0 version bump (#24209) --- .bundler-audit.yml | 3 --- Gemfile | 11 +++++++---- Gemfile.lock | 39 ++++++++++++++++++++++++--------------- 3 files changed, 31 insertions(+), 22 deletions(-) delete mode 100644 .bundler-audit.yml diff --git a/.bundler-audit.yml b/.bundler-audit.yml deleted file mode 100644 index f84ec80872..0000000000 --- a/.bundler-audit.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -ignore: - - CVE-2015-9284 # Mitigation following https://github.com/omniauth/omniauth/wiki/Resolving-CVE-2015-9284#mitigating-in-rails-applications diff --git a/Gemfile b/Gemfile index a1eba4efe0..27adec7a09 100644 --- a/Gemfile +++ b/Gemfile @@ -35,11 +35,14 @@ group :pam_authentication, optional: true do end gem 'net-ldap', '~> 0.18' -gem 'omniauth-cas', '~> 2.0' -gem 'omniauth-saml', '~> 1.10' + +# TODO: Point back at released omniauth-cas gem when PR merged +# https://github.com/dlindahl/omniauth-cas/pull/68 +gem 'omniauth-cas', github: 'stanhu/omniauth-cas', ref: '4211e6d05941b4a981f9a36b49ec166cecd0e271' +gem 'omniauth-saml', '~> 2.0' gem 'omniauth_openid_connect', '~> 0.6.1' -gem 'omniauth', '~> 1.9' -gem 'omniauth-rails_csrf_protection', '~> 0.1' +gem 'omniauth', '~> 2.0' +gem 'omniauth-rails_csrf_protection', '~> 1.0' gem 'color_diff', '~> 0.1' gem 'discard', '~> 1.2' diff --git a/Gemfile.lock b/Gemfile.lock index a44538d16f..46a10e5acc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -26,6 +26,16 @@ GIT rails-settings-cached (0.6.6) rails (>= 4.2.0) +GIT + remote: https://github.com/stanhu/omniauth-cas.git + revision: 4211e6d05941b4a981f9a36b49ec166cecd0e271 + ref: 4211e6d05941b4a981f9a36b49ec166cecd0e271 + specs: + omniauth-cas (2.0.0) + addressable (~> 2.3) + nokogiri (~> 1.5) + omniauth (>= 1.2, < 3) + GEM remote: https://rubygems.org/ specs: @@ -472,19 +482,16 @@ GEM mini_portile2 (~> 2.8.2) racc (~> 1.4) oj (3.15.0) - omniauth (1.9.2) + omniauth (2.1.1) hashie (>= 3.4.6) - rack (>= 1.6.2, < 3) - omniauth-cas (2.0.0) - addressable (~> 2.3) - nokogiri (~> 1.5) - omniauth (~> 1.2) - omniauth-rails_csrf_protection (0.1.2) + rack (>= 2.2.3) + rack-protection + omniauth-rails_csrf_protection (1.0.1) actionpack (>= 4.2) - omniauth (>= 1.3.1) - omniauth-saml (1.10.3) - omniauth (~> 1.3, >= 1.3.2) - ruby-saml (~> 1.9) + omniauth (~> 2.0) + omniauth-saml (2.1.0) + omniauth (~> 2.0) + ruby-saml (~> 1.12) omniauth_openid_connect (0.6.1) omniauth (>= 1.9, < 3) openid_connect (~> 1.1) @@ -542,6 +549,8 @@ GEM httpclient json-jwt (>= 1.11.0) rack (>= 2.1.0) + rack-protection (3.0.5) + rack rack-proxy (0.7.6) rack rack-test (2.1.0) @@ -871,10 +880,10 @@ DEPENDENCIES nokogiri (~> 1.15) nsa! oj (~> 3.14) - omniauth (~> 1.9) - omniauth-cas (~> 2.0) - omniauth-rails_csrf_protection (~> 0.1) - omniauth-saml (~> 1.10) + omniauth (~> 2.0) + omniauth-cas! + omniauth-rails_csrf_protection (~> 1.0) + omniauth-saml (~> 2.0) omniauth_openid_connect (~> 0.6.1) ox (~> 2.14) parslet From 72423bc8f69ea54faf29eefe6aff32f6d27c217e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 8 Aug 2023 09:09:14 +0200 Subject: [PATCH 28/71] Change account search tokenizer and queries (#26378) --- app/chewy/accounts_index.rb | 2 +- app/services/account_search_service.rb | 231 +++++++++++++++---------- 2 files changed, 144 insertions(+), 89 deletions(-) diff --git a/app/chewy/accounts_index.rb b/app/chewy/accounts_index.rb index abde8e92f1..61f5277d2b 100644 --- a/app/chewy/accounts_index.rb +++ b/app/chewy/accounts_index.rb @@ -33,7 +33,7 @@ class AccountsIndex < Chewy::Index }, verbatim: { - tokenizer: 'whitespace', + tokenizer: 'standard', filter: %w(lowercase asciifolding cjk_width), }, diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb index b732fbcec3..a15b691211 100644 --- a/app/services/account_search_service.rb +++ b/app/services/account_search_service.rb @@ -8,6 +8,143 @@ class AccountSearchService < BaseService # Min. number of characters to look for non-exact matches MIN_QUERY_LENGTH = 5 + class QueryBuilder + def initialize(query, account, options = {}) + @query = query + @account = account + @options = options + end + + def build + AccountsIndex.query( + bool: { + must: { + function_score: { + query: { + bool: { + must: must_clauses, + }, + }, + + functions: [ + reputation_score_function, + followers_score_function, + time_distance_function, + ], + }, + }, + + should: should_clauses, + } + ) + end + + private + + def must_clauses + if @account && @options[:following] + [core_query, only_following_query] + else + [core_query] + end + end + + def should_clauses + if @account && !@options[:following] + [boost_following_query] + else + [] + end + end + + # This function limits results to only the accounts the user is following + def only_following_query + { + terms: { + id: following_ids, + }, + } + end + + # This function promotes accounts the user is following + def boost_following_query + { + terms: { + id: following_ids, + boost: 100, + }, + } + end + + # This function deranks accounts that follow more people than follow them + def reputation_score_function + { + script_score: { + script: { + source: "(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)", + }, + }, + } + end + + # This function promotes accounts that have more followers + def followers_score_function + { + script_score: { + script: { + source: "(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))", + }, + }, + } + end + + # This function deranks accounts that haven't posted in a long time + def time_distance_function + { + gauss: { + last_status_at: { + scale: '30d', + offset: '30d', + decay: 0.3, + }, + }, + } + end + + def following_ids + @following_ids ||= @account.active_relationships.pluck(:target_account_id) + [@account.id] + end + end + + class AutocompleteQueryBuilder < QueryBuilder + private + + def core_query + { + multi_match: { + query: @query, + type: 'bool_prefix', + fields: %w(username username.* display_name display_name.*), + }, + } + end + end + + class FullQueryBuilder < QueryBuilder + private + + def core_query + { + multi_match: { + query: @query, + type: 'most_fields', + fields: %w(username^2 display_name^2 text text.*), + operator: 'and', + }, + } + end + end + def call(query, account = nil, options = {}) @query = query&.strip&.gsub(/\A@/, '') @limit = options[:limit].to_i @@ -71,27 +208,15 @@ class AccountSearchService < BaseService end def from_elasticsearch - must_clauses = must_clause - should_clauses = should_clause - - if account - return [] if options[:following] && following_ids.empty? - - if options[:following] - must_clauses << { terms: { id: following_ids } } - elsif following_ids.any? - should_clauses << { terms: { id: following_ids, boost: 100 } } + query_builder = begin + if options[:use_searchable_text] + FullQueryBuilder.new(terms_for_query, account, options.slice(:following)) + else + AutocompleteQueryBuilder.new(terms_for_query, account, options.slice(:following)) end end - query = { bool: { must: must_clauses, should: should_clauses } } - functions = [reputation_score_function, followers_score_function, time_distance_function] - - records = AccountsIndex.query(function_score: { query: query, functions: functions }) - .limit(limit_for_non_exact_results) - .offset(offset) - .objects - .compact + records = query_builder.build.limit(limit_for_non_exact_results).offset(offset).objects.compact ActiveRecord::Associations::Preloader.new(records: records, associations: :account_stat) @@ -100,76 +225,6 @@ class AccountSearchService < BaseService nil end - def reputation_score_function - { - script_score: { - script: { - source: "(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)", - }, - }, - } - end - - def followers_score_function - { - script_score: { - script: { - source: "Math.log10(Math.max(doc['followers_count'].value, 0) + 2)", - }, - }, - } - end - - def time_distance_function - { - gauss: { - last_status_at: { - scale: '30d', - offset: '30d', - decay: 0.3, - }, - }, - } - end - - def must_clause - if options[:start_with_hashtag] - fields = %w(text text.*) - else - fields = %w(username username.* display_name display_name.*) - fields << 'text' << 'text.*' if options[:use_searchable_text] - end - - [ - { - multi_match: { - query: terms_for_query, - fields: fields, - type: 'best_fields', - operator: 'or', - }, - }, - ] - end - - def should_clause - [ - { - multi_match: { - query: terms_for_query, - fields: %w(username username.* display_name display_name.*), - type: 'best_fields', - operator: 'and', - boost: 10, - }, - }, - ] - end - - def following_ids - @following_ids ||= account.active_relationships.pluck(:target_account_id) + [account.id] - end - def limit_for_non_exact_results return 0 if @account.nil? && query.size < MIN_QUERY_LENGTH From 0e2a4d3897ea3c5117b5cc7f91df4821515ef696 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 8 Aug 2023 09:09:58 +0200 Subject: [PATCH 29/71] Fix adding column with default value taking longer on Postgres >= 11 (#26375) --- lib/mastodon/migration_helpers.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/mastodon/migration_helpers.rb b/lib/mastodon/migration_helpers.rb index 5a252b3512..4a43f67c27 100644 --- a/lib/mastodon/migration_helpers.rb +++ b/lib/mastodon/migration_helpers.rb @@ -195,7 +195,14 @@ module Mastodon def supports_drop_index_concurrently? version = select_one("SELECT current_setting('server_version_num') AS v")['v'].to_i - version >= 90200 + version >= 90_200 + end + + # Only available on Postgresql >= 11 + def supports_add_column_with_default? + version = select_one("SELECT current_setting('server_version_num') AS v")['v'].to_i + + version >= 11_000 end # Adds a foreign key with only minimal locking on the tables involved. @@ -414,6 +421,11 @@ module Mastodon # This method can also take a block which is passed directly to the # `update_column_in_batches` method. def add_column_with_default(table, column, type, default:, limit: nil, allow_null: false, &block) + if supports_add_column_with_default? + add_column(table, column, type, default: default, limit: limit, null: allow_null) + return + end + if transaction_open? raise 'add_column_with_default can not be run inside a transaction, ' \ 'you can disable transactions by calling disable_ddl_transaction! ' \ From 4773d7b9aa840dadc72d1587d604a9e73b8f8003 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 8 Aug 2023 11:41:53 +0200 Subject: [PATCH 30/71] Fix `preview_cards_statuses_pkey` not being reindexed concurrently (#26384) --- ...20230803082451_add_unique_index_on_preview_cards_statuses.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb b/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb index 936d7840eb..c35ad80028 100644 --- a/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb +++ b/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb @@ -18,7 +18,7 @@ class AddUniqueIndexOnPreviewCardsStatuses < ActiveRecord::Migration[6.1] def deduplicate_and_reindex! deduplicate_preview_cards! - safety_assured { execute 'REINDEX INDEX preview_cards_statuses_pkey' } + safety_assured { execute 'REINDEX INDEX CONCURRENTLY preview_cards_statuses_pkey' } rescue ActiveRecord::RecordNotUnique retry end From 2c204d904b344b2e1f9c7f8051216b024b81c684 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 8 Aug 2023 13:59:40 +0200 Subject: [PATCH 31/71] Change `DB_REPLICA_*` environment variables to `REPLICA_DB_*` (#26386) --- app/models/application_record.rb | 2 +- config/database.yml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/models/application_record.rb b/app/models/application_record.rb index c2de8fb2af..567542f91d 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -5,7 +5,7 @@ class ApplicationRecord < ActiveRecord::Base include Remotable - connects_to database: { writing: :primary, reading: ENV['DB_REPLICA_NAME'] || ENV['REPLICA_DATABASE_URL'] ? :replica : :primary } + connects_to database: { writing: :primary, reading: ENV['REPLICA_DB_NAME'] || ENV['REPLICA_DATABASE_URL'] ? :replica : :primary } class << self def update_index(_type_name, *_args, &_block) diff --git a/config/database.yml b/config/database.yml index 0907193feb..b995f23178 100644 --- a/config/database.yml +++ b/config/database.yml @@ -55,10 +55,10 @@ production: prepared_statements: <%= ENV['PREPARED_STATEMENTS'] || 'true' %> replica: <<: *default - database: <%= ENV['DB_REPLICA_NAME'] ||ENV['DB_NAME'] || 'mastodon_production' %> - username: <%= ENV['DB_REPLICA_USER'] ||ENV['DB_USER'] || 'mastodon' %> - password: <%= (ENV['DB_REPLICA_PASS'] || ENV['DB_PASS'] || '').to_json %> - host: <%= ENV['DB_REPLICA_HOST'] ||ENV['DB_HOST'] || 'localhost' %> - port: <%= ENV['DB_REPLICA_PORT'] ||ENV['DB_PORT'] || 5432 %> + database: <%= ENV['REPLICA_DB_NAME'] ||ENV['DB_NAME'] || 'mastodon_production' %> + username: <%= ENV['REPLICA_DB_USER'] ||ENV['DB_USER'] || 'mastodon' %> + password: <%= (ENV['REPLICA_DB_PASS'] || ENV['DB_PASS'] || '').to_json %> + host: <%= ENV['REPLICA_DB_HOST'] ||ENV['DB_HOST'] || 'localhost' %> + port: <%= ENV['REPLICA_DB_PORT'] ||ENV['DB_PORT'] || 5432 %> prepared_statements: <%= ENV['PREPARED_STATEMENTS'] || 'true' %> replica: true From 8b37dd2c863ffe1d517a8296f5cb859f03397fc8 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 8 Aug 2023 15:41:38 +0200 Subject: [PATCH 32/71] Fix Content Security Policy sometimes unnecessarily allowing hCaptcha scripts (#26388) --- app/controllers/concerns/captcha_concern.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/captcha_concern.rb b/app/controllers/concerns/captcha_concern.rb index 576304d1ca..170c8f5e03 100644 --- a/app/controllers/concerns/captcha_concern.rb +++ b/app/controllers/concerns/captcha_concern.rb @@ -42,7 +42,7 @@ module CaptchaConcern end def extend_csp_for_captcha! - policy = request.content_security_policy + policy = request.content_security_policy&.clone return unless captcha_required? && policy.present? @@ -54,6 +54,8 @@ module CaptchaConcern policy.send(directive, *values) end + + request.content_security_policy = policy end def render_captcha From dab54ccbba3721382241725bb1c1159d24b5aab2 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 8 Aug 2023 16:12:12 +0200 Subject: [PATCH 33/71] Prepare v4.2.0-beta1 (#26339) --- CHANGELOG.md | 234 ++++++++++++++++++++++++++++++++++++++++ lib/mastodon/version.rb | 6 +- 2 files changed, 237 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fe1ac3803..cfcc188362 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,240 @@ All notable changes to this project will be documented in this file. +## [4.2.0] - UNRELEASED + +The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by [@danielmbrasil](https://github.com/danielmbrasil), [@mjankowski](https://github.com/mjankowski), [@nschonni](https://github.com/nschonni), [@renchap](https://github.com/renchap), and [@takayamaki](https://github.com/takayamaki). + +### Added + +- **Add role badges to the web interface** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25649), [Gargron](https://github.com/mastodon/mastodon/pull/26281)) +- **Add ability to pick domains to forward reports to using the `forward_to_domains` parameter in `POST /api/v1/reports`** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25866)) + The `forward_to_domains` REST API parameter is a list of strings. If it is empty or omitted, the previous behavior is maintained. + The `forward` parameter still needs to be set for `forward_to_domains` to be taken into account. + The forwarded-to domains can only include that of the original author and people being replied to. +- **Add forwarding of reported replies to servers being replied to** ([Gargron](https://github.com/mastodon/mastodon/pull/25341), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26189)) +- Add direct link to the Single-Sign On provider if there is only one sign up method available ([CSDUMMI](https://github.com/mastodon/mastodon/pull/26083), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26368)) +- **Add webhook templating** ([Gargron](https://github.com/mastodon/mastodon/pull/23289)) +- **Add webhooks for local `status.created`, `status.updated`, `account.updated` and `report.updated`** ([VyrCossont](https://github.com/mastodon/mastodon/pull/24133), [VyrCossont](https://github.com/mastodon/mastodon/pull/24243), [VyrCossont](https://github.com/mastodon/mastodon/pull/24211)) +- **Add exclusive lists** ([dariusk](https://github.com/mastodon/mastodon/pull/22048), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25324)) +- **Add a confirmation screen when suspending a domain** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25144), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25603)) +- **Add support for importing lists** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25203), [mgmn](https://github.com/mastodon/mastodon/pull/26120), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26372)) +- **Add optional hCaptcha support** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25019), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25057), [Gargron](https://github.com/mastodon/mastodon/pull/25395), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26388)) +- **Add lines to threads in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24549), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24677), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24696), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24711), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24714), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24713), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24715), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24800), [teeerevor](https://github.com/mastodon/mastodon/pull/25706), [renchap](https://github.com/mastodon/mastodon/pull/25807)) +- **Add new onboarding flow to web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24619), [Gargron](https://github.com/mastodon/mastodon/pull/24646), [Gargron](https://github.com/mastodon/mastodon/pull/24705), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24872), [ThisIsMissEm](https://github.com/mastodon/mastodon/pull/24883), [Gargron](https://github.com/mastodon/mastodon/pull/24954), [stevenjlm](https://github.com/mastodon/mastodon/pull/24959), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25010), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25275), [Gargron](https://github.com/mastodon/mastodon/pull/25559), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25561)) +- Add `GET /api/v1/instance/languages` to REST API ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24443)) +- Add primary key to `preview_cards_statuses` join table ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25243), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26384)) +- Add client-side timeout on resend confirmation button ([Gargron](https://github.com/mastodon/mastodon/pull/26300)) +- Add published date and author to news on the explore screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26155)) +- Add `lang` attribute to various UI components ([c960657](https://github.com/mastodon/mastodon/pull/23869), [c960657](https://github.com/mastodon/mastodon/pull/23891), [c960657](https://github.com/mastodon/mastodon/pull/26111), [c960657](https://github.com/mastodon/mastodon/pull/26149)) +- Add stricter protocol fields validation for accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25937)) +- Add support for Azure blob storage ([mistydemeo](https://github.com/mastodon/mastodon/pull/23607), [mistydemeo](https://github.com/mastodon/mastodon/pull/26080)) +- Add toast with option to open post after publishing in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25564), [Signez](https://github.com/mastodon/mastodon/pull/25919)) +- Add canonical link tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25715)) +- Add button to see results for polls in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25726)) +- Add at-symbol prepended to mention span title ([forsamori](https://github.com/mastodon/mastodon/pull/25684)) +- Add users index on `unconfirmed_email` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25672), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25702)) +- Add superapp index on `oauth_applications` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25670)) +- Add index to backups on `user_id` column ([mjankowski](https://github.com/mastodon/mastodon/pull/25647)) +- Add onboarding prompt when home feed too slow in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25267), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25556), [Gargron](https://github.com/mastodon/mastodon/pull/25579), [renchap](https://github.com/mastodon/mastodon/pull/25580), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25581), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25617), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25917)) +- Add `POST /api/v1/conversations/:id/unread` API endpoint to mark a conversation as unread ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25509)) +- Add `translate="no"` to outgoing mentions and links ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25524)) +- Add unsubscribe link and headers to e-mails ([Gargron](https://github.com/mastodon/mastodon/pull/25378), [c960657](https://github.com/mastodon/mastodon/pull/26085)) +- Add logging of websocket send errors ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25280)) +- Add time zone preference ([Gargron](https://github.com/mastodon/mastodon/pull/25342), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26025)) +- Add `legal` as report category ([Gargron](https://github.com/mastodon/mastodon/pull/23941), [renchap](https://github.com/mastodon/mastodon/pull/25400)) +- Add `data-nosnippet` so Google doesn't use trending posts in snippets for `/` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25279)) +- Add card with who invited you to join when displaying rules on sign-up ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23475)) +- Add missing primary keys to `accounts_tags` and `statuses_tags` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25210)) +- Add support for custom sign-up URLs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25014), [renchap](https://github.com/mastodon/mastodon/pull/25108), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25190), [mgmn](https://github.com/mastodon/mastodon/pull/25531)) + This is set using `SSO_ACCOUNT_SIGN_UP` and reflected in the REST API by adding `registrations.sign_up_url` to the `/api/v2/instance` endpoint. +- Add polling and automatic redirection to `/start` on email confirmation ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25013)) +- Add ability to block sign-ups from IP using the CLI ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24870)) +- Add ALT badges to media that has alternative text in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24782), [c960657](https://github.com/mastodon/mastodon/pull/26166) +- Add ability to include accounts with pending follow requests in lists ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19727), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24810)) +- Add trend management to admin API ([rrgeorge](https://github.com/mastodon/mastodon/pull/24257)) + - `POST /api/v1/admin/trends/statuses/:id/approve` + - `POST /api/v1/admin/trends/statuses/:id/reject` + - `POST /api/v1/admin/trends/links/:id/approve` + - `POST /api/v1/admin/trends/links/:id/reject` + - `POST /api/v1/admin/trends/tags/:id/approve` + - `POST /api/v1/admin/trends/tags/:id/reject` + - `GET /api/v1/admin/trends/links/publishers` + - `POST /api/v1/admin/trends/links/publishers/:id/approve` + - `POST /api/v1/admin/trends/links/publishers/:id/reject` +- Add user handle to notification mail recipient address ([HeitorMC](https://github.com/mastodon/mastodon/pull/24240)) +- Add progress indicator to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/24545)) +- Add client-side validation for taken username in sign-up form ([Gargron](https://github.com/mastodon/mastodon/pull/24546)) +- Add `--approve` option to `tootctl accounts create` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24533)) +- Add “In Memoriam” banner back to profiles ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23591), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23614)) + This adds the `memorial` attribute to the `Account` REST API entity. +- Add colour to follow button when hashtag is being followed ([c960657](https://github.com/mastodon/mastodon/pull/24361)) +- Add further explanations to the profile link verification instructions ([drzax](https://github.com/mastodon/mastodon/pull/19723)) +- Add a link to Identity provider's account settings from the account settings ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24100), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24628)) +- Add support for streaming server to connect to postgres with self-signed certs through the `sslmode` URL parameter ([ramuuns](https://github.com/mastodon/mastodon/pull/21431)) +- Add support for specifying S3 storage classes through the `S3_STORAGE_CLASS` environment variable ([hyl](https://github.com/mastodon/mastodon/pull/22480)) +- Add support for incoming rich text ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23913)) +- Add support for Ruby 3.2 ([tenderlove](https://github.com/mastodon/mastodon/pull/22928), [casperisfine](https://github.com/mastodon/mastodon/pull/24142), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24202)) +- Add API parameter to safeguard unexpected mentions in new posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18350)) + +### Changed + +- **Change reblogs to be excluded from "Posts and replies" tab in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/26302)) +- **Change interaction modal in web interface** ([Gargron, ClearlyClaire](https://github.com/mastodon/mastodon/pull/26075), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26269), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26268), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26267)) +- **Change design of link previews in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/26136), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26151), [Gargron](https://github.com/mastodon/mastodon/pull/26153), [Gargron](https://github.com/mastodon/mastodon/pull/26250), [Gargron](https://github.com/mastodon/mastodon/pull/26287), [Gargron](https://github.com/mastodon/mastodon/pull/26286), [c960657](https://github.com/mastodon/mastodon/pull/26184)) +- **Change "direct message" nomenclature to "private mention" in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24248)) +- **Change translation feature to cover Content Warnings, poll options and media descriptions** ([c960657](https://github.com/mastodon/mastodon/pull/24175), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/25251), [c960657](https://github.com/mastodon/mastodon/pull/26168)) +- **Change account search to match by text when opted-in** ([jsgoldstein](https://github.com/mastodon/mastodon/pull/25599), [Gargron](https://github.com/mastodon/mastodon/pull/26378)) +- **Change import feature to be clearer, less error-prone and more reliable** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21054), [mgmn](https://github.com/mastodon/mastodon/pull/24874)) +- **Change local and federated timelines to be in a single “Live feeds” column** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25641), [Gargron](https://github.com/mastodon/mastodon/pull/25683), [mgmn](https://github.com/mastodon/mastodon/pull/25694), [Plastikmensch](https://github.com/mastodon/mastodon/pull/26247)) +- **Change user archive export to be faster and more reliable, and export `.zip` archives instead of `.tar.gz` ones** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23360), [TheEssem](https://github.com/mastodon/mastodon/pull/25034)) +- **Change `mastodon-streaming` systemd unit files to be templated** ([e-nomem](https://github.com/mastodon/mastodon/pull/24751)) +- **Change `statsd` integration to disable sidekiq metrics by default** ([mjankowski](https://github.com/mastodon/mastodon/pull/25265), [mjankowski](https://github.com/mastodon/mastodon/pull/25336), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26310)) + This deprecates `statsd` support and disables the sidekiq integration unless `STATSD_SIDEKIQ` is set to `true`. + This is because the `nsa` gem is unmaintained, and its sidekiq integration is known to add very significant overhead. + Later versions of Mastodon will have other ways to get the same metrics. +- **Change replica support to native Rails adapter** ([krainboltgreene](https://github.com/mastodon/mastodon/pull/25693), [Gargron](https://github.com/mastodon/mastodon/pull/25849), [Gargron](https://github.com/mastodon/mastodon/pull/25874), [Gargron](https://github.com/mastodon/mastodon/pull/25851), [Gargron](https://github.com/mastodon/mastodon/pull/25977), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26074), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26326), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26386)) + This is a breaking change, dropping `makara` support, and requiring you to update your database configuration if you are using replicas. + To tell Mastodon to use a read replica, you can either set the `REPLICA_DB_NAME` environment variable (along with `REPLICA_DB_USER`, `REPLICA_DB_PASS`, `REPLICA_DB_HOST`, and `REPLICA_DB_PORT`, if they differ from the primary database), or the `REPLICA_DATABASE_URL` environment variable if your configuration is based on `DATABASE_URL`. +- Change header of hashtag timelines in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26362)) +- Change streaming `/metrics` to include additional metrics ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/26299)) +- Change indexing frequency from 5 minutes to 1 minute, add locks to schedulers ([Gargron](https://github.com/mastodon/mastodon/pull/26304)) +- Change column link to add a better keyboard focus indicator ([teeerevor](https://github.com/mastodon/mastodon/pull/26278)) +- Change poll form element colors to fit with the rest of the ui ([teeerevor](https://github.com/mastodon/mastodon/pull/26139), [teeerevor](https://github.com/mastodon/mastodon/pull/26162), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26164)) +- Change 'favourite' to 'favorite' for American English ([marekr](https://github.com/mastodon/mastodon/pull/24667), [gunchleoc](https://github.com/mastodon/mastodon/pull/26009), [nabijaczleweli](https://github.com/mastodon/mastodon/pull/26109)) +- Change ActivityStreams representation of suspended accounts to not use a blank `name` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25276)) +- Change focus UI for keyboard only input ([teeerevor](https://github.com/mastodon/mastodon/pull/25935), [Gargron](https://github.com/mastodon/mastodon/pull/26125)) +- Change thread view to scroll to the selected post rather than the post being replied to ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24685)) +- Change links in multi-column mode so tabs are open in single-column mode ([Signez](https://github.com/mastodon/mastodon/pull/25893), [Signez](https://github.com/mastodon/mastodon/pull/26070), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25973)) +- Change searching with `#` to include account index ([jsgoldstein](https://github.com/mastodon/mastodon/pull/25638)) +- Change label and design of sensitive and unavailable media in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25712), [Gargron](https://github.com/mastodon/mastodon/pull/26135), [Gargron](https://github.com/mastodon/mastodon/pull/26330)) +- Change button colors to increase hover/focus contrast and consistency ([teeerevor](https://github.com/mastodon/mastodon/pull/25677), [Gargron](https://github.com/mastodon/mastodon/pull/25679)) +- Change dropdown icon above compose form from ellipsis to bars in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25661)) +- Change header backgrounds to use fewer different colors in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25577)) +- Change files to be deleted in batches instead of one-by-one ([Gargron](https://github.com/mastodon/mastodon/pull/23302), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/25586), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25587)) +- Change emoji picker icon ([iparr](https://github.com/mastodon/mastodon/pull/25479)) +- Change edit profile page ([Gargron](https://github.com/mastodon/mastodon/pull/25413)) +- Change "bot" label to "automated" ([Gargron](https://github.com/mastodon/mastodon/pull/25356)) +- Change design of dropdowns in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25107)) +- Change wording of “Content cache retention period” setting to highlight destructive implications ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23261)) +- Change autolinking to allow carets in URL search params ([renchap](https://github.com/mastodon/mastodon/pull/25216)) +- Change share action from being in action bar to being in dropdown in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25105)) +- Change remote report processing to accept reports with long comments, but truncate them ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25028)) +- Change sessions to be ordered from most-recent to least-recently updated ([frankieroberto](https://github.com/mastodon/mastodon/pull/25005)) +- Change vacuum scheduler to also delete expired tokens and unused application records ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24868), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24871)) +- Change "Sign in" to "Login" ([Gargron](https://github.com/mastodon/mastodon/pull/24942)) +- Change domain suspensions to also be checked before trying to fetch unknown remote resources ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24535)) +- Change media components to use aspect-ratio rather than compute height themselves ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24686), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24943)) +- Change logo version in header based on screen size in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24707)) +- Change label from "For you" to "People" on explore screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24706)) +- Change logged-out WebUI HTML pages to be cached for a few seconds ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24708)) +- Change unauthenticated responses to be cached in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/24348), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24662), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24665)) +- Change HTTP caching logic ([Gargron](https://github.com/mastodon/mastodon/pull/24347), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24604)) +- Change hashtags and mentions in bios to open in-app in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24643)) +- Change styling of the recommended accounts to allow bio to be more visible ([chike00](https://github.com/mastodon/mastodon/pull/24480)) +- Change account search in moderation interface to allow searching by username including the leading `@` ([HeitorMC](https://github.com/mastodon/mastodon/pull/24242)) +- Change all components to use the same error page in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24512)) +- Change search pop-out in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24305)) +- Change user settings to be stored in a more optimal way ([Gargron](https://github.com/mastodon/mastodon/pull/23630), [c960657](https://github.com/mastodon/mastodon/pull/24321), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24460), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24558), [Gargron](https://github.com/mastodon/mastodon/pull/24761), [Gargron](https://github.com/mastodon/mastodon/pull/24783), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25508), [jsgoldstein](https://github.com/mastodon/mastodon/pull/25340)) +- Change media upload limits and remove client-side resizing ([Gargron](https://github.com/mastodon/mastodon/pull/23726)) +- Change design of account rows in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24247), [Gargron](https://github.com/mastodon/mastodon/pull/24343), [Gargron](https://github.com/mastodon/mastodon/pull/24956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25131)) +- Change log-out to use Single Logout when using external log-in through OIDC ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24020)) +- Change sidekiq-bulk's batch size from 10,000 to 1,000 jobs in one Redis call ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24034)) +- Change translation to only be offered for supported languages ([c960657](https://github.com/mastodon/mastodon/pull/23879), [c960657](https://github.com/mastodon/mastodon/pull/24037)) + This adds the `/api/v1/instance/translation_languages` REST API endpoint that returns an object with the supported translation language pairs in the form: + ```json + { + "fr": ["en", "de"] + } + ``` + (where `fr` is a supported source language and `en` and `de` or supported output language when translating a `fr` string) +- Change compose form checkbox to native input with `appearance: none` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22949)) +- Change posts' clickable area to be larger ([c960657](https://github.com/mastodon/mastodon/pull/23621)) +- Change `followed_by` link to `location=all` if account is local on /admin/accounts/:id page ([tribela](https://github.com/mastodon/mastodon/pull/23467)) + +### Removed + +- **Remove support for Node.js 14** ([renchap](https://github.com/mastodon/mastodon/pull/25198)) +- **Remove support for Ruby 2.7** ([nschonni](https://github.com/mastodon/mastodon/pull/24237)) +- **Remove clustering from streaming API** ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/24655)) +- **Remove anonymous access to the streaming API** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23989)) +- Remove 16:9 cropping from web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26132)) +- Remove back button from bookmarks, favourites and lists screens in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26126)) +- Remove display name input from sign-up form ([Gargron](https://github.com/mastodon/mastodon/pull/24704)) +- Remove `tai` locale ([c960657](https://github.com/mastodon/mastodon/pull/23880)) +- Remove empty Kushubian (csb) local files ([nschonni](https://github.com/mastodon/mastodon/pull/24151)) +- Remove `Permissions-Policy` header from all responses ([Gargron](https://github.com/mastodon/mastodon/pull/24124)) + +### Fixed + +- **Fix filters not being applying in the explore page** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25887)) +- **Fix being unable to load past a full page of filtered posts in Home timeline** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24930)) +- **Fix log-in flow when involving both OAuth and external authentication** ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24073)) +- **Fix broken links in account gallery** ([c960657](https://github.com/mastodon/mastodon/pull/24218)) +- Fix adding column with default value taking longer on Postgres >= 11 ([Gargron](https://github.com/mastodon/mastodon/pull/26375)) +- Fix light theme select option for hashtags ([teeerevor](https://github.com/mastodon/mastodon/pull/26311)) +- Fix AVIF attachments ([c960657](https://github.com/mastodon/mastodon/pull/26264)) +- Fix incorrect URL normalization when fetching remote resources ([c960657](https://github.com/mastodon/mastodon/pull/26219), [c960657](https://github.com/mastodon/mastodon/pull/26285)) +- Fix being unable to filter posts for individual Chinese languages ([gunchleoc](https://github.com/mastodon/mastodon/pull/26066)) +- Fix preview card sometimes linking to 4xx error pages ([c960657](https://github.com/mastodon/mastodon/pull/26200)) +- Fix emoji picker button scrolling with textarea content in single-column view ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25304)) +- Fix missing border on error screen in light theme in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26152)) +- Fix UI overlap with the loupe icon in the Explore Tab ([gol-cha](https://github.com/mastodon/mastodon/pull/26113)) +- Fix unexpected redirection to `/explore` after sign-in ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26143)) +- Fix `/api/v1/statuses/:id/unfavourite` and `/api/v1/statuses/:id/unreblog` returning non-updated counts ([c960657](https://github.com/mastodon/mastodon/pull/24365)) +- Fix clicking the “Back” button sometimes leading out of Mastodon ([c960657](https://github.com/mastodon/mastodon/pull/23953), [CSFlorin](https://github.com/mastodon/mastodon/pull/24835), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/24867), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25281)) +- Fix processing of `null` ActivityPub activities ([tribela](https://github.com/mastodon/mastodon/pull/26021)) +- Fix hashtag posts not being removed from home feed on hashtag unfollow ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26028)) +- Fix for "follows you" indicator in light web UI not readable ([vmstan](https://github.com/mastodon/mastodon/pull/25993)) +- Fix incorrect line break between icon and number of reposts & favourites ([edent](https://github.com/mastodon/mastodon/pull/26004)) +- Fix sounds not being loaded from assets host ([Signez](https://github.com/mastodon/mastodon/pull/25931)) +- Fix buttons showing inconsistent styles ([teeerevor](https://github.com/mastodon/mastodon/pull/25903), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25965), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26341)) +- Fix trend calculation working on too many items at a time ([Gargron](https://github.com/mastodon/mastodon/pull/25835)) +- Fix dropdowns being disabled for logged out users in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25714), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25964)) +- Fix explore page being inaccessible when opted-out of trends in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25716)) +- Fix re-activated accounts possibly getting deleted by `AccountDeletionWorker` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25711)) +- Fix `/api/v2/search` not working with following query param ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25681)) +- Fix inefficient query when requesting a new confirmation email from a logged-in account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25669)) +- Fix unnecessary concurrent calls to `/api/*/instance` in web UI ([mgmn](https://github.com/mastodon/mastodon/pull/25663)) +- Fix resolving local URL for remote content ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25637)) +- Fix search not being easily findable on smaller screens in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25576), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25631)) +- Fix j/k keyboard shortcuts on some status lists ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25554)) +- Fix missing validation on `default_privacy` setting ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25513)) +- Fix incorrect pagination headers in `/api/v2/admin/accounts` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25477)) +- Fix non-interactive upload container being given a `button` role and tabIndex ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25462)) +- Fix always redirecting to onboarding in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25396)) +- Fix inconsistent use of middle dot (·) instead of bullet (•) to separate items ([j-f1](https://github.com/mastodon/mastodon/pull/25248)) +- Fix spacing of middle dots in the detailed status meta section ([j-f1](https://github.com/mastodon/mastodon/pull/25247)) +- Fix prev/next buttons color in media viewer ([renchap](https://github.com/mastodon/mastodon/pull/25231)) +- Fix email addresses not being properly updated in `tootctl maintenance fix-duplicates` ([mjankowski](https://github.com/mastodon/mastodon/pull/25118)) +- Fix unicode surrogate pairs sometimes being broken in page title ([eai04191](https://github.com/mastodon/mastodon/pull/25148)) +- Fix various inefficient queries against account domains ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25126)) +- Fix video player offering to expand in a lightbox when it's in an `iframe` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25067)) +- Fix post embed previews ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25071)) +- Fix inadequate error handling in several API controllers when given invalid parameters ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24947), [danielmbrasil](https://github.com/mastodon/mastodon/pull/24958), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25063), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25072), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25386), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25595)) +- Fix uncaught `ActiveRecord::StatementInvalid` in Mastodon::IpBlocksCLI ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24861)) +- Fix various edge cases with local moves ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24812)) +- Fix `tootctl accounts cull` crashing when encountering a domain resolving to a private address ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23378)) +- Fix `tootctl accounts approve --number N` not aproving the N earliest registrations ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24605)) +- Fix being unable to clear media description when editing posts ([c960657](https://github.com/mastodon/mastodon/pull/24720)) +- Fix unavailable translations not falling back to English ([mgmn](https://github.com/mastodon/mastodon/pull/24727)) +- Fix anonymous visitors getting a session cookie on first visit ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24584), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24650), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24664)) +- Fix cutting off first letter of hashtag links sometimes in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24623)) +- Fix crash in `tootctl accounts create --reattach --force` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24557), [danielmbrasil](https://github.com/mastodon/mastodon/pull/24680)) +- Fix characters being emojified even when using Variation Selector 15 (text) ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20949), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24615)) +- Fix uncaught ActiveRecord::StatementInvalid exception in `Mastodon::AccountsCLI#approve` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24590)) +- Fix email confirmation skip option in `tootctl accounts modify USERNAME --email EMAIL --confirm` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24578)) +- Fix tooltip for dates without time ([c960657](https://github.com/mastodon/mastodon/pull/24244)) +- Fix missing loading spinner and loading more on scroll in Private Mentions column ([c960657](https://github.com/mastodon/mastodon/pull/24446)) +- Fix account header image missing from `/settings/profile` on narrow screens ([c960657](https://github.com/mastodon/mastodon/pull/24433)) +- Fix height of announcements not being updated when using reduced animations ([c960657](https://github.com/mastodon/mastodon/pull/24354)) +- Fix inconsistent radius in advanced interface drawer ([thislight](https://github.com/mastodon/mastodon/pull/24407)) +- Fix loading more trending posts on scroll in the advanced interface ([OmmyZhang](https://github.com/mastodon/mastodon/pull/24314)) +- Fix poll ending notification for edited polls ([c960657](https://github.com/mastodon/mastodon/pull/24311)) +- Fix max width of media in `/about` and `/privacy-policy` ([mgmn](https://github.com/mastodon/mastodon/pull/24180)) +- Fix streaming API not being usable without `DATABASE_URL` ([Gargron](https://github.com/mastodon/mastodon/pull/23960)) +- Fix external authentication not running onboarding code for new users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23458)) + ## [4.1.6] - 2023-07-31 ### Fixed diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 03e8eb1435..2b2a5d1180 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,15 +9,15 @@ module Mastodon end def minor - 1 + 2 end def patch - 6 + 0 end def flags - ENV.fetch('MASTODON_VERSION_FLAGS', '') + ENV.fetch('MASTODON_VERSION_FLAGS', '-beta1') end def suffix From b12d75ef4fdfdab53cba7ec15027cdd081c7d6fe Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 9 Aug 2023 09:39:36 +0200 Subject: [PATCH 34/71] Fix blocking subdomains of an already-blocked domain (#26392) --- .../admin/domain_blocks_controller.rb | 2 +- spec/features/admin/domain_blocks_spec.rb | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/domain_blocks_controller.rb b/app/controllers/admin/domain_blocks_controller.rb index b9691c5a3a..96c31a38fd 100644 --- a/app/controllers/admin/domain_blocks_controller.rb +++ b/app/controllers/admin/domain_blocks_controller.rb @@ -40,7 +40,7 @@ module Admin end # Allow transparently upgrading a domain block - if existing_domain_block.present? + if existing_domain_block.present? && existing_domain_block.domain == TagManager.instance.normalize_domain(@domain_block.domain.strip) @domain_block = existing_domain_block @domain_block.assign_attributes(resource_params) end diff --git a/spec/features/admin/domain_blocks_spec.rb b/spec/features/admin/domain_blocks_spec.rb index c77d604ebd..4672c1e1a9 100644 --- a/spec/features/admin/domain_blocks_spec.rb +++ b/spec/features/admin/domain_blocks_spec.rb @@ -57,6 +57,30 @@ describe 'blocking domains through the moderation interface' do end end + context 'when suspending a subdomain of an already-silenced domain' do + it 'presents a confirmation screen before suspending the domain' do + domain_block = Fabricate(:domain_block, domain: 'example.com', severity: 'silence') + + visit new_admin_domain_block_path + + fill_in 'domain_block_domain', with: 'subdomain.example.com' + select I18n.t('admin.domain_blocks.new.severity.suspend'), from: 'domain_block_severity' + click_on I18n.t('admin.domain_blocks.new.create') + + # It presents a confirmation screen + expect(page).to have_title(I18n.t('admin.domain_blocks.confirm_suspension.title', domain: 'subdomain.example.com')) + + # Confirming creates the block + click_on I18n.t('admin.domain_blocks.confirm_suspension.confirm') + + expect(DomainBlock.where(domain: 'subdomain.example.com', severity: 'suspend')).to exist + + # And leaves the previous block alone + expect(domain_block.reload.severity).to eq 'silence' + expect(domain_block.reload.domain).to eq 'example.com' + end + end + context 'when editing a domain block' do it 'presents a confirmation screen before suspending the domain' do domain_block = Fabricate(:domain_block, domain: 'example.com', severity: 'silence') From 271d384fd067722cc2b7431d26c20e006551c9b9 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 9 Aug 2023 05:26:42 -0400 Subject: [PATCH 35/71] Use migration classes in migrations where current definition conflicts with older (#26390) --- ...4407_add_shortcode_to_media_attachments.rb | 9 +++- ...304202101_add_type_to_media_attachments.rb | 17 +++++- ...024224956_migrate_account_conversations.rb | 52 +++++++++++++------ .../20181116173541_copy_account_stats.rb | 8 ++- ...17234926_fill_account_suspension_origin.rb | 9 +++- 5 files changed, 74 insertions(+), 21 deletions(-) diff --git a/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb b/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb index 5f1dd62af0..fe877d1e16 100644 --- a/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb +++ b/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb @@ -1,12 +1,19 @@ # frozen_string_literal: true class AddShortcodeToMediaAttachments < ActiveRecord::Migration[5.0] + class MigrationMediaAttachment < ApplicationRecord + self.table_name = :media_attachments + scope :local, -> { where(remote_url: '') } + end + def up add_column :media_attachments, :shortcode, :string, null: true, default: nil add_index :media_attachments, :shortcode, unique: true + MigrationMediaAttachment.reset_column_information + # Migrate old links - MediaAttachment.local.update_all('shortcode = id') + MigrationMediaAttachment.local.update_all('shortcode = id') end def down diff --git a/db/migrate/20170304202101_add_type_to_media_attachments.rb b/db/migrate/20170304202101_add_type_to_media_attachments.rb index bbf14f515a..e49d87fc74 100644 --- a/db/migrate/20170304202101_add_type_to_media_attachments.rb +++ b/db/migrate/20170304202101_add_type_to_media_attachments.rb @@ -1,11 +1,24 @@ # frozen_string_literal: true class AddTypeToMediaAttachments < ActiveRecord::Migration[5.0] + class MigrationMediaAttachment < ApplicationRecord + self.table_name = :media_attachments + enum type: [:image, :gifv, :video] + IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze + VIDEO_MIME_TYPES = ['video/webm', 'video/mp4'].freeze + end + def up add_column :media_attachments, :type, :integer, default: 0, null: false - MediaAttachment.where(file_content_type: MediaAttachment::IMAGE_MIME_TYPES).update_all(type: MediaAttachment.types[:image]) - MediaAttachment.where(file_content_type: MediaAttachment::VIDEO_MIME_TYPES).update_all(type: MediaAttachment.types[:video]) + MigrationMediaAttachment.reset_column_information + + MigrationMediaAttachment + .where(file_content_type: MigrationMediaAttachment::IMAGE_MIME_TYPES) + .update_all(type: MigrationMediaAttachment.types[:image]) + MigrationMediaAttachment + .where(file_content_type: MigrationMediaAttachment::VIDEO_MIME_TYPES) + .update_all(type: MigrationMediaAttachment.types[:video]) end def down diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb index 18f9aca97c..93ef5da615 100644 --- a/db/migrate/20181024224956_migrate_account_conversations.rb +++ b/db/migrate/20181024224956_migrate_account_conversations.rb @@ -7,9 +7,29 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] disable_ddl_transaction! - class Mention < ApplicationRecord - belongs_to :account, inverse_of: :mentions - belongs_to :status, -> { unscope(where: :deleted_at) } + class MigrationAccount < ApplicationRecord + self.table_name = :accounts + has_many :mentions, inverse_of: :account, dependent: :destroy, class_name: 'MigrationMention', foreign_key: :account_id + end + + class MigrationConversation < ApplicationRecord + self.table_name = :conversations + end + + class MigrationStatus < ApplicationRecord + self.table_name = :statuses + belongs_to :account, class_name: 'MigrationAccount' + has_many :mentions, dependent: :destroy, inverse_of: :status, class_name: 'MigrationMention', foreign_key: :status_id + scope :local, -> { where(local: true).or(where(uri: nil)) } + enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility + has_many :active_mentions, -> { active }, class_name: 'MigrationMention', inverse_of: :status, foreign_key: :status_id + end + + class MigrationMention < ApplicationRecord + self.table_name = :mentions + belongs_to :account, inverse_of: :mentions, class_name: 'MigrationAccount' + belongs_to :status, -> { unscope(where: :deleted_at) }, class_name: 'MigrationStatus' + scope :active, -> { where(silent: false) } delegate( :username, @@ -19,22 +39,24 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] ) end - class Notification < ApplicationRecord - belongs_to :account, optional: true + class MigrationNotification < ApplicationRecord + self.table_name = :notifications + belongs_to :account, optional: true, class_name: 'MigrationAccount' belongs_to :activity, polymorphic: true, optional: true - belongs_to :status, foreign_key: 'activity_id', optional: true - belongs_to :mention, foreign_key: 'activity_id', optional: true + belongs_to :status, foreign_key: 'activity_id', optional: true, class_name: 'MigrationStatus' + belongs_to :mention, foreign_key: 'activity_id', optional: true, class_name: 'MigrationMention' def target_status mention&.status end end - class AccountConversation < ApplicationRecord - belongs_to :account - belongs_to :conversation - belongs_to :last_status, -> { unscope(where: :deleted_at) }, class_name: 'Status' + class MigrationAccountConversation < ApplicationRecord + self.table_name = :account_conversations + belongs_to :account, class_name: 'MigrationAccount' + belongs_to :conversation, class_name: 'MigrationConversation' + belongs_to :last_status, -> { unscope(where: :deleted_at) }, class_name: 'MigrationStatus' before_validation :set_last_status @@ -74,7 +96,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] last_time = Time.zone.now local_direct_statuses.includes(:account, mentions: :account).find_each do |status| - AccountConversation.add_status(status.account, status) + MigrationAccountConversation.add_status(status.account, status) migrated += 1 if Time.zone.now - last_time > 1 @@ -84,7 +106,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] end notifications_about_direct_statuses.includes(:account, mention: { status: [:account, mentions: :account] }).find_each do |notification| - AccountConversation.add_status(notification.account, notification.target_status) + MigrationAccountConversation.add_status(notification.account, notification.target_status) migrated += 1 if Time.zone.now - last_time > 1 @@ -103,10 +125,10 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] end def local_direct_statuses - Status.unscoped.local.where(visibility: :direct) + MigrationStatus.unscoped.local.where(visibility: :direct) end def notifications_about_direct_statuses - Notification.joins('INNER JOIN mentions ON mentions.id = notifications.activity_id INNER JOIN statuses ON statuses.id = mentions.status_id').where(activity_type: 'Mention', statuses: { visibility: :direct }) + MigrationNotification.joins('INNER JOIN mentions ON mentions.id = notifications.activity_id INNER JOIN statuses ON statuses.id = mentions.status_id').where(activity_type: 'Mention', statuses: { visibility: :direct }) end end diff --git a/db/migrate/20181116173541_copy_account_stats.rb b/db/migrate/20181116173541_copy_account_stats.rb index 30d07764ef..9070200fee 100644 --- a/db/migrate/20181116173541_copy_account_stats.rb +++ b/db/migrate/20181116173541_copy_account_stats.rb @@ -3,6 +3,10 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] disable_ddl_transaction! + class MigrationAccount < ApplicationRecord + self.table_name = :accounts + end + def up safety_assured do if supports_upsert? @@ -27,7 +31,7 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] def up_fast say 'Upsert is available, importing counters using the fast method' - Account.unscoped.select('id').find_in_batches(batch_size: 5_000) do |accounts| + MigrationAccount.unscoped.select('id').find_in_batches(batch_size: 5_000) do |accounts| execute <<-SQL.squish INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) SELECT id, statuses_count, following_count, followers_count, created_at, updated_at @@ -44,7 +48,7 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] # We cannot use bulk INSERT or overarching transactions here because of possible # uniqueness violations that we need to skip over - Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account| + MigrationAccount.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account| params = [account.id, account[:statuses_count], account[:following_count], account[:followers_count], account.created_at, account.updated_at] exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params) rescue ActiveRecord::RecordNotUnique diff --git a/db/post_migrate/20201017234926_fill_account_suspension_origin.rb b/db/post_migrate/20201017234926_fill_account_suspension_origin.rb index ab7407d79e..b00f9df533 100644 --- a/db/post_migrate/20201017234926_fill_account_suspension_origin.rb +++ b/db/post_migrate/20201017234926_fill_account_suspension_origin.rb @@ -3,8 +3,15 @@ class FillAccountSuspensionOrigin < ActiveRecord::Migration[5.2] disable_ddl_transaction! + class MigrationAccount < ApplicationRecord + self.table_name = :accounts + scope :suspended, -> { where.not(suspended_at: nil) } + enum suspension_origin: { local: 0, remote: 1 }, _prefix: true + end + def up - Account.suspended.where(suspension_origin: nil).in_batches.update_all(suspension_origin: :local) + MigrationAccount.reset_column_information + MigrationAccount.suspended.where(suspension_origin: nil).in_batches.update_all(suspension_origin: :local) end def down; end From 2c88364222629cf61712d4c110fe1b7661f2921f Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 9 Aug 2023 05:26:56 -0400 Subject: [PATCH 36/71] Restore console behavior in `test` env (#26401) --- spec/{fabricators => fabrication}/fabricators_spec.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename spec/{fabricators => fabrication}/fabricators_spec.rb (100%) diff --git a/spec/fabricators/fabricators_spec.rb b/spec/fabrication/fabricators_spec.rb similarity index 100% rename from spec/fabricators/fabricators_spec.rb rename to spec/fabrication/fabricators_spec.rb From 405f141fe0c5ad3aa45643500f91be2b1d539554 Mon Sep 17 00:00:00 2001 From: Foritus Date: Wed, 9 Aug 2023 10:58:46 +0100 Subject: [PATCH 37/71] Change: Block GPTBot (#26396) --- public/robots.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/robots.txt b/public/robots.txt index 771bf2160b..6672eeba1f 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,5 +1,8 @@ # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file +User-agent: GPTBot +Disallow: / + User-agent: * Disallow: /media_proxy/ Disallow: /interact/ From d9a9323968f614d0bad59ebd759086aad6f2b402 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 9 Aug 2023 07:15:04 -0400 Subject: [PATCH 38/71] Avoid connecting to a running ES instance in ES search check spec (#26413) --- .../admin/system_check/elasticsearch_check_spec.rb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/spec/lib/admin/system_check/elasticsearch_check_spec.rb b/spec/lib/admin/system_check/elasticsearch_check_spec.rb index 1ffac89ee4..4982159269 100644 --- a/spec/lib/admin/system_check/elasticsearch_check_spec.rb +++ b/spec/lib/admin/system_check/elasticsearch_check_spec.rb @@ -49,11 +49,7 @@ describe Admin::SystemCheck::ElasticsearchCheck do end context 'when running version is missing' do - before do - client = instance_double(Elasticsearch::Transport::Client) - allow(client).to receive(:info).and_raise(Elasticsearch::Transport::Transport::Error) - allow(Chewy).to receive(:client).and_return(client) - end + before { stub_elasticsearch_error } it 'returns false' do expect(check.pass?).to be false @@ -86,6 +82,8 @@ describe Admin::SystemCheck::ElasticsearchCheck do end context 'when running version is missing' do + before { stub_elasticsearch_error } + it 'sends class name symbol to message instance' do allow(Admin::SystemCheck::Message).to receive(:new) .with(:elasticsearch_running_check) @@ -97,4 +95,10 @@ describe Admin::SystemCheck::ElasticsearchCheck do end end end + + def stub_elasticsearch_error + client = instance_double(Elasticsearch::Transport::Client) + allow(client).to receive(:info).and_raise(Elasticsearch::Transport::Transport::Error) + allow(Chewy).to receive(:client).and_return(client) + end end From 4caa9f0e69f922ce70af50d695cc84a7f551534f Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 9 Aug 2023 16:32:40 +0200 Subject: [PATCH 39/71] Change the hashtag column to not display the hashtag header on pinned columns (#26416) --- app/javascript/mastodon/features/hashtag_timeline/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.jsx b/app/javascript/mastodon/features/hashtag_timeline/index.jsx index d00890cb37..7079f55e92 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.jsx +++ b/app/javascript/mastodon/features/hashtag_timeline/index.jsx @@ -203,7 +203,7 @@ class HashtagTimeline extends PureComponent { } + prepend={pinned ? null : } alwaysPrepend trackScroll={!pinned} scrollKey={`hashtag_timeline-${columnId}`} From 59678c6d5de7fc51aa4eeb6085a3deeea89f32ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 22:19:12 +0200 Subject: [PATCH 40/71] Update dependency sass to v1.64.2 (#26315) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index e72012e065..c5f03062fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6660,7 +6660,12 @@ immutable@^3.8.2: resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== -immutable@^4.0.0, immutable@^4.0.0-rc.1, immutable@^4.3.0: +immutable@^4.0.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.2.tgz#f89d910f8dfb6e15c03b2cae2faaf8c1f66455fe" + integrity sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA== + +immutable@^4.0.0-rc.1, immutable@^4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.1.tgz#17988b356097ab0719e2f741d56f3ec6c317f9dc" integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A== @@ -10564,9 +10569,9 @@ sass-loader@^10.2.0: semver "^7.3.2" sass@^1.62.1: - version "1.64.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf" - integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ== + version "1.64.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.2.tgz#0d9805ad6acf31c59c3acc725fcfb91b7fcc6909" + integrity sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 26fa4a6e82024eaec20b5bae7c2defcceed7a0a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 22:21:41 +0200 Subject: [PATCH 41/71] Update eslint (non-major) (#26323) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 363 ++++++++++++++++++++++++++++----------------------- 2 files changed, 205 insertions(+), 162 deletions(-) diff --git a/package.json b/package.json index 76ece5f15e..147460a100 100644 --- a/package.json +++ b/package.json @@ -192,12 +192,12 @@ "eslint-config-prettier": "^8.8.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-formatjs": "^4.10.1", - "eslint-plugin-import": "~2.27.5", + "eslint-plugin-import": "~2.28.0", "eslint-plugin-jsdoc": "^46.1.0", "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-promise": "~6.1.1", - "eslint-plugin-react": "~7.32.2", + "eslint-plugin-react": "~7.33.0", "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.3", "jest": "^29.5.0", diff --git a/yarn.lock b/yarn.lock index c5f03062fe..629eee40c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@adobe/css-tools@^4.0.1": version "4.2.0" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" @@ -1245,35 +1250,35 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== -"@es-joy/jsdoccomment@~0.39.4": - version "0.39.4" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz#6b8a62e9b3077027837728818d3c4389a898b392" - integrity sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg== +"@es-joy/jsdoccomment@~0.40.1": + version "0.40.1" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz#13acd77fb372ed1c83b7355edd865a3b370c9ec4" + integrity sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg== dependencies: - comment-parser "1.3.1" + comment-parser "1.4.0" esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== +"@eslint/eslintrc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" + integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.2" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1281,10 +1286,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== +"@eslint/js@^8.46.0": + version "8.46.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" + integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== "@floating-ui/core@^1.3.1": version "1.3.1" @@ -2232,7 +2237,7 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": version "7.0.12" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== @@ -2482,7 +2487,7 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== -"@types/semver@^7.3.12": +"@types/semver@^7.5.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== @@ -2591,50 +2596,49 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.0.0.tgz#19ff4f1cab8d6f8c2c1825150f7a840bc5d9bdc4" - integrity sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A== + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz#e751e148aab7ccaf8a7bfd370f7ce9e6bdd1f3f4" + integrity sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A== dependencies: - "@eslint-community/regexpp" "^4.5.0" - "@typescript-eslint/scope-manager" "6.0.0" - "@typescript-eslint/type-utils" "6.0.0" - "@typescript-eslint/utils" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/type-utils" "6.3.0" + "@typescript-eslint/utils" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" - grapheme-splitter "^1.0.4" graphemer "^1.4.0" ignore "^5.2.4" natural-compare "^1.4.0" natural-compare-lite "^1.4.0" - semver "^7.5.0" + semver "^7.5.4" ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.0.0.tgz#46b2600fd1f67e62fc00a28093a75f41bf7effc4" - integrity sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg== + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.3.0.tgz#359684c443f4f848db3c4f14674f544f169c8f46" + integrity sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg== dependencies: - "@typescript-eslint/scope-manager" "6.0.0" - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/typescript-estree" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.0.0.tgz#8ede47a37cb2b7ed82d329000437abd1113b5e11" - integrity sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg== +"@typescript-eslint/scope-manager@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz#6b74e338c4b88d5e1dfc1a28c570dd5cf8c86b09" + integrity sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ== dependencies: - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" -"@typescript-eslint/type-utils@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.0.0.tgz#0478d8a94f05e51da2877cc0500f1b3c27ac7e18" - integrity sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ== +"@typescript-eslint/type-utils@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz#3bf89ccd36621ddec1b7f8246afe467c67adc247" + integrity sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ== dependencies: - "@typescript-eslint/typescript-estree" "6.0.0" - "@typescript-eslint/utils" "6.0.0" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/utils" "6.3.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -2643,10 +2647,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.0.tgz#3fcdac7dbf923ec5251545acdd9f1d42d7c4fe32" integrity sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA== -"@typescript-eslint/types@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.0.0.tgz#19795f515f8decbec749c448b0b5fc76d82445a1" - integrity sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg== +"@typescript-eslint/types@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" + integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== "@typescript-eslint/typescript-estree@5.59.0": version "5.59.0" @@ -2661,32 +2665,31 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.0.0.tgz#1e09aab7320e404fb9f83027ea568ac24e372f81" - integrity sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ== +"@typescript-eslint/typescript-estree@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz#20e1e10e2f51cdb9e19a2751215cac92c003643c" + integrity sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg== dependencies: - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.5.0" + semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.0.0.tgz#27a16d0d8f2719274a39417b9782f7daa3802db0" - integrity sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ== +"@typescript-eslint/utils@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.3.0.tgz#0898c5e374372c2092ca1b979ea7ee9cc020ce84" + integrity sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q== dependencies: - "@eslint-community/eslint-utils" "^4.3.0" - "@types/json-schema" "^7.0.11" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "6.0.0" - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/typescript-estree" "6.0.0" - eslint-scope "^5.1.1" - semver "^7.5.0" + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" + semver "^7.5.4" "@typescript-eslint/visitor-keys@5.59.0": version "5.59.0" @@ -2696,12 +2699,12 @@ "@typescript-eslint/types" "5.59.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.0.0.tgz#0b49026049fbd096d2c00c5e784866bc69532a31" - integrity sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA== +"@typescript-eslint/visitor-keys@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz#8d09aa3e389ae0971426124c155ac289afbe450a" + integrity sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw== dependencies: - "@typescript-eslint/types" "6.0.0" + "@typescript-eslint/types" "6.3.0" eslint-visitor-keys "^3.4.1" "@webassemblyjs/ast@1.9.0": @@ -2907,11 +2910,16 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.8.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2937,7 +2945,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3144,6 +3152,17 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== +array.prototype.findlastindex@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" + integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" @@ -4175,10 +4194,10 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -comment-parser@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" - integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== +comment-parser@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.0.tgz#0f8c560f59698193854f12884c20c0e39a26d32c" + integrity sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw== common-tags@^1.8.0: version "1.8.2" @@ -5323,9 +5342,9 @@ escodegen@^2.0.0: source-map "~0.6.1" eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + version "8.10.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== eslint-import-resolver-node@^0.3.7: version "0.3.7" @@ -5350,7 +5369,7 @@ eslint-import-resolver-typescript@^3.5.5: is-glob "^4.0.3" synckit "^0.8.5" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== @@ -5374,40 +5393,43 @@ eslint-plugin-formatjs@^4.10.1: typescript "^4.7 || 5" unicode-emoji-utils "^1.1.1" -eslint-plugin-import@~2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== +eslint-plugin-import@~2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" + integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== dependencies: array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" array.prototype.flat "^1.3.1" array.prototype.flatmap "^1.3.1" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.11.0" + is-core-module "^2.12.1" is-glob "^4.0.3" minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + resolve "^1.22.3" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jsdoc@^46.1.0: - version "46.2.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.6.tgz#f25590d371859f20691d65b5dcd4cbe370d65564" - integrity sha512-zIaK3zbSrKuH12bP+SPybPgcHSM6MFzh3HFeaODzmsF1N8C1l8dzJ22cW1aq4g0+nayU1VMjmNf7hg0dpShLrA== + version "46.4.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.4.6.tgz#5226461eda61b5920297cbe02c3b17bc9423cf0b" + integrity sha512-z4SWYnJfOqftZI+b3RM9AtWL1vF/sLWE/LlO9yOKDof9yN2+n3zOdOJTGX/pRE/xnPsooOLG2Rq6e4d+XW3lNw== dependencies: - "@es-joy/jsdoccomment" "~0.39.4" + "@es-joy/jsdoccomment" "~0.40.1" are-docs-informative "^0.0.2" - comment-parser "1.3.1" + comment-parser "1.4.0" debug "^4.3.4" escape-string-regexp "^4.0.0" esquery "^1.5.0" is-builtin-module "^3.2.1" - semver "^7.5.1" + semver "^7.5.4" spdx-expression-parse "^3.0.1" eslint-plugin-jsx-a11y@~6.7.1: @@ -5450,10 +5472,10 @@ eslint-plugin-react-hooks@^4.6.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@~7.32.2: - version "7.32.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" - integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== +eslint-plugin-react@~7.33.0: + version "7.33.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab" + integrity sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -5468,7 +5490,7 @@ eslint-plugin-react@~7.32.2: object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.4" - semver "^6.3.0" + semver "^6.3.1" string.prototype.matchall "^4.0.8" eslint-scope@^4.0.3: @@ -5479,48 +5501,40 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" + integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== eslint@^8.41.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -5530,7 +5544,6 @@ eslint@^8.41.0: globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" @@ -5540,17 +5553,16 @@ eslint@^8.41.0: lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" @@ -5781,7 +5793,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.12: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -5792,6 +5804,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-glob@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" @@ -6314,11 +6337,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" @@ -6670,7 +6688,7 @@ immutable@^4.0.0-rc.1, immutable@^4.3.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.1.tgz#17988b356097ab0719e2f741d56f3ec6c317f9dc" integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -6905,6 +6923,13 @@ is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: dependencies: has "^1.0.3" +is-core-module@^2.12.1, is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -8794,6 +8819,16 @@ object.getownpropertydescriptors@^2.1.0: es-abstract "^1.21.2" safe-array-concat "^1.0.0" +object.groupby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" + integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + get-intrinsic "^1.2.1" + object.hasown@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" @@ -8895,17 +8930,17 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" os-browserify@^0.3.0: version "0.3.0" @@ -10407,6 +10442,15 @@ resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.22.3: + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.4: version "2.0.0-next.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" @@ -10658,14 +10702,14 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.1: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== dependencies: lru-cache "^6.0.0" -semver@^7.5.0: +semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -11266,7 +11310,6 @@ stringz@^2.1.0: char-regex "^1.0.2" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - name strip-ansi-cjs version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11338,7 +11381,7 @@ strip-indent@^4.0.0: dependencies: min-indent "^1.0.1" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -11804,7 +11847,7 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== @@ -12580,7 +12623,7 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== From 8cbf4a5296f664c970f1236490aff7235bf7c0be Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:47:42 +0200 Subject: [PATCH 42/71] New Crowdin Translations (automated) (#26373) Co-authored-by: GitHub Actions Co-authored-by: Claire --- app/javascript/mastodon/locales/ar.json | 23 ++- app/javascript/mastodon/locales/be.json | 3 + app/javascript/mastodon/locales/ca.json | 3 + app/javascript/mastodon/locales/da.json | 3 + app/javascript/mastodon/locales/de.json | 5 +- app/javascript/mastodon/locales/en-GB.json | 3 +- app/javascript/mastodon/locales/es-AR.json | 3 + app/javascript/mastodon/locales/es-MX.json | 3 + app/javascript/mastodon/locales/es.json | 3 + app/javascript/mastodon/locales/et.json | 3 + app/javascript/mastodon/locales/eu.json | 3 + app/javascript/mastodon/locales/fi.json | 9 +- app/javascript/mastodon/locales/fo.json | 3 + app/javascript/mastodon/locales/fr-QC.json | 3 + app/javascript/mastodon/locales/fr.json | 3 + app/javascript/mastodon/locales/gd.json | 34 ++++- app/javascript/mastodon/locales/gl.json | 3 + app/javascript/mastodon/locales/he.json | 3 + app/javascript/mastodon/locales/hu.json | 3 + app/javascript/mastodon/locales/is.json | 5 + app/javascript/mastodon/locales/it.json | 3 + app/javascript/mastodon/locales/ja.json | 3 + app/javascript/mastodon/locales/ko.json | 11 +- app/javascript/mastodon/locales/ms.json | 24 ++++ app/javascript/mastodon/locales/nl.json | 3 + app/javascript/mastodon/locales/nn.json | 3 + app/javascript/mastodon/locales/no.json | 9 ++ app/javascript/mastodon/locales/pl.json | 3 + app/javascript/mastodon/locales/pt-PT.json | 4 + app/javascript/mastodon/locales/sr-Latn.json | 3 + app/javascript/mastodon/locales/sr.json | 3 + app/javascript/mastodon/locales/sv.json | 17 ++- app/javascript/mastodon/locales/th.json | 3 + app/javascript/mastodon/locales/tr.json | 3 + app/javascript/mastodon/locales/uk.json | 3 + app/javascript/mastodon/locales/vi.json | 29 ++-- app/javascript/mastodon/locales/zh-TW.json | 7 +- config/locales/activerecord.ms.yml | 4 + config/locales/ar.yml | 13 ++ config/locales/de.yml | 76 +++++----- config/locales/devise.de.yml | 8 +- config/locales/devise.ms.yml | 22 +++ config/locales/doorkeeper.ar.yml | 1 + config/locales/doorkeeper.gd.yml | 89 ++++++------ config/locales/doorkeeper.ms.yml | 144 +++++++++++++++++++ config/locales/gd.yml | 5 + config/locales/ms.yml | 79 ++++++++++ config/locales/nn.yml | 16 +-- config/locales/simple_form.de.yml | 14 +- config/locales/simple_form.ms.yml | 4 + config/locales/simple_form.vi.yml | 2 +- config/locales/vi.yml | 10 +- 52 files changed, 600 insertions(+), 139 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index efc932f4dc..035ba3f68f 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -13,7 +13,7 @@ "about.rules": "قواعد الخادم", "account.account_note_header": "مُلاحظة", "account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة", - "account.badges.bot": "بوت", + "account.badges.bot": "آلي", "account.badges.group": "فريق", "account.block": "احجب @{name}", "account.block_domain": "حظر اسم النِّطاق {domain}", @@ -181,6 +181,7 @@ "confirmations.mute.explanation": "هذا سيخفي المنشورات عنهم وتلك المشار فيها إليهم، لكنه سيسمح لهم برؤية منشوراتك ومتابعتك.", "confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟", "confirmations.redraft.confirm": "إزالة وإعادة الصياغة", + "confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.", "confirmations.reply.confirm": "رد", "confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟", "confirmations.unfollow.confirm": "إلغاء المتابعة", @@ -228,6 +229,8 @@ "empty_column.direct": "لم يتم الإشارة إليك بشكل خاص بعد. عندما تتلقى أو ترسل إشارة، سيتم عرضها هنا.", "empty_column.domain_blocks": "ليس هناك نطاقات تم حجبها بعد.", "empty_column.explore_statuses": "ليس هناك ما هو متداوَل الآن. عد في وقت لاحق!", + "empty_column.favourited_statuses": "ليس لديك أية منشورات مفضلة بعد. عندما ستقوم بالإعجاب بواحدة، ستظهر هنا.", + "empty_column.favourites": "لم يقم أي أحد بالإعجاب بهذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "empty_column.follow_requests": "ليس عندك أي طلب للمتابعة بعد. سوف تظهر طلباتك هنا إن قمت بتلقي البعض منها.", "empty_column.followed_tags": "لم تُتابع أي وسم بعدُ. ستظهر الوسوم هنا حينما تفعل ذلك.", "empty_column.hashtag": "ليس هناك بعدُ أي محتوى ذو علاقة بهذا الوسم.", @@ -298,14 +301,21 @@ "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "اعرض الترقيات", "home.column_settings.show_replies": "اعرض الردود", + "home.explore_prompt.body": "سوف يحتوي خيط أخبارك الرئيسي على مزيج من المشاركات من الوسوم التي اخترت متابعتها، والأشخاص الذين اخترت متابعتهم، والمنشورات التي قاموا بدعمها. ومع ذلك، إن كانت تبدو الأمور هادئة جدا، ماذا لو:", "home.explore_prompt.title": "هذا مقرك الرئيسي داخل ماستدون.", "home.hide_announcements": "إخفاء الإعلانات", "home.show_announcements": "إظهار الإعلانات", + "interaction_modal.description.favourite": "بفضل حساب على ماستدون، يمكنك إضافة هذا المنشور إلى مفضلتك لإبلاغ الناشر عن تقديرك وكذا للاحتفاظ بالمنشور إلى وقت لاحق.", "interaction_modal.description.follow": "مع حساب في ماستدون، يمكنك متابعة {name} وتلقي منشوراته على خيطك الرئيس.", "interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور ومشاركته مع مُتابِعيك.", "interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذا المنشور.", + "interaction_modal.login.action": "خذني إلى خادمي", + "interaction_modal.login.prompt": "نطاق الخادم الخاص بك، على سبيل المثال mastodon.social", + "interaction_modal.no_account_yet": "ليست على ماستدون بعد؟", "interaction_modal.on_another_server": "على خادم مختلف", "interaction_modal.on_this_server": "على هذا الخادم", + "interaction_modal.sign_in": "لم تقم بتسجيل الدخول إلى هذا الخادم. أين هو مستضاف حسابك؟", + "interaction_modal.title.favourite": "إضافة منشور {name} إلى المفضلة", "interaction_modal.title.follow": "اتبع {name}", "interaction_modal.title.reblog": "مشاركة منشور {name}", "interaction_modal.title.reply": "الرد على منشور {name}", @@ -321,6 +331,8 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "للانتقال إلى أسفل القائمة", "keyboard_shortcuts.enter": "لفتح المنشور", + "keyboard_shortcuts.favourite": "لإضافة المنشور إلى المفضلة", + "keyboard_shortcuts.favourites": "لفتح قائمة المفضلات", "keyboard_shortcuts.federated": "لفتح الخيط الزمني الفديرالي", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "لفتح الخيط الرئيسي", @@ -351,6 +363,7 @@ "lightbox.previous": "العودة", "limited_account_hint.action": "إظهار الملف التعريفي على أي حال", "limited_account_hint.title": "تم إخفاء هذا الملف الشخصي من قبل مشرفي {domain}.", + "link_preview.author": "مِن {name}", "lists.account.add": "أضف إلى القائمة", "lists.account.remove": "احذف من القائمة", "lists.delete": "احذف القائمة", @@ -373,6 +386,7 @@ "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", "mute_modal.indefinite": "إلى أجل غير مسمى", "navigation_bar.about": "عن", + "navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة", "navigation_bar.blocks": "الحسابات المحجوبة", "navigation_bar.bookmarks": "الفواصل المرجعية", "navigation_bar.community_timeline": "الخيط المحلي", @@ -382,6 +396,7 @@ "navigation_bar.domain_blocks": "النطاقات المحظورة", "navigation_bar.edit_profile": "عدّل الملف التعريفي", "navigation_bar.explore": "استكشف", + "navigation_bar.favourites": "المفضلة", "navigation_bar.filters": "الكلمات المكتومة", "navigation_bar.follow_requests": "طلبات المتابعة", "navigation_bar.followed_tags": "الوسوم المتابَعة", @@ -398,6 +413,7 @@ "not_signed_in_indicator.not_signed_in": "تحتاج إلى تسجيل الدخول للوصول إلى هذا المصدر.", "notification.admin.report": "{name} أبلغ عن {target}", "notification.admin.sign_up": "أنشأ {name} حسابًا", + "notification.favourite": "أضاف {name} منشورك إلى مفضلته", "notification.follow": "{name} يتابعك", "notification.follow_request": "لقد طلب {name} متابعتك", "notification.mention": "{name} ذكرك", @@ -411,6 +427,7 @@ "notifications.column_settings.admin.report": "التقارير الجديدة:", "notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:", "notifications.column_settings.alert": "إشعارات سطح المكتب", + "notifications.column_settings.favourite": "المفضلة:", "notifications.column_settings.filter_bar.advanced": "اعرض كافة الفئات", "notifications.column_settings.filter_bar.category": "شريط الفلترة السريعة", "notifications.column_settings.filter_bar.show_bar": "إظهار شريط التصفية", @@ -428,6 +445,7 @@ "notifications.column_settings.update": "التعديلات:", "notifications.filter.all": "الكل", "notifications.filter.boosts": "الترقيات", + "notifications.filter.favourites": "المفضلة", "notifications.filter.follows": "يتابِع", "notifications.filter.mentions": "الإشارات", "notifications.filter.polls": "نتائج استطلاع الرأي", @@ -578,6 +596,8 @@ "server_banner.server_stats": "إحصائيات الخادم:", "sign_in_banner.create_account": "أنشئ حسابًا", "sign_in_banner.sign_in": "تسجيل الدخول", + "sign_in_banner.sso_redirect": "تسجيل الدخول أو إنشاء حساب", + "sign_in_banner.text": "قم بالولوج بحسابك لمتابعة الصفحات الشخصية أو الوسوم، أو لإضافة المنشورات إلى المفضلة ومشاركتها والرد عليها أو التفاعل بواسطة حسابك المتواجد على خادم مختلف.", "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", "status.admin_domain": "فتح واجهة الإشراف لـ {domain}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", @@ -594,6 +614,7 @@ "status.edited": "عُدّل في {date}", "status.edited_x_times": "عُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}", "status.embed": "إدماج", + "status.favourite": "فضّل", "status.filter": "تصفية هذه الرسالة", "status.filtered": "مُصفّى", "status.hide": "إخفاء المنشور", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 178bd7a89e..c94ebe0d15 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Любы", "hashtag.column_settings.tag_mode.none": "Нічога з пералічанага", "hashtag.column_settings.tag_toggle": "Уключыць дадатковыя тэгі для гэтай калонкі", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} удзельнік} few {{counter} удзельніка} many {{counter} удзельнікаў} other {{counter} удзельніка}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}} за сёння", "hashtag.follow": "Падпісацца на хэштэг", "hashtag.unfollow": "Адпісацца ад хэштэга", "home.actions.go_to_explore": "Паглядзіце, што ў трэндзе", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index adf29f6fd0..5f42d42f98 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Qualsevol d’aquests", "hashtag.column_settings.tag_mode.none": "Cap d’aquests", "hashtag.column_settings.tag_toggle": "Inclou etiquetes addicionals per a aquesta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} tut} other {{counter} tuts}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} tut} other {{counter} tuts}} avui", "hashtag.follow": "Segueix l'etiqueta", "hashtag.unfollow": "Deixa de seguir l'etiqueta", "home.actions.go_to_explore": "Mira què és tendència", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 3dbde03306..20c8bd6fdf 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Nogle af disse", "hashtag.column_settings.tag_mode.none": "Ingen af disse", "hashtag.column_settings.tag_toggle": "Inkludér ekstra tags for denne kolonne", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltager} other {{counter} deltagere}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag", "hashtag.follow": "Følg hashtag", "hashtag.unfollow": "Stop med at følge hashtag", "home.actions.go_to_explore": "Se, hvad som trender", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 9b40964f22..93183bdd7e 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Eines von diesen", "hashtag.column_settings.tag_mode.none": "Keines von diesen", "hashtag.column_settings.tag_toggle": "Zusätzliche Hashtags dieser Spalte hinzufügen", + "hashtag.counter_by_accounts": "{count, plural, one{{counter} Beteiligte*r} other{{counter} Beteiligte}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}} heute", "hashtag.follow": "Hashtag folgen", "hashtag.unfollow": "Hashtag entfolgen", "home.actions.go_to_explore": "Trends ansehen", @@ -547,7 +550,7 @@ "report.reasons.dislike": "Das gefällt mir nicht", "report.reasons.dislike_description": "Das ist etwas, das du nicht sehen möchtest", "report.reasons.legal": "Das ist illegal", - "report.reasons.legal_description": "Du bist davon überzeugt, dass es gegen die Gesetze deines Landes oder des Landes des Servers verstößt", + "report.reasons.legal_description": "Du glaubst, dass es gegen die Gesetze deines Landes oder des Landes des Servers verstößt", "report.reasons.other": "Es ist etwas anderes", "report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien", "report.reasons.spam": "Das ist Spam", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 1021a22812..0566e164d7 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -235,7 +235,7 @@ "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", "empty_column.hashtag": "There is nothing in this hashtag yet.", - "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.home": "Your home timeline is empty! Follow more people to fill it up.", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", "empty_column.mutes": "You haven't muted any users yet.", @@ -295,6 +295,7 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} Following} other {{counter} Following}}", "hashtag.follow": "Follow hashtag", "hashtag.unfollow": "Unfollow hashtag", "home.actions.go_to_explore": "See what's trending", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 8f2a9c0cdb..d894bfe0c6 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estas", "hashtag.column_settings.tag_mode.none": "Ninguna de estas", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales para esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}} hoy", "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "home.actions.go_to_explore": "Mirá qué está en tendencia", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index f59862245f..015cf5a058 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Incluye etiquetas adicionales para esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy", "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "home.actions.go_to_explore": "Ver tendencias", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 3e4e06474f..cb1bcb9896 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales en esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy", "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "home.actions.go_to_explore": "Ver tendencias", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 86ef7f103b..b94787ea18 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Mõni neist", "hashtag.column_settings.tag_mode.none": "Mitte ükski neist", "hashtag.column_settings.tag_toggle": "Kaasa lisamärked selle tulba jaoks", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} osalejaga} other {{counter} osalejaga}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} postitusega} other {{counter} postitusega}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} postitust} other {{counter} postitust}} täna", "hashtag.follow": "Jälgi silti", "hashtag.unfollow": "Lõpeta sildi jälgimine", "home.actions.go_to_explore": "Vaata, mis on populaarne", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 140913f3d6..d5a7343bae 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -292,6 +292,9 @@ "hashtag.column_settings.tag_mode.any": "Hautako edozein", "hashtag.column_settings.tag_mode.none": "Hauetako bat ere ez", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} parte-hartzaile} other {{counter} parte-hartzaile}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}} gaur", "hashtag.follow": "Jarraitu traola", "hashtag.unfollow": "Utzi traola jarraitzeari", "home.actions.go_to_explore": "Ikusi zer dagoen pil-pilean", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 6678a41e8b..2a09c2344d 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -81,7 +81,7 @@ "admin.impact_report.instance_follows": "Seuraajat, jotka heidän käyttäjänsä menettäisivät", "admin.impact_report.title": "Vaikutusten yhteenveto", "alert.rate_limited.message": "Yritä uudestaan {retry_time, time, medium} jälkeen.", - "alert.rate_limited.title": "Määrää rajoitettu", + "alert.rate_limited.title": "Pyyntömäärää rajoitettu", "alert.unexpected.message": "Tapahtui odottamaton virhe.", "alert.unexpected.title": "Hups!", "announcement.announcement": "Ilmoitus", @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Mikä tahansa näistä", "hashtag.column_settings.tag_mode.none": "Ei mitään näistä", "hashtag.column_settings.tag_toggle": "Sisällytä lisätunnisteet tähän sarakkeeseen", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} osallistuja} other {{counter} osallistujaa}}", + "hashtag.counter_by_uses": "{count, plural, one{{counter} julkaisu} other {{counter} julkaisua}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}} tänään", "hashtag.follow": "Seuraa aihetunnistetta", "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen", "home.actions.go_to_explore": "Katso, mikä on suosittua", @@ -420,7 +423,7 @@ "notification.follow_request": "{name} haluaa seurata sinua", "notification.mention": "{name} mainitsi sinut", "notification.own_poll": "Äänestyksesi on päättynyt", - "notification.poll": "Kysely, johon osallistuit, on päättynyt", + "notification.poll": "Äänestys, johon osallistuit, on päättynyt", "notification.reblog": "{name} tehosti viestiäsi", "notification.status": "{name} julkaisi juuri viestin", "notification.update": "{name} muokkasi viestiä", @@ -598,7 +601,7 @@ "server_banner.server_stats": "Palvelimen tilastot:", "sign_in_banner.create_account": "Luo tili", "sign_in_banner.sign_in": "Kirjaudu", - "sign_in_banner.sso_redirect": "Kirjaudu sisään tai rekisteröidy", + "sign_in_banner.sso_redirect": "Kirjaudu tai rekisteröidy", "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, merkitäksesi julkaisuja suosikeiksi, julkaistaksesi sekä vastataksesi julkaisuihin. Voit vuorovaikuttaa myös eri palvelimella sijaitsevalta tililtäsi.", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", "status.admin_domain": "Avaa palvelimen {domain} moderointitoiminnot", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 7a861d8c02..6e4ff2d9e0 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Okkurt av hesum", "hashtag.column_settings.tag_mode.none": "Einki av hesum", "hashtag.column_settings.tag_toggle": "Legg frámerki afturat hesum teigi", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} luttakari} other {{counter} luttakarar}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} postur} other {{counter} postar}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} postur} other {{counter} postar}} í dag", "hashtag.follow": "Fylg frámerki", "hashtag.unfollow": "Gevst at fylgja frámerki", "home.actions.go_to_explore": "Sí rákið", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index a3627b5361..2278818b12 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Au moins un de ceux-ci", "hashtag.column_settings.tag_mode.none": "Aucun de ceux-ci", "hashtag.column_settings.tag_toggle": "Inclure des hashtags additionnels pour cette colonne", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourd’hui", "hashtag.follow": "Suivre ce hashtag", "hashtag.unfollow": "Ne plus suivre ce hashtag", "home.actions.go_to_explore": "Voir les tendances", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 4757621d26..157d984191 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Au moins un de ces éléments", "hashtag.column_settings.tag_mode.none": "Aucun de ces éléments", "hashtag.column_settings.tag_toggle": "Inclure des hashtags additionnels pour cette colonne", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourd’hui", "hashtag.follow": "Suivre le hashtag", "hashtag.unfollow": "Ne plus suivre le hashtag", "home.actions.go_to_explore": "Voir les tendances", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index f580caa966..3f088b2ea7 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -113,6 +113,7 @@ "column.direct": "Iomraidhean prìobhaideach", "column.directory": "Rùraich sna pròifilean", "column.domain_blocks": "Àrainnean bacte", + "column.favourites": "Annsachdan", "column.firehose": "Inbhirean beòtha", "column.follow_requests": "Iarrtasan leantainn", "column.home": "Dachaigh", @@ -134,6 +135,8 @@ "community.column_settings.remote_only": "Feadhainn chèin a-mhàin", "compose.language.change": "Atharraich an cànan", "compose.language.search": "Lorg cànan…", + "compose.published.body": "Chaidh am post fhoillseachadh.", + "compose.published.open": "Fosgail", "compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh", "compose_form.encryption_warning": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh dìomhair idir le Mastodon.", "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais o nach eil e poblach. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.", @@ -178,6 +181,7 @@ "confirmations.mute.explanation": "Cuiridh seo na postaichean uapa ’s na postaichean a bheir iomradh orra am falach ach chì iad-san na postaichean agad fhathast is faodaidh iad ’gad leantainn.", "confirmations.mute.message": "A bheil thu cinnteach gu bheil thu airson {name} a mhùchadh?", "confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr", + "confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail ’nan dìlleachdanan.", "confirmations.reply.confirm": "Freagair", "confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.unfollow.confirm": "Na lean tuilleadh", @@ -197,7 +201,8 @@ "dismissable_banner.community_timeline": "Seo na postaichean poblach as ùire o dhaoine aig a bheil cunntas air {domain}.", "dismissable_banner.dismiss": "Leig seachad", "dismissable_banner.explore_links": "Seo na naidheachdan air a bhithear a’ bruidhinn an-dràsta fhèin air an fhrithealaiche seo is frithealaichean eile dhen lìonra sgaoilte.", - "dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a’ fàs an-dràsta fhèin air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte.", + "dismissable_banner.explore_statuses": "Tha fèill air na postaichean seo a’ fàs an-diugh thar an lìona shòisealta. Gheibh postaichean nas ùire le barrachd brosnaichean is annsachdan rangachadh nas àirde.", + "dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a’ fàs an-diugh air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte. Gheibh tagaichean hais a tha gan cleachdadh le daoine eadar-dhealaichte rangachadh nas àirde.", "dismissable_banner.public_timeline": "Seo na postaichean poblach as ùire o dhaoine air an lìonra sòisealta tha ’gan leantainn le daoine air {domain}.", "embed.instructions": "Leabaich am post seo san làrach-lìn agad is tu a’ dèanamh lethbhreac dhen chòd gu h-ìosal.", "embed.preview": "Seo an coltas a bhios air:", @@ -225,6 +230,8 @@ "empty_column.direct": "Chan eil iomradh prìobhaideach agad fhathast. Nuair a chuireas no a gheibh thu tè, nochdaidh i an-seo.", "empty_column.domain_blocks": "Cha deach àrainn sam bith a bhacadh fhathast.", "empty_column.explore_statuses": "Chan eil dad a’ treandadh an-dràsta fhèin. Thoir sùil a-rithist an ceann greis!", + "empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.", + "empty_column.favourites": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.", "empty_column.follow_requests": "Chan eil iarrtas leantainn agad fhathast. Nuair a gheibh thu fear, nochdaidh e an-seo.", "empty_column.followed_tags": "Cha do lean thu taga hais sam bith fhathast. Nuair a leanas tu, nochdaidh iad an-seo.", "empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.", @@ -288,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Gin sam bith dhiubh", "hashtag.column_settings.tag_mode.none": "Às aonais gin sam bith dhiubh", "hashtag.column_settings.tag_toggle": "Gabh a-steach barrachd tagaichean sa cholbh seo", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} chom-pàirtiche} two {{counter} chom-pàirtiche} few {{counter} com-pàirtiche} other {{counter} com-pàirtiche}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} phost} two {{counter} phost} few { postaichean} other { post}} an-diugh", "hashtag.follow": "Lean an taga hais", "hashtag.unfollow": "Na lean an taga hais tuilleadh", "home.actions.go_to_explore": "Faic na tha a’ treandadh", @@ -295,14 +305,22 @@ "home.column_settings.basic": "Bunasach", "home.column_settings.show_reblogs": "Seall na brosnachaidhean", "home.column_settings.show_replies": "Seall na freagairtean", + "home.explore_prompt.body": "Bidh measgachadh de phostaichean o na tagaichean hais a leanas tu, na daoine a leanas tu is na postaichean a bhrosnaicheas iad air do dhachaigh. Ma tha cùisean ro shàmhach dhut, seo nas urrainn dhut a dhèanamh:", "home.explore_prompt.title": "Seo do dhachaigh am broinn Mastodon.", "home.hide_announcements": "Falaich na brathan-fios", "home.show_announcements": "Seall na brathan-fios", + "interaction_modal.description.favourite": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a chur ris na h-annsachdan airson innse dhan ùghdar gu bheil e a’ còrdadh dhut ’s a shàbhaladh do uaireigin eile.", "interaction_modal.description.follow": "Le cunntas air Mastodon, ’s urrainn dhut {name} a leantainn ach am faigh thu na postaichean aca nad dhachaigh.", "interaction_modal.description.reblog": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a bhrosnachadh gus a cho-roinneadh leis an luchd-leantainn agad fhèin.", "interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.", + "interaction_modal.login.action": "Thoir dhachaigh mi", + "interaction_modal.login.prompt": "Àrainn-lìn an fhrithealaiche dachaigh agad, can ailbhean.co-shaoghal.net", + "interaction_modal.no_account_yet": "Nach eil thu air Mastodon?", "interaction_modal.on_another_server": "Air frithealaiche eile", "interaction_modal.on_this_server": "Air an frithealaiche seo", + "interaction_modal.sign_in": "Cha deach do chlàradh a-steach air an fhrithealaiche seo. Càit a bheil an cunntas agad ’ga òstadh?", + "interaction_modal.sign_in_hint": "Gliocas: Seo an làrach-lìn far an do chlàraich thu. Mur eil cuimhne agad dè bh’ ann, thoir sùil air a’ phost-d fàilteachaidh sa bhogsa a-steach agad. ’S urrainn dhut an t-ainm-cleachdaiche slàn agad a chur a-steach cuideachd! (can @mise@ ailbhean.co-shaoghal.net)", + "interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan", "interaction_modal.title.follow": "Lean {name}", "interaction_modal.title.reblog": "Brosnaich am post aig {name}", "interaction_modal.title.reply": "Freagair dhan phost aig {name}", @@ -318,6 +336,8 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Gluais sìos air an liosta", "keyboard_shortcuts.enter": "Fosgail post", + "keyboard_shortcuts.favourite": "Cuir am post ris na h-annsachdan", + "keyboard_shortcuts.favourites": "Fosgail liosta nan annsachdan", "keyboard_shortcuts.federated": "Fosgail an loidhne-ama cho-naisgte", "keyboard_shortcuts.heading": "Ath-ghoiridean a’ mheur-chlàir", "keyboard_shortcuts.home": "Fosgail loidhne-ama na dachaigh", @@ -348,6 +368,7 @@ "lightbox.previous": "Air ais", "limited_account_hint.action": "Seall a’ phròifil co-dhiù", "limited_account_hint.title": "Chaidh a’ phròifil seo fhalach le maoir {domain}.", + "link_preview.author": "Le {name}", "lists.account.add": "Cuir ris an liosta", "lists.account.remove": "Thoir air falbh on liosta", "lists.delete": "Sguab às an liosta", @@ -370,6 +391,7 @@ "mute_modal.hide_notifications": "A bheil thu airson na brathan fhalach on chleachdaiche seo?", "mute_modal.indefinite": "Gun chrìoch", "navigation_bar.about": "Mu dhèidhinn", + "navigation_bar.advanced_interface": "Fosgail san eadar-aghaidh-lìn adhartach", "navigation_bar.blocks": "Cleachdaichean bacte", "navigation_bar.bookmarks": "Comharran-lìn", "navigation_bar.community_timeline": "Loidhne-ama ionadail", @@ -379,6 +401,7 @@ "navigation_bar.domain_blocks": "Àrainnean bacte", "navigation_bar.edit_profile": "Deasaich a’ phròifil", "navigation_bar.explore": "Rùraich", + "navigation_bar.favourites": "Annsachdan", "navigation_bar.filters": "Faclan mùchte", "navigation_bar.follow_requests": "Iarrtasan leantainn", "navigation_bar.followed_tags": "Tagaichean hais ’gan leantainn", @@ -395,6 +418,7 @@ "not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.", "notification.admin.report": "Rinn {name} gearan mu {target}", "notification.admin.sign_up": "Chlàraich {name}", + "notification.favourite": "Chuir {name} am post agad ris na h-annsachdan", "notification.follow": "Tha {name} ’gad leantainn a-nis", "notification.follow_request": "Dh’iarr {name} ’gad leantainn", "notification.mention": "Thug {name} iomradh ort", @@ -408,6 +432,7 @@ "notifications.column_settings.admin.report": "Gearanan ùra:", "notifications.column_settings.admin.sign_up": "Clàraidhean ùra:", "notifications.column_settings.alert": "Brathan deasga", + "notifications.column_settings.favourite": "Annsachdan:", "notifications.column_settings.filter_bar.advanced": "Seall a h-uile roinn-seòrsa", "notifications.column_settings.filter_bar.category": "Bàr-criathraidh luath", "notifications.column_settings.filter_bar.show_bar": "Seall am bàr-criathraidh", @@ -425,6 +450,7 @@ "notifications.column_settings.update": "Deasachaidhean:", "notifications.filter.all": "Na h-uile", "notifications.filter.boosts": "Brosnachaidhean", + "notifications.filter.favourites": "Annsachdan", "notifications.filter.follows": "A’ leantainn", "notifications.filter.mentions": "Iomraidhean", "notifications.filter.polls": "Toraidhean cunntais-bheachd", @@ -575,6 +601,8 @@ "server_banner.server_stats": "Stadastaireachd an fhrithealaiche:", "sign_in_banner.create_account": "Cruthaich cunntas", "sign_in_banner.sign_in": "Clàraich a-steach", + "sign_in_banner.sso_redirect": "Clàraich a-steach no clàraich leinn", + "sign_in_banner.text": "Clàraich a-steach a leantainn phròifilean no thagaichean hais, a’ cur postaichean ris na h-annsachdan ’s ’gan co-roinneadh is freagairt dhaibh. ’S urrainn dhut gnìomh a ghabhail le cunntas o fhrithealaiche eile cuideachd.", "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", "status.admin_domain": "Fosgail eadar-aghaidh na maorsainneachd dha {domain}", "status.admin_status": "Fosgail am post seo ann an eadar-aghaidh na maorsainneachd", @@ -591,12 +619,15 @@ "status.edited": "Air a dheasachadh {date}", "status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{counter} turas} two {{counter} thuras} few {{counter} tursan} other {{counter} turas}}", "status.embed": "Leabaich", + "status.favourite": "Cuir ris na h-annsachdan", "status.filter": "Criathraich am post seo", "status.filtered": "Criathraichte", "status.hide": "Falaich am post", "status.history.created": "Chruthaich {name} {date} e", "status.history.edited": "Dheasaich {name} {date} e", "status.load_more": "Luchdaich barrachd dheth", + "status.media.open": "Dèan briogadh gus fhosgladh", + "status.media.show": "Dèan briogadh gus a shealltainn", "status.media_hidden": "Meadhan falaichte", "status.mention": "Thoir iomradh air @{name}", "status.more": "Barrachd", @@ -627,6 +658,7 @@ "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", "status.translate": "Eadar-theangaich", "status.translated_from_with": "Air eadar-theangachadh o {lang} le {provider}", + "status.uncached_media_warning": "Chan eil ro-shealladh ri fhaighinn", "status.unmute_conversation": "Dì-mhùch an còmhradh", "status.unpin": "Dì-phrìnich on phròifil", "subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh ’s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b’ e dè an cànan.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 92ad9a3384..37f22be16a 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Calquera destes", "hashtag.column_settings.tag_mode.none": "Ningún destes", "hashtag.column_settings.tag_toggle": "Incluír cancelos adicionais para esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicacións}} hoxe", "hashtag.follow": "Seguir cancelo", "hashtag.unfollow": "Deixar de seguir cancelo", "home.actions.go_to_explore": "Mira do que se está a falar", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 18324463ff..6c310c60a0 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "לפחות אחד מאלה", "hashtag.column_settings.tag_mode.none": "אף אחד מאלה", "hashtag.column_settings.tag_toggle": "כלול תגיות נוספות בטור זה", + "hashtag.counter_by_accounts": "{count, plural,one{{count} משתתף.ת}other{{count} משתתפיםות}}", + "hashtag.counter_by_uses": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}}", + "hashtag.counter_by_uses_today": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}} היום", "hashtag.follow": "מעקב אחר תגית", "hashtag.unfollow": "ביטול מעקב אחר תגית", "home.actions.go_to_explore": "הצגת מגמות", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 758f1b1e9a..4b32af595b 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Bármelyik", "hashtag.column_settings.tag_mode.none": "Egyik sem", "hashtag.column_settings.tag_toggle": "További címkék felvétele ehhez az oszlophoz", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} résztvevő} other {{counter} résztvevő}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}} ma", "hashtag.follow": "Hashtag követése", "hashtag.unfollow": "Hashtag követésének megszüntetése", "home.actions.go_to_explore": "Felkapottak megtekintése", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index edd4ac30c2..c522ff4fb4 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Hvað sem er af þessu", "hashtag.column_settings.tag_mode.none": "Ekkert af þessu", "hashtag.column_settings.tag_toggle": "Taka með viðbótarmerki fyrir þennan dálk", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} þátttakandi} other {{counter} þátttakendur}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} færsla} other {{counter} færslur}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} færsla} other {{counter} færslur}} í dag", "hashtag.follow": "Fylgjast með myllumerki", "hashtag.unfollow": "Hætta að fylgjast með myllumerki", "home.actions.go_to_explore": "Sjáðu hvað er í umræðunni", @@ -302,6 +305,7 @@ "home.column_settings.basic": "Einfalt", "home.column_settings.show_reblogs": "Sýna endurbirtingar", "home.column_settings.show_replies": "Birta svör", + "home.explore_prompt.body": "Heimastreymið þitt verður með blöndu af færslum úr myllumerkjunum sem þú hefur valið að fylgja, færslum frá fólki sem þú hefur valið að fylgja og færslum sem þau endurbirta. Ef þér finnst þetta allt of kyrrlátt, gætirðu viljað:", "home.explore_prompt.title": "Þetta er bækistöð þín innan Loðfílsins.", "home.hide_announcements": "Fela auglýsingar", "home.show_announcements": "Birta auglýsingar", @@ -315,6 +319,7 @@ "interaction_modal.on_another_server": "Á öðrum netþjóni", "interaction_modal.on_this_server": "Á þessum netþjóni", "interaction_modal.sign_in": "Þú ert ekki skráð/ur inn á þennan netþjón. Hvar er aðgangurinn þinn hýstur?", + "interaction_modal.sign_in_hint": "Ábending: Það er vefsvæðið þar sem þú skráðir þig. Ef þú manst ekki hvar, geturðu leitað að kynningarpóstinum í pósthólfinu þínu. Þú getur líka sett inn fullt notandanafn þitt (t.d. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Setja færsluna frá {name} í eftirlæti", "interaction_modal.title.follow": "Fylgjast með {name}", "interaction_modal.title.reblog": "Endurbirta færsluna frá {name}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index aedeb71785..30932946f1 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Uno o più di questi", "hashtag.column_settings.tag_mode.none": "Nessuno di questi", "hashtag.column_settings.tag_toggle": "Includi i tag aggiuntivi per questa colonna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} partecipante} other {{counter} partecipanti}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} post}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} post}} oggi", "hashtag.follow": "Segui l'hashtag", "hashtag.unfollow": "Smetti di seguire l'hashtag", "home.actions.go_to_explore": "Scopri cosa sia di tendenza", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 4a2473c430..1db0d5ff4a 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "いずれかを含む", "hashtag.column_settings.tag_mode.none": "これらを除く", "hashtag.column_settings.tag_toggle": "このカラムに追加のタグを含める", + "hashtag.counter_by_accounts": "{count, plural, other {{counter}人投稿}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter}件}}", + "hashtag.counter_by_uses_today": "今日{count, plural, other {{counter}件}}", "hashtag.follow": "ハッシュタグをフォローする", "hashtag.unfollow": "ハッシュタグのフォローを解除", "home.actions.go_to_explore": "話題をさがす", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index b32cf7c5fe..b0b2e68a16 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -37,7 +37,7 @@ "account.following": "팔로잉", "account.following_counter": "{counter} 팔로잉", "account.follows.empty": "이 사용자는 아직 아무도 팔로우하고 있지 않습니다.", - "account.follows_you": "날 팔로우합니다", + "account.follows_you": "나를 팔로우합니다", "account.go_to_profile": "프로필로 이동", "account.hide_reblogs": "@{name}의 부스트를 숨기기", "account.in_memoriam": "고인의 계정입니다.", @@ -201,7 +201,7 @@ "dismissable_banner.community_timeline": "여기 있는 것들은 계정이 {domain}에 있는 사람들의 최근 공개 게시물들입니다.", "dismissable_banner.dismiss": "지우기", "dismissable_banner.explore_links": "이 소식들은 오늘 소셜 웹에서 가장 많이 공유된 내용들입니다. 새 소식을 더 많은 사람들이 공유할수록 높은 순위가 됩니다.", - "dismissable_banner.explore_statuses": "오늘 소셜 웹에서 호응을 얻고 있는게시물입니다. 부스트와 좋아요를 받는 새로운 게시물이 높은 순위가 됩니다", + "dismissable_banner.explore_statuses": "오늘 소셜 웹에서 호응을 얻고 있는 게시물이에요. 부스트와 좋아요를 받는 새로운 게시물이 높은 순위가 돼요.", "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.", "dismissable_banner.public_timeline": "이것들은 {domain}에 있는 사람들이 팔로우한 사람들의 최신 게시물들입니다.", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "어느것이든", "hashtag.column_settings.tag_mode.none": "이것들을 제외하고", "hashtag.column_settings.tag_toggle": "추가 해시태그를 이 컬럼에 추가합니다", + "hashtag.counter_by_accounts": "{count, plural, other {{counter} 명의 참여자}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter} 개의 게시물}}", + "hashtag.counter_by_uses_today": "오늘 {count, plural, other {{counter} 개의 게시물}}", "hashtag.follow": "해시태그 팔로우", "hashtag.unfollow": "해시태그 팔로우 해제", "home.actions.go_to_explore": "무엇이 유행인지 보기", @@ -303,7 +306,7 @@ "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", "home.explore_prompt.body": "홈 피드에는 내가 팔로우한 해시태그 그리고 팔로우한 사람과 부스트가 함께 나타나요. 너무 고요하게 느껴진다면, 다음 것들을 살펴볼 수 있어요:", - "home.explore_prompt.title": "이것은 마스토돈에 있는 내 본거지입니다.", + "home.explore_prompt.title": "여기가 Mastodon 이용의 본거지예요.", "home.hide_announcements": "공지사항 숨기기", "home.show_announcements": "공지사항 보기", "interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 좋아하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.", @@ -317,7 +320,7 @@ "interaction_modal.on_this_server": "이 서버에서", "interaction_modal.sign_in": "이 서버에 로그인되어 있지 않습니다. 계정이 어디에 속해 있나요?", "interaction_modal.sign_in_hint": "팁: 여러분이 가입한 사이트입니다. 만약 기억이 나지 않는다면 가입환영 이메일을 찾아보는 것도 좋습니다. 전체 사용자이름(예: @mastodon@mastodon.social)을 넣어도 됩니다!", - "interaction_modal.title.favourite": "{name} 님의 게시물을 좋아요하기", + "interaction_modal.title.favourite": "{name} 님의 게시물을 좋아하기", "interaction_modal.title.follow": "{name} 님을 팔로우", "interaction_modal.title.reblog": "{name} 님의 게시물을 부스트", "interaction_modal.title.reply": "{name} 님의 게시물에 답글", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 653396cf5c..2e02e6af0d 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -47,7 +47,10 @@ "account.mention": "Sebut @{name}", "account.moved_to": "{name} telah menandakan bahawa akaun baru mereka sekarang ialah:", "account.mute": "Bisukan @{name}", + "account.mute_notifications_short": "Redam pemberitahuan", + "account.mute_short": "Redam", "account.muted": "Dibisukan", + "account.no_bio": "Tiada penerangan diberikan.", "account.open_original_page": "Buka halaman asal", "account.posts": "Hantaran", "account.posts_with_replies": "Hantaran dan balasan", @@ -70,6 +73,7 @@ "admin.dashboard.retention.average": "Purata", "admin.dashboard.retention.cohort": "Bulan pendaftaran", "admin.dashboard.retention.cohort_size": "Pengguna baru", + "admin.impact_report.instance_accounts": "Profil akaun ini akan dipadamkan", "alert.rate_limited.message": "Sila cuba semula selepas {retry_time, time, medium}.", "alert.rate_limited.title": "Kadar terhad", "alert.unexpected.message": "Berlaku ralat di luar jangkaan.", @@ -102,6 +106,7 @@ "column.community": "Garis masa tempatan", "column.directory": "Layari profil", "column.domain_blocks": "Domain disekat", + "column.favourites": "Kegemaran", "column.follow_requests": "Permintaan ikutan", "column.home": "Laman Utama", "column.lists": "Senarai", @@ -122,6 +127,7 @@ "community.column_settings.remote_only": "Jauh sahaja", "compose.language.change": "Tukar bahasa", "compose.language.search": "Cari bahasa...", + "compose.published.open": "Buka", "compose_form.direct_message_warning_learn_more": "Ketahui lebih lanjut", "compose_form.encryption_warning": "Hantaran pada Mastodon tidak disulitkan hujung ke hujung. Jangan berkongsi sebarang maklumat sensitif melalui Mastodon.", "compose_form.hashtag_warning": "Hantaran ini tidak akan disenaraikan di bawah mana-mana tanda pagar kerana ia tidak tersenarai. Hanya hantaran awam sahaja boleh dicari menggunakan tanda pagar.", @@ -158,6 +164,7 @@ "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?", "confirmations.domain_block.confirm": "Sekat keseluruhan domain", "confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.", + "confirmations.edit.confirm": "Sunting", "confirmations.logout.confirm": "Log keluar", "confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?", "confirmations.mute.confirm": "Bisukan", @@ -244,6 +251,9 @@ "filter_modal.select_filter.subtitle": "Gunakan kumpulan yang sedia ada atau mencipta kumpulan baru", "filter_modal.select_filter.title": "Tapiskan hantaran ini", "filter_modal.title.status": "Tapiskan sesuatu hantaran", + "firehose.all": "Semua", + "firehose.local": "Server ini", + "firehose.remote": "Server lain", "follow_request.authorize": "Benarkan", "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.", @@ -269,6 +279,7 @@ "hashtag.column_settings.tag_toggle": "Sertakan tag tambahan untuk lajur ini", "hashtag.follow": "Ikuti hashtag", "hashtag.unfollow": "Nyahikut tanda pagar", + "home.actions.go_to_suggestions": "Cari orang untuk diikuti", "home.column_settings.basic": "Asas", "home.column_settings.show_reblogs": "Tunjukkan galakan", "home.column_settings.show_replies": "Tunjukkan balasan", @@ -277,6 +288,8 @@ "interaction_modal.description.follow": "Dengan akaun pada Mastodon, anda boleh mengikut {name} untuk menerima hantaran mereka di suapan rumah anda.", "interaction_modal.description.reblog": "Dengan akaun pada Mastodon, anda boleh menggalakkan hantaran ini untuk dikongsi dengan pengikut anda.", "interaction_modal.description.reply": "Dengan akaun pada Mastodon, anda boleh membalas kepada hantaran ini.", + "interaction_modal.login.action": "Bawa saya pulang rumah", + "interaction_modal.no_account_yet": "Tak di Mastadon?", "interaction_modal.on_another_server": "Di pelayan lain", "interaction_modal.on_this_server": "Pada pelayan ini", "interaction_modal.title.follow": "Ikuti {name}", @@ -294,6 +307,7 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "Buka hantaran", + "keyboard_shortcuts.favourites": "Buka senarai kegemaran", "keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.heading": "Pintasan papan kekunci", "keyboard_shortcuts.home": "to open home timeline", @@ -412,12 +426,16 @@ "notifications_permission_banner.enable": "Dayakan pemberitahuan atas meja", "notifications_permission_banner.how_to_control": "Untuk mendapat pemberitahuan ketika Mastodon tidak dibuka, dayakan pemberitahuan atas meja. Anda boleh mengawal jenis interaksi mana yang menjana pemberitahuan atas meja melalui butang {icon} di atas setelah ia didayakan.", "notifications_permission_banner.title": "Jangan terlepas apa-apa", + "onboarding.action.back": "Bawa saya kembali", + "onboarding.actions.back": "Bawa saya kembali", "onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_home": "Go to your home feed", + "onboarding.compose.template": "Hello #Mastodon!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Popular on Mastodon", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.skip": "Want to skip right ahead?", + "onboarding.start.title": "Anda telah berjaya!", "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.publish_status.body": "Say hello to the world.", @@ -480,6 +498,7 @@ "report.placeholder": "Ulasan tambahan", "report.reasons.dislike": "Saya tidak suka", "report.reasons.dislike_description": "Inilah sesuatu yang anda tidak ingin lihat", + "report.reasons.legal": "Ia haram", "report.reasons.other": "Inilah sesuatu yang lain", "report.reasons.other_description": "Isu ini tidak sesuai untuk kategori lain", "report.reasons.spam": "Inilah spam", @@ -499,12 +518,14 @@ "report.unfollow": "Nyahikut @{name}", "report.unfollow_explanation": "Anda sedang mengikuti akaun ini. Untuk memadam siaran mereka daripada suapan berita anda, nyahikutkan mereka.", "report_notification.attached_statuses": "{count, plural, other {{count} hantaran}} dilampirkan", + "report_notification.categories.legal": "Sah", "report_notification.categories.other": "Lain-lain", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Langgaran peraturan", "report_notification.open": "Buka laporan", "search.placeholder": "Cari", "search.search_or_paste": "Cari atau tampal URL", + "search_results.accounts": "Profil", "search_results.all": "Semua", "search_results.hashtags": "Tanda pagar", "search_results.nothing_found": "Tidak dapat menemui apa-apa untuk istilah carian tersebut", @@ -520,6 +541,7 @@ "server_banner.server_stats": "Statistik pelayan:", "sign_in_banner.create_account": "Cipta akaun", "sign_in_banner.sign_in": "Daftar masuk", + "sign_in_banner.sso_redirect": "Log masuk atau mendaftar", "status.admin_account": "Buka antara muka penyederhanaan untuk @{name}", "status.admin_domain": "antara muka penyederhanaan", "status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan", @@ -539,6 +561,8 @@ "status.history.created": "{name} mencipta pada {date}", "status.history.edited": "{name} menyunting pada {date}", "status.load_more": "Muatkan lagi", + "status.media.open": "Klik untuk membuka", + "status.media.show": "Klik untuk menunjukkan", "status.media_hidden": "Media disembunyikan", "status.mention": "Sebut @{name}", "status.more": "Lagi", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 655afd5ed0..1a5dedd9ec 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Een van deze", "hashtag.column_settings.tag_mode.none": "Geen van deze", "hashtag.column_settings.tag_toggle": "Additionele tags aan deze kolom toevoegen", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deelnemer} other {{counter} deelnemers}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} bericht} other {{counter} berichten}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} bericht} other {{counter} berichten}} vandaag", "hashtag.follow": "Hashtag volgen", "hashtag.unfollow": "Hashtag ontvolgen", "home.actions.go_to_explore": "De huidige trends bekijken", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 96384b1610..62c7c5d531 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Kva som helst av desse", "hashtag.column_settings.tag_mode.none": "Ingen av desse", "hashtag.column_settings.tag_toggle": "Inkluder fleire emneord for denne kolonna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltaker} other {{counter} deltakere}}", + "hashtag.counter_by_uses": "{count, plural, one {ett innlegg} other {{counter} innlegg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {ett innlegg} other {{counter} innlegg}} i dag", "hashtag.follow": "Fylg emneknagg", "hashtag.unfollow": "Slutt å fylgje emneknaggen", "home.actions.go_to_explore": "Sjå kva som er populært", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 71a7beaf27..85460b916e 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Enhver av disse", "hashtag.column_settings.tag_mode.none": "Ingen av disse", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltaker} other {{counter} deltakere}}", + "hashtag.counter_by_uses": "{count, plural, one {ett innlegg} other {{counter} innlegg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {ett innlegg} other {{counter} innlegg}} i dag", "hashtag.follow": "Følg emneknagg", "hashtag.unfollow": "Slutt å følge emneknagg", "home.actions.go_to_explore": "Se hva som er populært", @@ -302,6 +305,7 @@ "home.column_settings.basic": "Enkelt", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", + "home.explore_prompt.body": "Tidslinjen din inneholder en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Hvis det føles for stille, kan det være lurt å:", "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.", "home.hide_announcements": "Skjul kunngjøring", "home.show_announcements": "Vis kunngjøring", @@ -309,8 +313,13 @@ "interaction_modal.description.follow": "Med en konto på Mastodon, kan du følge {name} for å få innleggene deres i tidslinjen din.", "interaction_modal.description.reblog": "Med en konto på Mastodon, kan du fremheve dette innlegget for å dele det med dine egne følgere.", "interaction_modal.description.reply": "Med en konto på Mastodon, kan du svare på dette innlegget.", + "interaction_modal.login.action": "Ta meg hjem", + "interaction_modal.login.prompt": "Domenet til serveren din, eks. mastodon.social", + "interaction_modal.no_account_yet": "Ennå ikke på Mastodon?", "interaction_modal.on_another_server": "På en annen server", "interaction_modal.on_this_server": "På denne serveren", + "interaction_modal.sign_in": "Du er ikke logget inn på denne serveren. Hvor har du kontoen din?", + "interaction_modal.sign_in_hint": "Tips: Det er på nettstedet der du registrerte deg. Hvis du ikke husker det, kan du se etter velkomst e-posten i innboksen. Du kan også skrive inn hele brukernavnet ditt! (eks. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Favorittmarker innlegget til {name}", "interaction_modal.title.follow": "Følg {name}", "interaction_modal.title.reblog": "Fremhev {name} sitt innlegg", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 88a3460aff..7ad4829184 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Dowolne", "hashtag.column_settings.tag_mode.none": "Żadne", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} uczestnik} few {{counter} uczestnicy} many {{counter} uczestników} other {{counter} uczestników}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}} z dzisiaj", "hashtag.follow": "Obserwuj hasztag", "hashtag.unfollow": "Przestań obserwować hashtag", "home.actions.go_to_explore": "Zobacz, co jest teraz popularne", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 72278ec781..2e22fbfbf0 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Qualquer destes", "hashtag.column_settings.tag_mode.none": "Nenhum destes", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionais para esta coluna", + "hashtag.counter_by_accounts": "{count, plural,one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicação} other {{counter} publicações}} hoje", "hashtag.follow": "Seguir #etiqueta", "hashtag.unfollow": "Deixar de seguir #etiqueta", "home.actions.go_to_explore": "Veja as tendências atuais", @@ -598,6 +601,7 @@ "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Criar conta", "sign_in_banner.sign_in": "Iniciar sessão", + "sign_in_banner.sso_redirect": "Iniciar sessão ou inscrever-se", "sign_in_banner.text": "Inicie sessão para seguir perfis ou hashtags, assinalar como favorito, partilhar ou responder a publicações. Pode ainda interagir através da sua conta noutro servidor.", "status.admin_account": "Abrir a interface de moderação para @{name}", "status.admin_domain": "Abrir interface de moderação para {domain}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 9c155e8f62..ae893141f5 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Bilo koje od ovih", "hashtag.column_settings.tag_mode.none": "Nijedan od ovih", "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovu kolonu", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} učesnik} few {{counter} učesnika} other {{counter} učesnika}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} objava} few {{counter} objave} other {{counter} objava}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} objava} few {{counter} objave} other {{counter} objava}} danas", "hashtag.follow": "Zaprati heš oznaku", "hashtag.unfollow": "Otprati heš oznaku", "home.actions.go_to_explore": "Pogledaj šta je u trendu", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 2f6545f584..66e63c8a13 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Било које од ових", "hashtag.column_settings.tag_mode.none": "Ниједан од ових", "hashtag.column_settings.tag_toggle": "Укључи додатне ознаке за ову колону", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} учесник} few {{counter} учесника} other {{counter} учесника}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}} данас", "hashtag.follow": "Запрати хеш ознаку", "hashtag.unfollow": "Отпрати хеш ознаку", "home.actions.go_to_explore": "Погледај шта је у тренду", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 54c462c4b5..44db96cc71 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -292,6 +292,9 @@ "hashtag.column_settings.tag_mode.any": "Någon av dessa", "hashtag.column_settings.tag_mode.none": "Ingen av dessa", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltagare} other {{counter} deltagare}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}} i dag", "hashtag.follow": "Följ hashtagg", "hashtag.unfollow": "Avfölj hashtagg", "home.actions.go_to_suggestions": "Hitta personer att följa", @@ -365,7 +368,7 @@ "lists.replies_policy.title": "Visa svar till:", "lists.search": "Sök bland personer du följer", "lists.subheading": "Dina listor", - "load_pending": "{count, plural, other {# objekt}}", + "load_pending": "{count, plural, one {# nytt objekt} other {# nya objekt}}", "loading_indicator.label": "Laddar...", "media_gallery.toggle_visible": "Växla synlighet", "moved_to_account_banner.text": "Ditt konto {disabledAccount} är för närvarande inaktiverat eftersom du flyttat till {movedToAccount}.", @@ -468,8 +471,8 @@ "poll.closed": "Stängd", "poll.refresh": "Ladda om", "poll.reveal": "Visa resultat", - "poll.total_people": "{persons, plural, one {# person} other {# personer}}", - "poll.total_votes": "{count, plural, one {1 röst} other {# röster}}", + "poll.total_people": "{count, plural, one {# person} other {# personer}}", + "poll.total_votes": "{count, plural, one {# röst} other {# röster}}", "poll.vote": "Rösta", "poll.voted": "Du röstade för detta svar", "poll.votes": "{votes, plural, one {# röst} other {# röster}}", @@ -560,7 +563,7 @@ "search_results.statuses": "Inlägg", "search_results.statuses_fts_disabled": "Att söka efter inlägg baserat på innehåll är inte aktiverat på denna Mastodon-server.", "search_results.title": "Sök efter {q}", - "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "search_results.total": "{count, number} {count, plural, one {resultat} other {resultat}}", "server_banner.about_active_users": "Personer som använt denna server de senaste 30 dagarna (månatligt aktiva användare)", "server_banner.active_users": "aktiva användare", "server_banner.administered_by": "Administrerad av:", @@ -632,10 +635,10 @@ "tabs_bar.home": "Hem", "tabs_bar.notifications": "Aviseringar", "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} kvar", - "time_remaining.hours": "{hours, plural, one {# timme} other {# timmar}} kvar", - "time_remaining.minutes": "{minutes, plural, one {1 minut} other {# minuter}} kvar", + "time_remaining.hours": "{number, plural, one {# timme} other {# timmar}} kvar", + "time_remaining.minutes": "{number, plural, one {# minut} other {# minuter}} kvar", "time_remaining.moments": "Återstående tillfällen", - "time_remaining.seconds": "{hours, plural, one {# sekund} other {# sekunder}} kvar", + "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} kvar", "timeline_hint.remote_resource_not_displayed": "{resource} från andra servrar visas inte.", "timeline_hint.resources.followers": "Följare", "timeline_hint.resources.follows": "Följer", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 3d0f64bce7..d4c33ce9d4 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "ใดก็ตามนี้", "hashtag.column_settings.tag_mode.none": "ไม่ใช่ทั้งหมดนี้", "hashtag.column_settings.tag_toggle": "รวมแท็กเพิ่มเติมสำหรับคอลัมน์นี้", + "hashtag.counter_by_accounts": "{count, plural, other {{counter} ผู้มีส่วนร่วม}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter} โพสต์}}", + "hashtag.counter_by_uses_today": "{count, plural, other {{counter} โพสต์}}วันนี้", "hashtag.follow": "ติดตามแฮชแท็ก", "hashtag.unfollow": "เลิกติดตามแฮชแท็ก", "home.actions.go_to_explore": "ดูสิ่งที่กำลังนิยม", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index bc8855a75e..f1c3d6c374 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Herhangi biri", "hashtag.column_settings.tag_mode.none": "Bunların hiçbiri", "hashtag.column_settings.tag_toggle": "Bu sütundaki ek etiketleri içer", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} katılımcı} other {{counter} katılımcı}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}", + "hashtag.counter_by_uses_today": "bugün {count, plural, one {{counter} gönderi} other {{counter} gönderi}}", "hashtag.follow": "Etiketi takip et", "hashtag.unfollow": "Etiketi takibi bırak", "home.actions.go_to_explore": "Öne çıkanları gör", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index c011187577..9217219b77 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Який-небудь зі списку", "hashtag.column_settings.tag_mode.none": "Жоден зі списку", "hashtag.column_settings.tag_toggle": "Додати додаткові теґи до цього стовпчика", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} учасник} few {{counter} учасники} many {{counter} учасників} other {{counter} учасник}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}} сьогодні", "hashtag.follow": "Стежити за хештегом", "hashtag.unfollow": "Не стежити за хештегом", "home.actions.go_to_explore": "Переглянути тенденції", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index a74152e3a7..6b5533bfb0 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -104,8 +104,8 @@ "closed_registrations.other_server_instructions": "Vì Mastodon liên hợp nên bạn có thể tạo tài khoản trên máy chủ khác và vẫn tương tác với máy chủ này.", "closed_registrations_modal.description": "{domain} hiện tắt đăng ký, nhưng hãy lưu ý rằng bạn không cần một tài khoản riêng trên {domain} để sử dụng Mastodon.", "closed_registrations_modal.find_another_server": "Tìm máy chủ khác", - "closed_registrations_modal.preamble": "Mastodon liên hợp, vì vậy bất kể bạn tạo tài khoản ở đâu, bạn sẽ có thể theo dõi và tương tác với bất kỳ ai trên máy chủ này. Bạn thậm chí có thể tự mở máy chủ!", - "closed_registrations_modal.title": "Đăng ký trên Mastodon", + "closed_registrations_modal.preamble": "Mastodon liên hợp nên bất kể bạn tạo tài khoản ở đâu, bạn cũng sẽ có thể theo dõi và tương tác với mọi người trên máy chủ này. Bạn thậm chí có thể tự mở máy chủ!", + "closed_registrations_modal.title": "Đăng ký Mastodon", "column.about": "Giới thiệu", "column.blocks": "Người đã chặn", "column.bookmarks": "Đã lưu", @@ -114,7 +114,7 @@ "column.directory": "Tìm người cùng sở thích", "column.domain_blocks": "Máy chủ đã chặn", "column.favourites": "Lượt thích", - "column.firehose": "Bản tin trực tiếp", + "column.firehose": "Bảng tin", "column.follow_requests": "Yêu cầu theo dõi", "column.home": "Bảng tin", "column.lists": "Danh sách", @@ -198,12 +198,12 @@ "directory.recently_active": "Hoạt động gần đây", "disabled_account_banner.account_settings": "Cài đặt tài khoản", "disabled_account_banner.text": "Tài khoản {disabledAccount} của bạn hiện không khả dụng.", - "dismissable_banner.community_timeline": "Những tút gần đây của những người có tài khoản thuộc máy chủ {domain}.", + "dismissable_banner.community_timeline": "Đây là những tút gần đây từ những người thuộc máy chủ {domain}.", "dismissable_banner.dismiss": "Bỏ qua", "dismissable_banner.explore_links": "Những sự kiện đang được thảo luận nhiều trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", "dismissable_banner.explore_statuses": "Những tút đang phổ biến trên máy chủ này và mạng liên hợp của nó.", "dismissable_banner.explore_tags": "Những hashtag đang được sử dụng nhiều trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", - "dismissable_banner.public_timeline": "Đây là những tút công khai gần đây nhất của những người trong mạng liên hợp của {domain}.", + "dismissable_banner.public_timeline": "Đây là những tút công khai gần đây từ những người trong mạng liên hợp của {domain}.", "embed.instructions": "Sao chép đoạn mã dưới đây và chèn vào trang web của bạn.", "embed.preview": "Nó sẽ hiển thị như vầy:", "emoji_button.activity": "Hoạt động", @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Một phần", "hashtag.column_settings.tag_mode.none": "Không chọn", "hashtag.column_settings.tag_toggle": "Bao gồm thêm hashtag cho cột này", + "hashtag.counter_by_accounts": "{count, plural, other {{counter} người dùng}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter} tút}}", + "hashtag.counter_by_uses_today": "{count, plural, other {{counter} tút}} hôm nay", "hashtag.follow": "Theo dõi hashtag", "hashtag.unfollow": "Ngưng theo dõi hashtag", "home.actions.go_to_explore": "Khám phá xu hướng", @@ -307,13 +310,13 @@ "home.hide_announcements": "Ẩn thông báo máy chủ", "home.show_announcements": "Hiện thông báo máy chủ", "interaction_modal.description.favourite": "Với tài khoản Mastodon, bạn có thể cho người đăng biết bạn thích tút này và lưu lại tút.", - "interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để nhận những tút của họ trên bảng tin của mình.", + "interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để tút của họ hiện trên bảng tin của mình.", "interaction_modal.description.reblog": "Với tài khoản Mastodon, bạn có thể đăng lại tút này để chia sẻ nó với những người đang theo dõi bạn.", - "interaction_modal.description.reply": "Với tài khoản Mastodon, bạn có thể bình luận tút này.", + "interaction_modal.description.reply": "Với tài khoản Mastodon, bạn có thể trả lời tút này.", "interaction_modal.login.action": "Đăng nhập ngay", "interaction_modal.login.prompt": "Địa chỉ máy chủ của bạn, vd: mastodon.social", "interaction_modal.no_account_yet": "Chưa có tài khoản Mastodon?", - "interaction_modal.on_another_server": "Trên một máy chủ khác", + "interaction_modal.on_another_server": "Trên máy chủ khác", "interaction_modal.on_this_server": "Trên máy chủ này", "interaction_modal.sign_in": "Bạn chưa đăng nhập. Bạn đã có tài khoản ở máy chủ khác?", "interaction_modal.sign_in_hint": "Mẹo: Đó là trang web nơi bạn đã đăng ký. Nếu không nhớ, lục lại trong email của bạn. Bạn cũng có thể nhập địa chỉ Mastodon đầy đủ! (vd: @Mastodon@mastodon.social)", @@ -336,7 +339,7 @@ "keyboard_shortcuts.favourite": "Thích tút", "keyboard_shortcuts.favourites": "Mở lượt thích", "keyboard_shortcuts.federated": "mở mạng liên hợp", - "keyboard_shortcuts.heading": "Các phím tắt", + "keyboard_shortcuts.heading": "Danh sách phím tắt", "keyboard_shortcuts.home": "mở bảng tin", "keyboard_shortcuts.hotkey": "Phím tắt", "keyboard_shortcuts.legend": "hiện bảng hướng dẫn này", @@ -574,18 +577,18 @@ "report_notification.open": "Mở báo cáo", "search.no_recent_searches": "Không có tìm kiếm gần đây", "search.placeholder": "Tìm kiếm", - "search.quick_action.account_search": "Người trùng khớp {x}", + "search.quick_action.account_search": "Người có tên {x}", "search.quick_action.go_to_account": "Xem trang {x}", "search.quick_action.go_to_hashtag": "Xem hashtag {x}", "search.quick_action.open_url": "Mở liên kết trong Mastodon", - "search.quick_action.status_search": "Tút trùng khớp {x}", + "search.quick_action.status_search": "Tút nhắc đến {x}", "search.search_or_paste": "Tìm kiếm hoặc nhập URL", "search_popout.quick_actions": "Thao tác nhanh", "search_popout.recent": "Tìm kiếm gần đây", "search_results.accounts": "Mọi người", "search_results.all": "Toàn bộ", - "search_results.hashtags": "Hashtags", - "search_results.nothing_found": "Không tìm thấy kết quả trùng khớp", + "search_results.hashtags": "Hashtag", + "search_results.nothing_found": "Không tìm thấy gì", "search_results.statuses": "Tút", "search_results.statuses_fts_disabled": "Máy chủ của bạn không bật tính năng tìm kiếm tút.", "search_results.title": "Tìm kiếm {q}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index df30565263..052cef8b4b 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -33,9 +33,9 @@ "account.follow": "跟隨", "account.followers": "跟隨者", "account.followers.empty": "尚未有人跟隨這位使用者。", - "account.followers_counter": "被 {count, plural,one {{counter} 人}other {{counter} 人}} 跟隨", + "account.followers_counter": "被 {count, plural,one {{counter} 人}other {{counter} 人}}跟隨", "account.following": "跟隨中", - "account.following_counter": "正在跟隨 {count, plural,one {{counter}}other {{counter} 人}}", + "account.following_counter": "正在跟隨 {count, plural, one {{counter} 人} other {{counter} 人}}", "account.follows.empty": "這位使用者尚未跟隨任何人。", "account.follows_you": "跟隨了您", "account.go_to_profile": "前往個人檔案", @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "任一", "hashtag.column_settings.tag_mode.none": "全不", "hashtag.column_settings.tag_toggle": "將額外標籤加入到這個欄位", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} 名} other {{counter} 名}}參與者", + "hashtag.counter_by_uses": "{count, plural, one {{counter} 則} other {{counter} 則}}嘟文", + "hashtag.counter_by_uses_today": "本日有 {count, plural, one {{counter} 則} other {{counter} 則}}嘟文", "hashtag.follow": "追蹤主題標籤", "hashtag.unfollow": "取消追蹤主題標籤", "home.actions.go_to_explore": "看看發生什麼新鮮事", diff --git a/config/locales/activerecord.ms.yml b/config/locales/activerecord.ms.yml index 6b84248dec..5f282702f1 100644 --- a/config/locales/activerecord.ms.yml +++ b/config/locales/activerecord.ms.yml @@ -53,3 +53,7 @@ ms: position: elevated: tidak boleh lebih tinggi daripada peranan semasa anda own_role: tidak boleh diubah dengan peranan semasa anda + webhook: + attributes: + events: + invalid_permissions: tidak boleh memasukkan acara yang anda tidak mempunyai hak untuk melakukannya diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e69f3d708e..348521ae82 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -779,6 +779,7 @@ ar: approved: طلب الموافقة لازم عند إنشاء حساب none: لا أحد يمكنه إنشاء حساب open: يمكن للجميع إنشاء حساب + title: إعدادات الخادم site_uploads: delete: احذف الملف الذي تم تحميله destroyed_msg: تم حذف التحميل مِن الموقع بنجاح! @@ -1039,6 +1040,7 @@ ar: back: العودة invited_by: 'يمكنك الانضمام إلى %{domain} بفضل الدعوة التي تلقيتها من:' preamble: يتم تعيين هذه القوانين وفرضها من قبل مشرفي %{domain}. + preamble_invited: قبل المتابعة، يرجى قراءة القواعد الأساسية التي وضعها مشرفو %{domain}. title: بعض القواعد الأساسية. title_invited: لقد تلقيت دعوة. security: الأمان @@ -1142,6 +1144,7 @@ ar: domain_validator: invalid_domain: ليس بإسم نطاق صالح edit_profile: + basic_information: معلومات أساسية other: أخرى safety_and_privacy: الأمان والخصوصية errors: @@ -1264,12 +1267,17 @@ ar: overwrite: إعادة الكتابة overwrite_long: استبدال التسجيلات الحالية بالجديدة preface: بإمكانك استيراد بيانات قد قُمتَ بتصديرها مِن مثيل خادم آخَر، كقوائم المستخدِمين الذين كنتَ تتابِعهم أو قُمتَ بحظرهم. + states: + finished: تم + in_progress: قيد الإنجاز success: تم تحميل بياناتك بنجاح وسيتم معالجتها في الوقت المناسب + type: نوع الاستيراد types: blocking: قائمة المحظورين bookmarks: الفواصل المرجعية domain_blocking: قائمة النطاقات المحظورة following: قائمة المستخدمين المتبوعين + lists: القوائم muting: قائمة الكتم upload: تحميل invites: @@ -1315,6 +1323,7 @@ ar: mail_subscriptions: unsubscribe: complete: إلغاء الاشتراك + title: إلغاء الاشتراك media_attachments: validations: images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور @@ -1430,6 +1439,7 @@ ar: expired: لقد انتهى استطلاع الرأي invalid_choice: خيار التصويت الذي قُمتَ يتحديده غير موجود over_character_limit: لا يمكن أن يكون أطول من %{max} حرف لكل واحد + self_vote: لا يمكنك التصويت في استطلاعاتك الخاصة too_few_options: يجب أن يحتوي على أكثر من عنصر واحد too_many_options: لا يمكنه أن يحتوي أكثر مِن %{max} عناصر preferences: @@ -1748,12 +1758,15 @@ ar: title: أهلاً بك، %{name}! users: follow_limit_reached: لا يمكنك متابعة أكثر مِن %{limit} أشخاص + go_to_sso_account_settings: انتقل إلى إعدادات حساب مزود الهوية الخاص بك invalid_otp_token: رمز المصادقة بخطوتين غير صالح otp_lost_help_html: إن فقدتَهُما ، يمكنك الاتصال بـ %{email} seamless_external_login: لقد قمت بتسجيل الدخول عبر خدمة خارجية، إنّ إعدادات الكلمة السرية و البريد الإلكتروني غير متوفرة. signed_in_as: 'تم تسجيل دخولك بصفة:' verification: + here_is_how: إليك كيف ذلك verification: التحقق + verified_links: روابطك التي تم التحقق منها webauthn_credentials: add: إضافة مفتاح أمان جديد create: diff --git a/config/locales/de.yml b/config/locales/de.yml index 219231a514..e1501e1d1d 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -58,7 +58,7 @@ de: demote: Zurückstufen destroyed_msg: Daten von %{username} wurden zum Löschen in die Warteschlange eingereiht disable: Einfrieren - disable_sign_in_token_auth: Zwei-Faktor-Authentisierung (2FA) per E-Mail deaktivieren + disable_sign_in_token_auth: E-Mail-Token-Authentisierung deaktivieren disable_two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) deaktivieren disabled: Eingefroren display_name: Anzeigename @@ -67,7 +67,7 @@ de: email: E-Mail-Adresse email_status: Status der E-Mail-Adresse enable: Freischalten - enable_sign_in_token_auth: Zwei-Faktor-Authentisierung (2FA) per E-Mail aktivieren + enable_sign_in_token_auth: E-Mail-Token-Authentisierung aktivieren enabled: Freigegeben enabled_msg: Konto von %{username} erfolgreich freigegeben followers: Follower @@ -200,10 +200,10 @@ de: destroy_user_role: Rolle entfernen disable_2fa_user: 2FA deaktivieren disable_custom_emoji: Eigenes Emoji deaktivieren - disable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für dieses Konto deaktivieren + disable_sign_in_token_auth_user: E-Mail-Token-Authentisierung für dieses Konto deaktivieren disable_user: Benutzer*in deaktivieren enable_custom_emoji: Eigenes Emoji aktivieren - enable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für dieses Konto aktivieren + enable_sign_in_token_auth_user: E-Mail-Token-Authentisierung für dieses Konto aktivieren enable_user: Benutzer*in aktivieren memorialize_account: Gedenkkonto promote_user: Benutzer*in hochstufen @@ -229,10 +229,10 @@ de: update_status: Beitrag aktualisieren update_user_role: Rolle bearbeiten actions: - approve_appeal_html: "%{name} genehmigte die Moderationsbeschlüsse von %{target}" + approve_appeal_html: "%{name} hat den Einspruch gegen eine Moderationsentscheidung von %{target} genehmigt" approve_user_html: "%{name} genehmigte die Registrierung von %{target}" assigned_to_self_report_html: "%{name} wies sich die Meldung %{target} selbst zu" - change_email_user_html: "%{name} hat die E-Mail-Adresse von %{target} geändert" + change_email_user_html: "%{name} änderte die E-Mail-Adresse von %{target}" change_role_user_html: "%{name} hat die Rolle von %{target} geändert" confirm_user_html: "%{name} bestätigte die E-Mail-Adresse von %{target}" create_account_warning_html: "%{name} sendete eine Warnung an %{target}" @@ -259,14 +259,14 @@ de: destroy_user_role_html: "%{name} löschte die Rolle %{target}" disable_2fa_user_html: "%{name} deaktivierte die Zwei-Faktor-Authentisierung für %{target}" disable_custom_emoji_html: "%{name} deaktivierte das Emoji %{target}" - disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentisierung für %{target} deaktiviert" + disable_sign_in_token_auth_user_html: "%{name} deaktivierte die E-Mail-Token-Authentisierung für %{target}" disable_user_html: "%{name} deaktivierte den Zugang für %{target}" enable_custom_emoji_html: "%{name} aktivierte das Emoji %{target}" - enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert" + enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentisierung für %{target} aktiviert" enable_user_html: "%{name} aktivierte den Zugang für %{target}" memorialize_account_html: "%{name} wandelte das Konto von %{target} in eine Gedenkseite um" promote_user_html: "%{name} beförderte %{target}" - reject_appeal_html: "%{name} hat den Moderations-Beschlussantrag von %{target} abgelehnt" + reject_appeal_html: "%{name} hat den Einspruch gegen eine Moderationsentscheidung von %{target} abgelehnt" reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt" remove_avatar_user_html: "%{name} entfernte das Profilbild von %{target}" reopen_report_html: "%{name} öffnete die Meldung %{target} wieder" @@ -353,11 +353,11 @@ de: one: "%{count} ausstehender Einspruch" other: "%{count} ausstehende Einsprüche" pending_reports_html: - one: "%{count} ausstehende Meldung" - other: "%{count} ausstehende Meldungen" + one: "%{count} offene Meldung" + other: "%{count} offene Meldungen" pending_tags_html: - one: "%{count} ausstehender Hashtag" - other: "%{count} ausstehende Hashtags" + one: "%{count} ungeprüfter Hashtag" + other: "%{count} ungeprüfte Hashtags" pending_users_html: one: "%{count} unerledigte*r Benutzer*in" other: "%{count} unerledigte Benutzer*innen" @@ -386,7 +386,7 @@ de: cancel: Abbrechen confirm: Sperren permanent_action: Das Aufheben der Sperre wird keine Daten oder Beziehungen wiederherstellen. - preamble_html: Du bist dabei, %{domain} und alle Subdomains zu sperren. + preamble_html: Du bist dabei, %{domain} und seine Subdomains zu sperren. remove_all_data: Alle Inhalte, Medien und Profildaten werden für die Konten dieser Domain von deinem Server entfernt. stop_communication: Dein Server wird nicht länger mit diesen Servern kommunizieren. title: Sperre für Domain %{domain} bestätigen @@ -706,7 +706,7 @@ de: manage_rules_description: Erlaubt es Benutzer*innen, Serverregeln zu ändern manage_settings: Einstellungen verwalten manage_settings_description: Erlaubt Nutzer*innen, Einstellungen dieses Servers zu ändern - manage_taxonomies: Taxonomien verwalten + manage_taxonomies: Hashtags verwalten manage_taxonomies_description: Ermöglicht Benutzer*innen, die Trends zu überprüfen und die Hashtag-Einstellungen zu aktualisieren manage_user_access: Kontozugriff verwalten manage_user_access_description: Erlaubt es Benutzer*innen, die Zwei-Faktor-Authentisierung (2FA) anderer zu deaktivieren, ihre E-Mail-Adresse zu ändern und ihr Passwort zurückzusetzen @@ -804,7 +804,7 @@ de: delete_statuses: "%{name} entfernte die Beiträge von %{target}" disable: "%{name} fror das Konto von %{target} ein" mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen" - none: "%{name} sendete eine Warnung an %{target}" + none: "%{name} hat eine Warnung an %{target} gesendet" sensitive: "%{name} versah das Konto von %{target} mit einer Inhaltswarnung" silence: "%{name} schaltete das Konto von %{target} stumm" suspend: "%{name} sperrte das Konto von %{target}" @@ -846,7 +846,7 @@ de: disallow_provider: Herausgeber*in verbieten no_link_selected: Keine Links wurden geändert, da keine ausgewählt wurden publishers: - no_publisher_selected: Keine Herausgeber wurden geändert, da keine ausgewählt wurden + no_publisher_selected: Keine Herausgeber*innen wurden geändert, da keine ausgewählt wurden shared_by_over_week: one: In den vergangenen 7 Tagen von einem Profil geteilt other: In den vergangenen 7 Tagen von %{count} Profilen geteilt @@ -874,16 +874,16 @@ de: other: "%{friendly_count}-mal geteilt oder favorisiert" title: Angesagte Beiträge tags: - current_score: Aktuelle Punktzahl %{score} + current_score: 'Aktueller Score: %{score}' dashboard: - tag_accounts_measure: eindeutige Verwendungen + tag_accounts_measure: Profile tag_languages_dimension: Häufigste Sprachen tag_servers_dimension: Aktivste Server - tag_servers_measure: verschiedene Server - tag_uses_measure: Gesamtnutzungen + tag_servers_measure: Server + tag_uses_measure: insgesamt description_html: Diese Hashtags werden derzeit in vielen Beiträgen verwendet, die dein Server sieht. Dies kann deinen Nutzer*innen helfen, herauszufinden, worüber die Leute im Moment am meisten schreiben. Hashtags werden erst dann öffentlich angezeigt, wenn du sie genehmigst. listable: Kann vorgeschlagen werden - no_tag_selected: Keine Tags wurden geändert, da keine ausgewählt wurden + no_tag_selected: Keine Hashtags wurden geändert, da keine ausgewählt wurden not_listable: Wird nicht vorgeschlagen not_trendable: Wird in den Trends nicht angezeigt not_usable: Kann nicht verwendet werden @@ -894,8 +894,8 @@ de: usable: Darf verwendet werden usage_comparison: Heute %{today}-mal und gestern %{yesterday}-mal verwendet used_by_over_week: - one: In der letzten Woche von einem Profil verwendet - other: In der letzten Woche von %{count} Profilen verwendet + one: In den vergangenen 7 Tagen von einem Profil verwendet + other: In den vergangenen 7 Tagen von %{count} Profilen verwendet title: Trends trending: Angesagt warning_presets: @@ -934,9 +934,9 @@ de: sensitive: das Markieren des Kontos mit einer Inhaltswarnung silence: das Beschränken des Kontos suspend: um deren Konto zu sperren - body: "%{target} hat etwas gegen eine Moderationsentscheidung von %{action_taken_by} vom %{date}, die %{type} war. Die Person schrieb:" - next_steps: Du kannst dem Einspruch zustimmen, womit die Entscheidung der Moderation rückgängig gemacht wird, oder ihn ignorieren. - subject: "%{username} hat Einspruch gegen eine Moderationsentscheidung von %{instance} eingelegt" + body: "%{target} erhebt Einspruch gegen eine Moderationsentscheidung von %{action_taken_by} vom %{date} (%{type}). Folgendes wurde geschrieben:" + next_steps: Du kannst dem Einspruch zustimmen, um die Moderationsentscheidung rückgängig zu machen, oder ihn ignorieren. + subject: "%{username} hat Einspruch gegen eine Moderationsentscheidung auf %{instance} erhoben" new_pending_account: body: Die Details von diesem neuem Konto sind unten. Du kannst die Anfrage akzeptieren oder ablehnen. subject: Neues Konto zur Überprüfung auf %{instance} verfügbar (%{username}) @@ -1000,7 +1000,7 @@ de: delete_account: Konto löschen delete_account_html: Falls du dein Konto endgültig löschen möchtest, kannst du das hier vornehmen. Du musst dies zusätzlich bestätigen. description: - prefix_invited_by_user: "@%{name} lädt dich ein, diesem Server von Mastodon beizutreten!" + prefix_invited_by_user: "@%{name} lädt dich ein, diesem Mastodon-Server beizutreten!" prefix_sign_up: Registriere dich noch heute bei Mastodon! suffix: Mit einem Konto kannst du Profilen folgen, neue Beiträge veröffentlichen, Nachrichten mit Personen von jedem Mastodon-Server austauschen und vieles mehr! didnt_get_confirmation: Keinen Bestätigungslink erhalten? @@ -1050,7 +1050,7 @@ de: sign_up: manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest. preamble: Mit einem Konto auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Konto registriert ist. - title: Okay, lass uns dein Konto auf %{domain} einrichten. + title: Lass uns dein Konto auf %{domain} einrichten. status: account_status: Kontostatus confirming: Auf die Bestätigung deiner E-Mail-Adresse wird gewartet. @@ -1434,8 +1434,8 @@ de: subject: "%{name} bearbeitete einen Beitrag" notifications: email_events: Benachrichtigungen per E-Mail - email_events_hint: 'Bitte die Ereignisse auswählen, für die du Benachrichtigungen erhalten möchtest:' - other_settings: Weitere Einstellungen + email_events_hint: 'Bitte die Ereignisse auswählen, für die du Benachrichtigungen per E-Mail erhalten möchtest:' + other_settings: Erweitere Einstellungen number: human: decimal_units: @@ -1579,7 +1579,7 @@ de: migrate: Kontoumzug notifications: Benachrichtigungen preferences: Einstellungen - profile: Öffentliches Profil + profile: Profil relationships: Follower und Folge ich statuses_cleanup: Automatische Löschung strikes: Maßnahmen @@ -1628,8 +1628,8 @@ de: title: "%{name}: „%{quote}“" visibilities: direct: Direktnachricht - private: Nur eigene Follower - private_long: Nur für deine eigenen Follower sichtbar + private: Nur Follower + private_long: Nur für deine Follower sichtbar public: Öffentlich public_long: Für alle sichtbar unlisted: Nicht gelistet @@ -1643,8 +1643,8 @@ de: ignore_reblogs: Geteilte Beiträge ignorieren interaction_exceptions: Ausnahmen basierend auf Interaktionen interaction_exceptions_explanation: Beachte, dass Beiträge nicht gelöscht werden, sobald deine Grenzwerte für Favoriten oder geteilte Beiträge einmal überschritten wurden – auch dann nicht, wenn diese Schwellenwerte mittlerweile nicht mehr erreicht werden. - keep_direct: Direktnachrichten behalten - keep_direct_hint: Löscht keine deiner privaten Nachrichten + keep_direct: Private Nachrichten behalten + keep_direct_hint: Löscht keinen deiner Beiträge, die nur für erwähnte Profile sichtbar sind keep_media: Beiträge mit Medien behalten keep_media_hint: Löscht keinen deiner Beiträge mit Medieninhalten keep_pinned: Angeheftete Beiträge behalten @@ -1772,8 +1772,8 @@ de: verification: extra_instructions_html: Hinweis: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me", wodurch das Nachahmen von Personen auf Websites mit nutzergenerierten Inhalten verhindert wird. Du kannst auch ein link-Tag statt a im Header auf der Seite verwenden, jedoch muss der HTML-Code ohne das Ausführen von JavaScript zugänglich sein. here_is_how: So funktioniert's - hint_html: "Alle können ihre Identität auf Mastodon verifizieren. Basierend auf offenen Standards – jetzt und für immer kostenlos. Alles, was du brauchst, ist eine eigene Website. Wenn du von deinem Profil auf diese Website verlinkst, überprüfen wir, ob die Website zu deinem Profil zurückverlinkt und zeigen einen visuellen Hinweis an." - instructions_html: Kopiere und füge den untenstehenden Code in das HTML deiner Website ein. Füge anschließend die Adresse deiner Website in ein Zusatzfeld auf deinem Profil hinzu und speichere die Änderungen. Die Zusatzfelder befinden sich im Reiter „Profil bearbeiten“. + hint_html: "Alle können ihre Identität auf Mastodon verifizieren. Basierend auf offenen Standards – jetzt und für immer kostenlos. Alles, was du brauchst, ist eine eigene Website. Wenn du von deinem Profil auf diese Website verlinkst, überprüfen wir, ob die Website zu deinem Profil zurückverlinkt, und zeigen einen visuellen Hinweis an." + instructions_html: Kopiere den unten stehenden Code und füge ihn in das HTML deiner Website ein. Trage anschließend diese Website-Adresse in eines der Felder für die Metadaten deines Profils ein – und speichere die Änderungen. verification: Verifizierung verified_links: Deine verifizierten Links webauthn_credentials: diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index b63e73a736..722ca01608 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -82,8 +82,8 @@ de: success: Du hast dich erfolgreich mit deinem Konto %{kind} angemeldet. passwords: no_token: Du kannst diese Seite nur über den Link aus der E-Mail zum Zurücksetzen des Passworts aufrufen. Wenn du einen solchen Link aufgerufen hast, vergewissere dich bitte, dass du die vollständige Adresse aufrufst. - send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Passwort zurücksetzen kannst. - send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Passwort zurücksetzen kannst. + send_instructions: Du erhältst in wenigen Minuten eine E-Mail, sofern deine Adresse unserer Datenbank bekannt ist. In dieser Nachricht befindet sich ein Link. Wenn du diesen aufrufst, kannst du dein Passwort zurücksetzen. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. + send_paranoid_instructions: Du erhältst in wenigen Minuten eine E-Mail, sofern deine Adresse unserer Datenbank bekannt ist. In dieser Nachricht befindet sich ein Link. Wenn du diesen aufrufst, kannst du dein Passwort zurücksetzen. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. updated: Dein Passwort wurde erfolgreich geändert. Du bist jetzt angemeldet. updated_not_active: Dein Passwort wurde erfolgreich geändert. registrations: @@ -100,8 +100,8 @@ de: signed_in: Erfolgreich angemeldet. signed_out: Erfolgreich abgemeldet. unlocks: - send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. - send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. + send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. + send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. unlocked: Dein Konto wurde erfolgreich entsperrt. Bitte melde dich an, um fortzufahren. errors: messages: diff --git a/config/locales/devise.ms.yml b/config/locales/devise.ms.yml index c1165e47da..30eceb239d 100644 --- a/config/locales/devise.ms.yml +++ b/config/locales/devise.ms.yml @@ -81,17 +81,39 @@ ms: failure: Tidak dapat mengesahkan anda daripada %{kind} disebabkan oleh “%{reason}”. success: Berjaya disahkan daripada akaun %{kind}. passwords: + no_token: Anda tidak boleh mengakses halaman ini tanpa datang daripada e-mel tetapan semula kata laluan. Jika anda datang daripada e-mel tetapan semula kata laluan, sila pastikan anda menggunakan URL penuh yang disediakan. + send_instructions: Jika alamat e-mel anda wujud dalam pangkalan data kami, anda akan menerima pautan pemulihan kata laluan di alamat e-mel anda dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + send_paranoid_instructions: Jika alamat e-mel anda wujud dalam pangkalan data kami, anda akan menerima pautan pemulihan kata laluan di alamat e-mel anda dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. updated: Kata laluan anda telah berjaya ditukar. Anda telah didaftar masuk. updated_not_active: Kata laluan anda telah berjaya ditukar. registrations: destroyed: Selamat tinggal! Akaun anda telah berjaya dibatalkan. Kami harap berjumpa lagi. signed_up: Selamat datang! Anda telah berjaya mendaftar. signed_up_but_inactive: Anda telah berjaya mendaftar. Namun, kami tidak dapat mendaftar masuk anda kerana akaun anda belum diaktifkan. + signed_up_but_locked: Anda telah berjaya mendaftar. Walau bagaimanapun, kami tidak dapat melog masuk anda kerana akaun anda dikunci. + signed_up_but_pending: Mesej dengan pautan pengesahan telah dihantar ke alamat e-mel anda. Selepas anda mengklik pautan, kami akan menyemak permohonan anda. Anda akan dimaklumkan jika ia diluluskan. + signed_up_but_unconfirmed: Mesej dengan pautan pengesahan telah dihantar ke alamat e-mel anda. Sila ikuti pautan untuk mengaktifkan akaun anda. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + update_needs_confirmation: Anda berjaya mengemas kini akaun anda, tetapi kami perlu mengesahkan alamat e-mel baharu anda. Sila semak e-mel anda dan ikuti pautan pengesahan untuk mengesahkan alamat e-mel baharu anda. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + updated: Akaun anda telah berjaya dikemas kini. sessions: already_signed_out: Daftar keluar berjaya. signed_in: Daftar masuk berjaya. signed_out: Daftar keluar berjaya. + unlocks: + send_instructions: Anda akan menerima e-mel dengan arahan tentang cara membuka kunci akaun anda dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + send_paranoid_instructions: Jika akaun anda wujud, anda akan menerima e-mel dengan arahan cara membuka kuncinya dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + unlocked: Akaun anda telah berjaya dibuka. Sila log masuk untuk meneruskan. errors: messages: already_confirmed: sudah disahkan, sila cuba mendaftar masuk + confirmation_period_expired: perlu disahkan dalam %{period}, sila minta yang baharu + expired: telah tamat tempoh, sila minta yang baharu not_found: tidak dijumpai + not_locked: tidak dikunci + not_saved: + other: |- + satu + 1 ralat melarang %{resource} ini daripada disimpan: + + Lain-lain + %{count} ralat melarang %{resource} ini daripada disimpan: diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index a396742d84..8d36a3f06e 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -127,6 +127,7 @@ ar: bookmarks: الفواصل المرجعية conversations: المحادثات crypto: التشفير من الطرف إلى نهاية الطرف + favourites: المفضلة filters: عوامل التصفية follow: الإشتراكات والحسابات المكتومة والحسابات المحجوبة follows: الإشتراكات diff --git a/config/locales/doorkeeper.gd.yml b/config/locales/doorkeeper.gd.yml index 2541fce889..4db4497b4e 100644 --- a/config/locales/doorkeeper.gd.yml +++ b/config/locales/doorkeeper.gd.yml @@ -127,6 +127,7 @@ gd: bookmarks: Comharran-lìn conversations: Còmhraidhean crypto: Crioptachadh o cheann gu ceann + favourites: Annsachdan filters: Criathragan follow: Leantainn, mùchaidhean is bacaidhean follows: Leantainn @@ -146,47 +147,49 @@ gd: application: title: Tha feum air ùghdarrachadh OAuth scopes: - admin:read: dàta sam bith a leughadh air an fhrithealaiche - admin:read:accounts: fiosrachadh dìomhair air a h-uile cunntas a leughadh - admin:read:canonical_email_blocks: fiosrachadh dìomhair air a h-uile bacadh puist-d gnàthach a leughadh - admin:read:domain_allows: fiosrachadh dìomhair air a h-uile cead àrainne a leughadh - admin:read:domain_blocks: fiosrachadh dìomhair air a h-uile bacadh àrainne a leughadh - admin:read:email_domain_blocks: fiosrachadh dìomhair air a h-uile bacadh àrainn puist-d a leughadh - admin:read:ip_blocks: fiosrachadh dìomhair air a h-uile bacadh IP a leughadh - admin:read:reports: fiosrachadh dìomhair air a h-uile gearan is cunntasan a chaidh a ghearan mun dèidhinn a leughadh - admin:write: dàta sam bith atharrachadh air an fhrithealaiche - admin:write:accounts: gnìomhan na maorsainneachd a ghabhail air cunntasan - admin:write:canonical_email_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean puist-d gnàthach - admin:write:domain_allows: gnìomhan na maorsainneachd a ghabhail air ceadan àrainn - admin:write:domain_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean àrainne - admin:write:email_domain_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean àrainn puist-d - admin:write:ip_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean IP - admin:write:reports: gnìomhan na maorsainneachd a ghabhail air gearanan - crypto: crioptachadh o cheann gu ceann a chleachdadh - follow: dàimhean chunntasan atharrachadh - push: na brathan putaidh agad fhaighinn - read: dàta sam bith a’ cunntais agad a leughadh - read:accounts: fiosrachadh nan cunntasan fhaicinn - read:blocks: na bacaidhean agad fhaicinn - read:bookmarks: na comharran-lìn agad fhaicinn - read:filters: na criathragan agad fhaicinn - read:follows: faicinn cò a tha thu a’ leantainn - read:lists: na liostaichean agad fhaicinn - read:mutes: na mùchaidhean agad fhaicinn - read:notifications: na brathan agad faicinn - read:reports: na gearanan agad fhaicinn - read:search: lorg a dhèanamh às do leth - read:statuses: na postaichean uile fhaicinn - write: dàta sam bith a’ cunntais agad atharrachadh - write:accounts: a’ phròifil agad atharrachadh - write:blocks: cunntasan is àrainnean a bhacadh - write:bookmarks: comharran-lìn a dhèanamh de phostaichean - write:conversations: còmhraidhean a mhùchadh is a sguabadh às - write:filters: criathragan a chruthachadh + admin:read: leughadh dàta sam bith air an fhrithealaiche + admin:read:accounts: leughadh fiosrachaidh dhìomhair air a h-uile cunntas + admin:read:canonical_email_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh puist-d gnàthach + admin:read:domain_allows: leughadh fiosrachaidh dhìomhair air a h-uile cead àrainne + admin:read:domain_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh àrainne + admin:read:email_domain_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh àrainn puist-d + admin:read:ip_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh IP + admin:read:reports: leughadh fiosrachaidh dhìomhair air a h-uile gearan is cunntasan a chaidh a ghearan mun dèidhinn + admin:write: atharrachadh dàta sam bith air an fhrithealaiche + admin:write:accounts: gnìomhan na maorsainneachd air cunntasan + admin:write:canonical_email_blocks: gnìomhan na maorsainneachd air bacaidhean puist-d gnàthach + admin:write:domain_allows: gnìomhan na maorsainneachd air ceadan àrainn + admin:write:domain_blocks: gnìomhan na maorsainneachd air bacaidhean àrainne + admin:write:email_domain_blocks: gnìomhan na maorsainneachd air bacaidhean àrainn puist-d + admin:write:ip_blocks: gnìomhan na maorsainneachd air bacaidhean IP + admin:write:reports: gnìomhan na maorsainneachd air gearanan + crypto: cleachdadh crioptachaidh o cheann gu ceann + follow: atharrachadh dàimhean chunntasan + push: faighinn nam brathan putaidh agad + read: leughadh dàta sam bith a’ cunntais agad + read:accounts: sealltainn fiosrachadh nan cunntasan + read:blocks: sealltainn nam bacaidhean agad + read:bookmarks: sealltainn nan comharran-lìn agad + read:favourites: sealltainn nan annsachdan agad + read:filters: sealltainn nan criathragan agad + read:follows: sealltainn cò a tha thu a’ leantainn + read:lists: sealltainn nan liostaichean agad + read:mutes: sealltainn nam mùchaidhean agad + read:notifications: sealltainn nam brathan agad + read:reports: sealltainn nan gearanan agad + read:search: lorg às do leth + read:statuses: sealltainn nam postaichean uile + write: atharrachadh dàta sam bith a’ cunntais agad + write:accounts: atharrachadh na pròifile agad + write:blocks: bacadh chunntasan is àrainnean + write:bookmarks: cruthachadh chomharran-lìn de phostaichean + write:conversations: mùchadh is sguabadh às chòmhraidhean + write:favourites: cur phostaichean ris na h-annsachdan + write:filters: cruthachadh chriathragan write:follows: leantainn dhaoine - write:lists: liostaichean a chruthachadh - write:media: faidhlichean meadhain a luchdadh suas - write:mutes: daoine is còmhraidhean a mhùchadh - write:notifications: na brathan agad fhalamhachadh - write:reports: gearan a dhèanamh mu chàch - write:statuses: postaichean fhoillseachadh + write:lists: cruthachadh liostaichean + write:media: luchdadh suas fhaidhlichean meadhain + write:mutes: mùchadh dhaoine is chòmhraidhean + write:notifications: falamhachadh nam brathan agad + write:reports: gearan mu chàch + write:statuses: foillseachadh phostaichean diff --git a/config/locales/doorkeeper.ms.yml b/config/locales/doorkeeper.ms.yml index c8d3043298..32fb0044bb 100644 --- a/config/locales/doorkeeper.ms.yml +++ b/config/locales/doorkeeper.ms.yml @@ -4,21 +4,103 @@ ms: attributes: doorkeeper/application: name: Nama aplikasi + redirect_uri: Ubah hala URI + scopes: Skop + website: Laman web permohonan + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: tidak boleh mengandungi serpihan. + invalid_uri: mestilah URI yang sah. + relative_uri: mestilah URI mutlak. + secured_uri: mestilah URI HTTPS/SSL. doorkeeper: applications: buttons: + authorize: Benarkan cancel: Batal + destroy: Musnah edit: Sunting submit: Hantar confirmations: destroy: Anda pasti? + edit: + title: Mengedit permohonan + form: + error: Alamak! Semak borang anda untuk kemungkinan kesilapan + help: + native_redirect_uri: Gunakan %{native_redirect_uri} untuk ujian tempatan + redirect_uri: Gunakan satu barisan setiap URI + scopes: Asingkan skop dengan ruang. Biarkan kosong untuk menggunakan skop lalai. index: + application: Aplikasi + callback_url: URL callback delete: Padam + empty: Anda tidak mempunyai aplikasi. name: Nama + new: Aplikasi baru + scopes: Skop show: Paparkan + title: Aplikasi anda + new: + title: Aplikasi baru + show: + actions: Tindakan + application_id: Kunci klien + callback_urls: URLs Callback + scopes: Skop + secret: Rahsia klien + title: 'Aplikasi: %{name}' + authorizations: + buttons: + authorize: Benarkan + deny: Nafikan + error: + title: Ralat telah berlaku + new: + prompt_html: "%{client_name} ingin mendapatkan kebenaran untuk mengakses akaun anda. Ia adalah aplikasi pihak ketiga. Jika anda tidak mempercayainya, maka anda tidak seharusnya membenarkannya." + review_permissions: Semak kebenaran + title: Kebenaran diperlukan + show: + title: Salin kod kebenaran ini dan tampalkannya pada aplikasi. authorized_applications: + buttons: + revoke: Batalkan + confirmations: + revoke: Adakah anda pasti? index: + authorized_at: Dibenarkan on %{date} + description_html: Ini adalah aplikasi yang boleh mengakses akaun lalui kegunaan API. Jika terdapat aplikasi yang anda tidak kenali di sini, atau aplikasi tidak berfungsi, anda boleh membatalkan aksesnya. + last_used_at: Terakhir digunakan pada %{date} + never_used: Tidak pernah digunakan + scopes: Kebenaran superapp: Dalaman + title: Aplikasi anda your dibenarkan + errors: + messages: + access_denied: Pemilik sumber atau server kebenaran menolak permintaan. + credential_flow_not_configured: Carian Pemilik Sumber gagal kerana Doorkeeper.configure.resource_owner_authenticator tidak dikonfigurasikan. + invalid_client: Pengesahan pelanggan gagal disebabkan oleh pelanggan yang tidak diketahui, tiada pengesahan pelanggan disertakan atau kaedah pengesahan yang tidak disokong. + invalid_grant: Pemberian kebenaran yang diberikan adalah tidak sah, tamat tempoh, dibatalkan, tidak sepadan dengan URI pengalihan yang digunakan dalam permintaan kebenaran atau telah dikeluarkan kepada klien lain. + invalid_redirect_uri: Uri ubah hala yang disertakan tidak sah. + invalid_request: + missing_param: 'Parameter yang diperlukan hilang: %{value}.' + request_not_authorized: Permintaan perlu dibenarkan. Parameter yang diperlukan untuk membenarkan permintaan tiada atau tidak sah. + unknown: Permintaan itu tidak mempunyai parameter yang diperlukan, termasuk nilai parameter yang tidak disokong, atau sebaliknya salah bentuk. + invalid_resource_owner: Bukti kelayakan pemilik sumber yang diberikan tidak sah atau pemilik sumber tidak dapat ditemui + invalid_scope: Skop yang diminta tidak sah, tidak diketahui atau salah bentuk. + invalid_token: + expired: Token akses telah tamat tempoh + revoked: Token akses telah dibatalkan + unknown: Token akses tidak sah + resource_owner_authenticator_not_configured: Carian Pemilik Sumber gagal kerana Doorkeeper.configure.resource_owner_authenticator tidak dikonfigurasikan. + server_error: Server kebenaran mengalami keadaan yang tidak dijangka yang menghalangnya daripada memenuhi permintaan. + temporarily_unavailable: Server kebenaran pada masa ini tidak dapat mengendalikan permintaan kerana beban berlebihan sementara atau penyelenggaraan server. + unauthorized_client: Klien tidak dibenarkan untuk melaksanakan permintaan ini menggunakan kaedah ini. + unsupported_grant_type: Jenis pemberian kebenaran tidak disokong oleh server kebenaran. + unsupported_response_type: Server kebenaran tidak menyokong jenis respons ini. flash: applications: create: @@ -27,25 +109,87 @@ ms: notice: Aplikasi dipadamkan. update: notice: Aplikasi dikemaskini. + authorized_applications: + destroy: + notice: Aplikasi dipadamkan. grouped_scopes: + access: + read: Akses baca sahaja + read/write: Akses baca dan tulis + write: Akses tulis sahaja title: accounts: Akaun admin/accounts: Pengurusan akaun admin/all: Semua fungsi pengurusan admin/reports: Pengurusan laporan + all: Akses penuh ke akaun Mastodon anda + blocks: Blok + bookmarks: Penanda buku conversations: Perbualan + crypto: Penyulitan hujung ke hujung + favourites: Kegemaran + filters: Penapis + follow: Ikut, Senyap dan Blok follows: Ikutan + lists: Senarai media: Lampiran media + mutes: Senyapkan notifications: Pemberitahuan push: Pemberitahuan segera reports: Laporan search: Cari statuses: Hantaran + layouts: + admin: + nav: + applications: Aplikasi + oauth2_provider: Pembekal OAuth2 + application: + title: Keizinan OAuth diperlukan scopes: admin:read: baca semua data pada pelayan admin:read:accounts: baca maklumat sensitif untuk semua akaun + admin:read:canonical_email_blocks: baca maklumat sensitif semua blok e-mel kanonik + admin:read:domain_allows: baca maklumat sensitif semua domain yang dibenarkan + admin:read:domain_blocks: baca maklumat sensitif semua blok domain + admin:read:email_domain_blocks: baca maklumat sensitif semua blok domain e-mel + admin:read:ip_blocks: baca maklumat sensitif semua blok IP admin:read:reports: baca maklumat sensitif untuk semua laporan dan akaun-akaun yang dilaporkan admin:write: mengubah semua data pada pelayan + admin:write:accounts: melakukan tindakan penyederhanaan pada akaun + admin:write:canonical_email_blocks: melakukan tindakan penyederhanaan pada blok e-mel kanonik + admin:write:domain_allows: melakukan tindakan penyederhanaan pada domain yang dibenarkan + admin:write:domain_blocks: melakukan tindakan penyederhanaan pada blok domain + admin:write:email_domain_blocks: melakukan tindakan penyederhanaan pada blok domain e-mel + admin:write:ip_blocks: melakukan tindakan penyederhanaan pada blok IP + admin:write:reports: melakukan tindakan penyederhanaan ke atas laporan + crypto: gunakan penyulitan hujung ke hujung + follow: mengubah suai perhubungan akaun + push: terima pemberitahuan tolak anda + read: baca semua data akaun anda + read:accounts: lihat maklumat akaun + read:blocks: lihat blok anda + read:bookmarks: lihat penanda halaman anda + read:favourites: lihat kegemaran anda + read:filters: lihat penapis anda + read:follows: lihat senarai yang anda ikuti + read:lists: lihat senarai anda + read:mutes: lihat senarai yang anda senyapkan + read:notifications: lihat notifikasi anda + read:reports: lihat laporan anda + read:search: cari bagi pihak anda read:statuses: lihat semua hantaran + write: ubahsuai semua data akaun anda + write:accounts: ubaisuai profail anda + write:blocks: domain dan akaun blok write:bookmarks: menandabuku hantaran + write:conversations: senyapkan dan padamkan perbualan + write:favourites: pos kesukaan + write:filters: cipta penapis + write:follows: ikut orang + write:lists: cipta senarai + write:media: memuat naik fail media + write:mutes: membisukan orang dan perbualan + write:notifications: kosongkan pemberitahuan anda + write:reports: melaporkan orang lain write:statuses: terbitkan hantaran diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 0ce2c4c30f..e08939e146 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -798,6 +798,7 @@ gd: approved: Tha aontachadh riatanach airson clàradh none: Chan fhaod neach sam bith clàradh open: "’S urrainn do neach sam bith clàradh" + title: Roghainnean an fhrithealaiche site_uploads: delete: Sguab às am faidhle a chaidh a luchdadh suas destroyed_msg: Chaidh an luchdadh suas dhan làrach a sguabadh às! @@ -1314,12 +1315,14 @@ gd: bookmarks_html: Tha thu an impis suas ri %{total_items} post(aichean) o %{filename} a chur an àite nan comharra-lìn agad. domain_blocking_html: Tha thu an impis suas ri %{total_items} àrainn(ean) o %{filename} a chur an àite liosta nam bacaidhean àrainne agad. following_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a leantainn agus sguiridh tu a leantainn duine sam bith eile. + lists_html: Tha thu an impis susbaint %{filename} a chur an àite nan liostaichean agad. Thèid suas ri %{total_items}cunntas(an) a chur ri liostaichean ùra. muting_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a chur an àite liosta nan cunntasan mùchte agad. preambles: blocking_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a bhacadh. bookmarks_html: Tha thu an impis suas ri %{total_items} post(aichean) o %{filename} a chur ris na h-annsachdan agad. domain_blocking_html: Tha thu an impis suas ri %{total_items} àrainn(ean) o %{filename} a bhacadh. following_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a leantainn. + lists_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a chur ris na liostaichean agad. Thèid liostaichean ùra a chruthachadh mur eil liostaichean ann airson nan cunntasan a chur ris. muting_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a mhùchadh. preface: "’S urrainn dhut dàta ion-phortadh a dh’às-phortaich thu o fhrithealaiche eile, can liosta nan daoine a leanas tu no a tha thu a’ bacadh." recent_imports: Ion-phortaidhean o chionn goirid @@ -1336,6 +1339,7 @@ gd: bookmarks: Ag ion-phortadh comharran-leabhair domain_blocking: Ag ion-phortadh àrainnean bacte following: Ion-phortaich cunntasan ’gan leantainn + lists: Ag ion-phortadh liostaichean muting: Ag ion-phortadh cunntasan mùchte type: Seòrsa an ion-phortaidh type_groups: @@ -1346,6 +1350,7 @@ gd: bookmarks: Comharran-lìn domain_blocking: Liosta-bhacaidh àrainnean following: Liosta dhen fheadhainn a leanas tu + lists: Liostaichean muting: Liosta a’ mhùchaidh upload: Luchdaich suas invites: diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 678dbcd762..e7d20891b7 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -89,6 +89,7 @@ ms: moderation: active: Aktif all: Semua + disabled: Dimatikan pending: Menunggu silenced: Terhad suspended: Digantungkan @@ -113,12 +114,15 @@ ms: redownloaded_msg: Berjaya segarkan semula profil %{username} daripada asalnya reject: Tolak rejected_msg: Berjaya menolak permohonan pendaftaran %{username} + remote_suspension_irreversible: Data akaun ini telah dipadamkan secara tidak dapat dipulihkan. remove_avatar: Buang avatar remove_header: Buang pengepala removed_avatar_msg: Berjaya membuang imej avatar %{username} removed_header_msg: Berjaya membuang imej pengepala %{username} resend_confirmation: already_confirmed: Pengguna ini telah disahkan + send: Hantar semula pautan pengesahan + success: Pautan pengesahan berjaya dihantar! reset: Tetapkan semula reset_password: Tetapkan semula kata laluan resubscribe: Langgan semula @@ -126,6 +130,7 @@ ms: search: Cari search_same_email_domain: Pengguna lain dengan domain e-mel yang sama search_same_ip: Pengguna lain dengan alamat IP yang sama + security: Keselamatan security_measures: only_password: Kata laluan sahaja password_and_2fa: Kata laluan dan 2FA @@ -369,6 +374,12 @@ ms: undo: Buang kebenaran persekutuan dengan domain domain_blocks: add_new: Tambah penyekatan domain baharu + confirm_suspension: + cancel: Batal + confirm: Gantung + permanent_action: Membuat asal penggantungan tidak akan memulihkan sebarang data atau perhubungan. + preamble_html: Anda akan menggantung %{domain} dan subdomainnya. + remove_all_data: Ini akan mengalih keluar semua kandungan, media dan data profil untuk akaun domain ini daripada sever anda. created_msg: Sekatan domain sedang diproses destroyed_msg: Sekatan domain telah diundurkan domain: Domain @@ -414,6 +425,7 @@ ms: resolve: Menyelesaikan domain title: Sekat domain e-mel baharu no_email_domain_block_selected: Tiada sekatan domain e-mel diubah kerana tiada yang dipilih + not_permitted: Tidak dibenarkan resolved_through_html: Diselesaikan melalui %{domain} title: Domain e-mel disekat export_domain_allows: @@ -423,6 +435,9 @@ ms: export_domain_blocks: import: existing_relationships_warning: Hubungan ikut sedia ada + title: Import blok domain + new: + title: Import blok domain no_file: Tiada fail yang dipilih follow_recommendations: description_html: "Saranan ikutan membantu pengguna baharu mencari kandungan menarik dengan cepat. Apabila pengguna belum cukup berinteraksi dengan akaun lain untuk membentuk saranan ikutan tersendiri, akaun-akaun inilah yang akan disarankan. Ia dinilai semula setiap hari dari gabungan keterlibatan tertinggi terkini dan juga jumlah pengikut tempatan tertinggi mengikut bahasa masing-masing." @@ -444,7 +459,10 @@ ms: content_policies: comment: Catatan dalaman policies: + reject_media: Tolak media + reject_reports: Tolak laporan silence: Hadkan + suspend: Gantung policy: Dasar reason: Sebab awam title: Dasar kandungan @@ -454,6 +472,7 @@ ms: instance_followers_measure: pengikut kami di situ instance_follows_measure: pengikut mereka di sini instance_languages_dimension: Bahasa teratas + instance_media_attachments_measure: lampiran media yang disimpan instance_reports_measure: laporan mengenai mereka instance_statuses_measure: Hantaran yang disimpan delivery: @@ -467,6 +486,8 @@ ms: delivery_error_days: Hari ralat penghantaran delivery_error_hint: Jika penghantaran tidak berjaya selama %{count} hari, ia akan ditanda sebagai tidak boleh dihantar. empty: Tiada domain dijumpai. + known_accounts: + other: "%{count} akaun dikenali" moderation: all: Semua limited: Terhad @@ -538,9 +559,11 @@ ms: assign_to_self: Menugaskan kepada saya assigned: Penyederhana yang ditugaskan by_target_domain: Domain bagi akaun yang dilaporkan + cancel: Batal category: Kumpulan comment: none: Tiada + confirm: Konfirm created_at: Dilaporkan delete_and_resolve: Padam hantaran forwarded: Dipanjangkan @@ -556,6 +579,7 @@ ms: delete: Padam placeholder: Terangkan tindakan apa yang telah diambil, atau sebarang kemas kini lain yang berkaitan... title: Catatan + processed_msg: 'Laporan #%{id} berjaya diproses' reopen: Buka semula laporan report: 'Laporan #%{id}' reported_account: Akaun yang dilaporkan @@ -669,6 +693,8 @@ ms: destroyed_msg: Muat naik tapak berjaya dihapuskan! statuses: account: Penulis + batch: + report: Laporan deleted: Dipadamkan favourites: Gemaran history: Sejarah versi @@ -694,16 +720,27 @@ ms: suspend: "%{name} telah menggantungkan akaun %{target}" appeal_approved: Dirayu appeal_pending: Rayuan yang belum selesai + system_checks: + sidekiq_process_check: + message_html: Tiada proses Sidekiq berjalan untuk baris gilir %{value}. Sila semak konfigurasi Sidekiq anda + upload_check_privacy_error: + message_html: "Server web anda salah konfigurasi. Privasi pengguna anda berisiko" + upload_check_privacy_error_object_storage: + message_html: "Ruang objek anda salah konfigurasi. Privasi pengguna anda berisiko" tags: review: Semak status title: Pentadbiran trends: allow: Izin approved: Diluluskan + disallow: Tidak membenarkan links: allow: Membenarkan pautan allow_provider: Membenarkan penerbit + disallow: Tidak membenarkan pautan title: Pautan yang sedang sohor kini + not_allowed_to_trend: Tidak dibenarkan menjadi trend + only_allowed: Hanya dibenarkan preview_card_providers: rejected: Pautan daripada penerbit ini tidak akan menjadi sohor kini title: Penerbit @@ -735,6 +772,7 @@ ms: delete: Padam webhooks: delete: Padam + empty: You don't have any webhook endpoints configured yet. enable: Dayakan enabled: Aktif admin_mailer: @@ -742,15 +780,24 @@ ms: actions: silence: untuk mengehadkan akaun mereka appearance: + advanced_web_interface_hint: 'Jika anda ingin menggunakan keseluruhan lebar skrin anda, antara muka web lanjutan membolehkan anda mengkonfigurasi banyak lajur berbeza untuk melihat seberapa banyak maklumat pada masa yang sama seperti yang anda mahu: Laman Utama, pemberitahuan, garis masa bersekutu, sebarang bilangan senarai dan hashteg.' + discovery: Penemuan localization: guide_link_text: Sesiapa sahaja boleh memberi sumbangan. sensitive_content: Kandungan sensitif application_mailer: notification_preferences: Tukar keutamaan e-mel + salutation: "%{name}," view: 'Lihat:' view_profile: Lihat profil view_status: Lihat hantaran + applications: + logout: Log keluar + your_token: Token akses anda auth: + apply_for_account: Minta akaun + captcha_confirmation: + title: Pemeriksaan keselamatan delete_account: Padam akaun description: prefix_sign_up: Daftar pada Mastodon hari ini! @@ -759,9 +806,19 @@ ms: login: Daftar masuk logout: Daftar keluar migrate_account: Pindah kepada akaun lain + migrate_account_html: Jika anda ingin mengubah hala akaun ini kepada akaun lain, anda boleh konfigurasikannya di sini. or_log_in_with: Atau daftar masuk dengan + progress: + confirm: Sahkan E-mel + details: Maklumat anda + providers: + cas: CAS + saml: SAML register: Daftar registration_closed: "%{instance} tidak menerima ahli-ahli baru" + rules: + accept: Terima + back: Kembali security: Keselamatan status: account_status: Status akaun @@ -774,6 +831,7 @@ ms: datetime: distance_in_words: half_a_minute: Sebentar tadi + less_than_x_seconds: Baru sahaja deletes: proceed: Padam akaun disputes: @@ -818,8 +876,11 @@ ms: '503': Halaman tidak dapat disampaikan kerana kegagalan pelayan sementara. exports: archive_takeout: + date: Tarikh in_progress: Mengkompil arkib anda... request: Minta arkib anda + size: Saiz + blocks: Blok anda csv: CSV domain_blocks: Domain disekat lists: Senarai @@ -832,6 +893,7 @@ ms: keywords: Kata kunci title: Sunting penapis index: + delete: Padam empty: Anda tiada penapis. keywords: other: "%{count} kata kunci" @@ -852,8 +914,18 @@ ms: deselect: Nyahpilih semua none: Tiada imports: + errors: + too_large: Fail terlalu besar + states: + finished: Selesai + in_progress: Dalam proses + scheduled: Dijadualkan + status: Status + types: + lists: Senarai upload: Muat naik invites: + expired: Tamat tempoh expires_in: '1800': 30 minit '21600': 6 jam @@ -867,9 +939,16 @@ ms: password: kata laluan sign_in_token: e-mel kod keselamatan webauthn: kunci keselamatan + mail_subscriptions: + unsubscribe: + title: Hentikan langganan migrations: acct: Dipindah ke + errors: + not_found: tidak dapat dicarikan proceed_with_move: Pindah pengikut + warning: + backreference_required: Akaun baharu mesti terlebih dahulu dikonfigurasikan untuk merujuk semula akaun ini notification_mailer: follow: title: Pengikut baru diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 29065db53f..b6f0d8bfe3 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -741,7 +741,7 @@ nn: preamble: Profileringa av tenaren din skil den frå andre tenarar i nettverket. Informasjonen kan bli vist ulike stadar, til dømes i Mastodon sitt web-grensesnitt, i eigne applikasjonar, i førehandsvisningar på andre nettsider, i meldingsappar og så bortetter. På grunn av dette er det best å halde informasjonen enkel, kort og treffande. title: Profilering captcha_enabled: - desc_html: Dette er avhengig av eksterne skript fra hCaptcha, som kan være et sikkerhets- og personvernproblem. I tillegg kan dette gjøre registreringsprosessen betydelig mindre tilgjengelig for noen (spesielt funksjonshemmede) personer. Av disse grunnene bør du vurdere alternative tiltak som godkjenningsbasert eller invitasjonsbasert registrering. + desc_html: Dette baserer seg på eksterne skript frå hCaptcha, noko som kan vera eit tryggleiks- og personvernsproblem. I tillegg kan dette gjera registreringsprosessen monaleg mindre tilgjengeleg (særleg for folk med nedsett funksjonsevne). Dette gjer at du bør du vurdera alternative tiltak, som til dømes godkjennings- eller invitasjonsbasert registrering. title: Krev at nye brukarar løyser ein CAPTCHA for å bekrefte kontoen sin content_retention: preamble: Styr korleis brukargenerert innhald blir lagra i Mastodon. @@ -1138,7 +1138,7 @@ nn: invalid_domain: er ikkje eit gangbart domenenamn edit_profile: basic_information: Grunnleggande informasjon - hint_html: "Tilpass hva folk ser på din offentlige profil og ved siden av dine innlegg. Det er mer sannsynlig at andre mennesker følger deg tilbake og samhandler med deg når du har fylt ut en profil og et profilbilde." + hint_html: "Tilpass kva folk ser på den offentlege profilen din og ved sida av innlegga dine. Andre vil i større grad fylgja og samhandla med deg når du har eit profilbilete og har fyllt ut profilen din." other: Anna safety_and_privacy: Sikkerheit og personvern errors: @@ -1265,14 +1265,14 @@ nn: bookmarks_html: Du skal til å byta ut bokmerka dine med opp til %{total_items} innlegg frå %{filename}. domain_blocking_html: Du skal til å byta ut domeneblokkeringslista di med opp til %{total_items} domene frå %{filename}. following_html: Du skal til å fylgja opp til %{total_items} brukarkontoar frå %{filename} og slutta å fylgja alle andre. - lists_html: Du er i ferd med å erstatte dine lister med innholdet i %{filename}. Inntil %{total_items} kontoer legges til i nye lister. + lists_html: Du er i ferd med å erstatta listene dine med innhaldet i %{filename}. Opptil %{total_items} kontoar vil bli lagt til i nye lister. muting_html: Du skal til å byta ut lista di over dempa brukarkontoar med opp til %{total_items} brukarkontoar frå %{filename}. preambles: blocking_html: Du skal til å blokkera opp til %{total_items} brukarkontoar frå %{filename}. bookmarks_html: Du skal til å leggja til opp til %{total_items} innlegg frå %{filename} til bokmerka dine. domain_blocking_html: Du skal til å blokkera opp til %{total_items} domene frå %{filename}. following_html: Du skal til å fylgja opp til %{total_items} brukarkontoar frå %{filename}. - lists_html: Du er i ferd med å legge inntil %{total_items} kontoer fra %{filename} til dine lister. Nye lister vil bli opprettet hvis det ikke finnes noen liste å legge til. + lists_html: Du er i ferd med å leggja til opptil %{total_items} kontoar frå %{filename} til i listene dine. Nye lister vil blir oppretta om ingen lister finst frå før. muting_html: Du skal til å dempa opp til %{total_items} brukarkontoar frå %{filename}. preface: Du kan henta inn data som du har eksportert frå ein annan tenar, som t.d. ei liste over folka du fylgjer eller blokkerer. recent_imports: Siste importar @@ -1343,12 +1343,12 @@ nn: unsubscribe: action: Ja, meld av complete: Meldt av - confirmation_html: Er du sikker på at du vil slutte å motta %{type} fra Mastodon %{domain} i e-posten din på %{email}? Du kan når som helst gjenoppta i innstillinger for e-postvarsling. + confirmation_html: Er du sikker på at du ikkje lenger ynskjer å motta %{type} frå Mastodon på %{domain} til e-posten din %{email}? Du kan alltids gjera om på dette i innstillingar for e-postvarsling. emails: notification_emails: - favourite: e-poster om favorittmarkeringer - follow: e-poster om følgere - follow_request: e-poster om følgeforespørsler + favourite: e-postar om favorittmarkeringar + follow: e-postar om nye fylgjarar + follow_request: e-postar om fylgjeførespurnadar mention: e-poster om nevninger reblog: e-poster om fremhevinger resubscribe_html: Hvis du har avsluttet abonnementet ved en feiltakelse, kan du abonnere på nytt i innstillinger for e-postvarsling. diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 15174b2acd..ce4b81f30a 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -40,7 +40,7 @@ de: context: Orte, an denen der Filter aktiv sein soll current_password: Gib aus Sicherheitsgründen bitte das Passwort des aktuellen Kontos ein current_username: Um das zu bestätigen, gib den Profilnamen des aktuellen Kontos ein - digest: Wenn du eine längere Zeit inaktiv bist oder du in deiner Abwesenheit eine Direktnachricht erhalten hast + digest: Wenn du eine längere Zeit inaktiv bist oder du während deiner Abwesenheit in einer privaten Nachricht erwähnt worden bist discoverable: Dein Konto kann von Fremden durch Empfehlungen, Trends und andere Funktionen entdeckt werden email: Du wirst eine E-Mail zur Verifizierung dieser E-Mail-Adresse erhalten header: PNG, GIF oder JPG. Höchstens %{size} groß. Wird auf %{dimensions} px verkleinert @@ -182,7 +182,7 @@ de: display_name: Anzeigename email: E-Mail-Adresse expires_in: Läuft ab - fields: Zusatzfelder + fields: Metadaten header: Titelbild honeypot: "%{label} (nicht ausfüllen)" inbox_url: Inbox-URL des Relais @@ -226,7 +226,7 @@ de: type: Typ username: Profilname username_or_email: Profilname oder E-Mail - whole_word: Phrasensuche mit exakter Zeichenfolge erzwingen + whole_word: Exakte Zeichenfolge email_domain_block: with_dns_records: MX-Einträge und IP-Adressen der Domain einbeziehen featured_tag: @@ -259,14 +259,14 @@ de: status_page_url: Statusseite (URL) theme: Standard-Design thumbnail: Vorschaubild des Servers - timeline_preview: Nicht-authentifizierten Zugriff auf die öffentliche Timeline gestatten + timeline_preview: Nicht-authentisierten Zugriff auf öffentliche Timelines gestatten trendable_by_default: Trends ohne vorherige Überprüfung erlauben trends: Trends aktivieren trends_as_landing_page: Trends als Landingpage verwenden interactions: - must_be_follower: Benachrichtigungen von Profilen unterdrücken, die mir nicht folgen - must_be_following: Benachrichtigungen von Profilen unterdrücken, denen ich nicht folge - must_be_following_dm: Direktnachrichten von Profilen, denen ich nicht folge, ablehnen + must_be_follower: Benachrichtigungen von Profilen, die mir nicht folgen, ausblenden + must_be_following: Benachrichtigungen von Profilen, denen ich nicht folge, ausblenden + must_be_following_dm: Private Nachrichten von Profilen, denen ich nicht folge, ausblenden invite: comment: Kommentar invite_request: diff --git a/config/locales/simple_form.ms.yml b/config/locales/simple_form.ms.yml index 57aff248b6..8f4854858d 100644 --- a/config/locales/simple_form.ms.yml +++ b/config/locales/simple_form.ms.yml @@ -2,6 +2,8 @@ ms: simple_form: hints: + account: + display_name: Nama penuh anda atau nama anda yang menyeronokkan. account_alias: acct: Tentukan namapengguna@domain akaun yang ingin anda alihkan daripada account_migration: @@ -44,6 +46,8 @@ ms: site_contact_username: Bagaimana orang boleh menghubungi anda pada Mastodon. site_extended_description: Apa-apa maklumat tambahan yang mungkin berguna untuk pelawat dan pengguna anda. Boleh distruktur dengan sintaks Markdown. site_terms: Gunakan dasar polisi anda atau biarkan kosong untuk menggunakan lalai. Boleh distruktur dengan sintaks Markdown. + site_title: Bagaimana orang boleh merujuk kepada server anda selain nama domainnya. + status_page_url: URL halaman yang membolehkan orang ramai melihat status server ini semasa gangguan form_challenge: current_password: Anda sedang memasuki kawasan selamat imports: diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 243d7a133b..b35c11f362 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -62,7 +62,7 @@ vi: setting_show_application: Tên ứng dụng bạn dùng để đăng tút sẽ hiện trong chi tiết của tút setting_use_blurhash: Lớp phủ mờ dựa trên màu sắc của hình ảnh nhạy cảm setting_use_pending_items: Dồn lại toàn bộ tút mới và chỉ hiển thị khi nhấn vào - username: Chỉ chấp nhận ký tự, số và dấu gạch dưới + username: Chỉ dùng ký tự, số và dấu gạch dưới whole_word: Khi từ khóa hoặc cụm từ là chữ và số, nó sẽ chỉ hiện ra những từ chính xác như vậy domain_allow: domain: Máy chủ này sẽ tiếp nhận dữ liệu, rồi sau đó xử lý và lưu trữ diff --git a/config/locales/vi.yml b/config/locales/vi.yml index e8f3c26b9c..54f9f7a805 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1000,7 +1000,7 @@ vi: privacy_policy_agreement_html: Tôi đã đọc và đồng ý chính sách bảo mật progress: confirm: Xác minh email - details: Thông tin của bạn + details: Điền thông tin review: Đợi duyệt rules: Đọc nội quy providers: @@ -1021,18 +1021,18 @@ vi: security: Bảo mật set_new_password: Đặt mật khẩu mới setup: - email_below_hint_html: Kiểm tra thư rác của bạn hoặc yêu cầu gửi lại. Bạn có thể sửa địa chỉ email của mình nếu sai. + email_below_hint_html: Kiểm tra hộp thư rác hoặc yêu cầu gửi lại. Bạn có thể sửa địa chỉ email của mình nếu sai. email_settings_hint_html: Nhấn vào liên kết chúng tôi vừa gửi để xác minh %{email}. Nhanh nhé bạn. link_not_received: Không nhận được mã? new_confirmation_instructions_sent: Bạn sẽ nhận được một email mới với liên kết xác nhận sau vài phút! - title: Kiểm tra hộp thư của bạn + title: Kiểm tra email của bạn sign_in: preamble_html: Đăng nhập bằng tài khoản %{domain}. Nếu tài khoản của bạn được lưu trữ trên một máy chủ khác, bạn sẽ không thể đăng nhập tại đây. title: Đăng nhập %{domain} sign_up: - manual_review: Đăng ký trên %{domain} cần duyệt thủ công. Để giúp chúng tôi xử lý nhanh, hãy viết một chút về bản thân và lý do bạn muốn có một tài khoản trên %{domain}. + manual_review: "%{domain} sẽ duyệt đăng ký thủ công. Để giúp chúng tôi duyệt nhanh, hãy viết một chút về bản thân và lý do bạn muốn có một tài khoản trên %{domain}." preamble: Với tài khoản trên máy chủ Mastodon này, bạn sẽ có thể theo dõi bất kỳ người nào trên các máy chủ khác, bất kể tài khoản của họ ở đâu. - title: Cho phép bạn đăng ký trên %{domain}. + title: Đang đăng ký trên %{domain}. status: account_status: Trạng thái tài khoản confirming: Đang chờ xác minh email. From 426ca4f76ce9cedf3a9eeb8ccafd3c461ae5c428 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:47:55 +0200 Subject: [PATCH 43/71] Update dependency aws-sdk-s3 to v1.132.1 (#26423) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 46a10e5acc..6507b0e42e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -125,7 +125,7 @@ GEM awrence (1.2.1) aws-eventstream (1.2.0) aws-partitions (1.793.0) - aws-sdk-core (3.180.0) + aws-sdk-core (3.180.3) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) @@ -133,7 +133,7 @@ GEM aws-sdk-kms (1.71.0) aws-sdk-core (~> 3, >= 3.177.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.132.0) + aws-sdk-s3 (1.132.1) aws-sdk-core (~> 3, >= 3.179.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) From 74c422ad0a2b46e6a0588a4d7e1ed4cec3ea9527 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:48:41 +0200 Subject: [PATCH 44/71] Update dependency immutable to v4.3.2 (#26425) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 629eee40c5..fa88008a3e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6678,16 +6678,11 @@ immutable@^3.8.2: resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== -immutable@^4.0.0: +immutable@^4.0.0, immutable@^4.0.0-rc.1, immutable@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.2.tgz#f89d910f8dfb6e15c03b2cae2faaf8c1f66455fe" integrity sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA== -immutable@^4.0.0-rc.1, immutable@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.1.tgz#17988b356097ab0719e2f741d56f3ec6c317f9dc" - integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A== - import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -11310,6 +11305,7 @@ stringz@^2.1.0: char-regex "^1.0.2" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + name strip-ansi-cjs version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== From 65f56bd849752fdf338e0bf30ef227c83a6a6ca4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:50:22 +0200 Subject: [PATCH 45/71] Update dependency haml_lint to v0.49.3 (#26424) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6507b0e42e..c716403127 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -332,7 +332,7 @@ GEM activesupport (>= 5.1) haml (>= 4.0.6) railties (>= 5.1) - haml_lint (0.49.2) + haml_lint (0.49.3) haml (>= 4.0, < 6.2) parallel (~> 1.10) rainbow From c645308c6eaae5ba86f5df63ff6f680d3da47d57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:23:00 +0200 Subject: [PATCH 46/71] Update dependency eslint-config-prettier to v9 (#26434) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 147460a100..cac350a12a 100644 --- a/package.json +++ b/package.json @@ -189,7 +189,7 @@ "@typescript-eslint/parser": "^6.0.0", "babel-jest": "^29.5.0", "eslint": "^8.41.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^9.0.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-import": "~2.28.0", diff --git a/yarn.lock b/yarn.lock index fa88008a3e..2fdbed5c22 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5341,10 +5341,10 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.8.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== +eslint-config-prettier@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== eslint-import-resolver-node@^0.3.7: version "0.3.7" From ba318a42febdf2c1cebf744db183ec3181895696 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:23:37 +0200 Subject: [PATCH 47/71] Update dependency sass to v1.65.1 (#26433) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2fdbed5c22..88a23e9655 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10608,9 +10608,9 @@ sass-loader@^10.2.0: semver "^7.3.2" sass@^1.62.1: - version "1.64.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.2.tgz#0d9805ad6acf31c59c3acc725fcfb91b7fcc6909" - integrity sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg== + version "1.65.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.65.1.tgz#8f283b0c26335a88246a448d22e1342ba2ea1432" + integrity sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 43741ba2b9099e6b499b1f7aeff2e284adc395f6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:24:34 +0200 Subject: [PATCH 48/71] Update dependency mime-types to '~> 3.5.0' (#26431) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 27adec7a09..f62ec7b8fa 100644 --- a/Gemfile +++ b/Gemfile @@ -59,7 +59,7 @@ gem 'httplog', '~> 1.6.2' gem 'idn-ruby', require: 'idn' gem 'kaminari', '~> 1.2' gem 'link_header', '~> 0.0' -gem 'mime-types', '~> 3.4.1', require: 'mime/types/columnar' +gem 'mime-types', '~> 3.5.0', require: 'mime/types/columnar' gem 'nokogiri', '~> 1.15' gem 'nsa', github: 'jhawthorn/nsa', ref: 'e020fcc3a54d993ab45b7194d89ab720296c111b' gem 'oj', '~> 3.14' diff --git a/Gemfile.lock b/Gemfile.lock index c716403127..4428f9c0de 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -451,9 +451,9 @@ GEM hashie (~> 5.0) memory_profiler (1.0.1) method_source (1.0.0) - mime-types (3.4.1) + mime-types (3.5.0) mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) + mime-types-data (3.2023.0808) mini_mime (1.1.2) mini_portile2 (2.8.4) minitest (5.19.0) @@ -874,7 +874,7 @@ DEPENDENCIES mario-redis-lock (~> 1.2) md-paperclip-azure (~> 2.2) memory_profiler - mime-types (~> 3.4.1) + mime-types (~> 3.5.0) net-http (~> 0.3.2) net-ldap (~> 0.18) nokogiri (~> 1.15) From 54dfacafcb82404ebbfda29e8041b5faaced66b6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:39:47 +0200 Subject: [PATCH 49/71] Update dependency regenerator-runtime to ^0.14.0 (#26432) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index cac350a12a..5c109c2588 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "redux": "^4.2.1", "redux-immutable": "^4.0.0", "redux-thunk": "^2.4.2", - "regenerator-runtime": "^0.13.11", + "regenerator-runtime": "^0.14.0", "requestidlecallback": "^0.3.0", "reselect": "^4.1.8", "rimraf": "^5.0.1", diff --git a/yarn.lock b/yarn.lock index 88a23e9655..00537c9cad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10278,6 +10278,11 @@ regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" From 1a308d1a22dfbaa2d09b2380ee8f0e27428f10c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:44:00 +0200 Subject: [PATCH 50/71] Update dependency rails to v7.0.7 (#26428) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 112 +++++++++++++++++++++++++-------------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4428f9c0de..9eef038557 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -39,47 +39,47 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) + actioncable (7.0.7) + actionpack (= 7.0.7) + activesupport (= 7.0.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + actionmailbox (7.0.7) + actionpack (= 7.0.7) + activejob (= 7.0.7) + activerecord (= 7.0.7) + activestorage (= 7.0.7) + activesupport (= 7.0.7) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.6) - actionpack (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activesupport (= 7.0.6) + actionmailer (7.0.7) + actionpack (= 7.0.7) + actionview (= 7.0.7) + activejob (= 7.0.7) + activesupport (= 7.0.7) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.6) - actionview (= 7.0.6) - activesupport (= 7.0.6) + actionpack (7.0.7) + actionview (= 7.0.7) + activesupport (= 7.0.7) rack (~> 2.0, >= 2.2.4) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.6) - actionpack (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + actiontext (7.0.7) + actionpack (= 7.0.7) + activerecord (= 7.0.7) + activestorage (= 7.0.7) + activesupport (= 7.0.7) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.6) - activesupport (= 7.0.6) + actionview (7.0.7) + activesupport (= 7.0.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -89,22 +89,22 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (7.0.6) - activesupport (= 7.0.6) + activejob (7.0.7) + activesupport (= 7.0.7) globalid (>= 0.3.6) - activemodel (7.0.6) - activesupport (= 7.0.6) - activerecord (7.0.6) - activemodel (= 7.0.6) - activesupport (= 7.0.6) - activestorage (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activesupport (= 7.0.6) + activemodel (7.0.7) + activesupport (= 7.0.7) + activerecord (7.0.7) + activemodel (= 7.0.7) + activesupport (= 7.0.7) + activestorage (7.0.7) + actionpack (= 7.0.7) + activejob (= 7.0.7) + activerecord (= 7.0.7) + activesupport (= 7.0.7) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.6) + activesupport (7.0.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -454,7 +454,7 @@ GEM mime-types (3.5.0) mime-types-data (~> 3.2015) mime-types-data (3.2023.0808) - mini_mime (1.1.2) + mini_mime (1.1.5) mini_portile2 (2.8.4) minitest (5.19.0) msgpack (1.7.1) @@ -464,7 +464,7 @@ GEM uri net-http-persistent (4.0.2) connection_pool (~> 2.2) - net-imap (0.3.6) + net-imap (0.3.7) date net-protocol net-ldap (0.18.0) @@ -555,20 +555,20 @@ GEM rack rack-test (2.1.0) rack (>= 1.3) - rails (7.0.6) - actioncable (= 7.0.6) - actionmailbox (= 7.0.6) - actionmailer (= 7.0.6) - actionpack (= 7.0.6) - actiontext (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activemodel (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + rails (7.0.7) + actioncable (= 7.0.7) + actionmailbox (= 7.0.7) + actionmailer (= 7.0.7) + actionpack (= 7.0.7) + actiontext (= 7.0.7) + actionview (= 7.0.7) + activejob (= 7.0.7) + activemodel (= 7.0.7) + activerecord (= 7.0.7) + activestorage (= 7.0.7) + activesupport (= 7.0.7) bundler (>= 1.15.0) - railties (= 7.0.6) + railties (= 7.0.7) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -583,9 +583,9 @@ GEM rails-i18n (7.0.7) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) + railties (7.0.7) + actionpack (= 7.0.7) + activesupport (= 7.0.7) method_source rake (>= 12.2) thor (~> 1.0) @@ -801,7 +801,7 @@ GEM railties (>= 5.2) semantic_range (>= 2.3.0) websocket (1.2.9) - websocket-driver (0.7.5) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wisper (2.0.1) From 700f948fc9eb172f4ecda826448d4d30e8ea29cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:44:14 +0200 Subject: [PATCH 51/71] Update dependency @rails/ujs to v7.0.7 (#26422) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 00537c9cad..a20d7f2838 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1774,9 +1774,9 @@ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@rails/ujs@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.6.tgz#fd8937c92335f3da9495e07292511ad5f7547a6a" - integrity sha512-s5v3AC6AywOIFMz0RIMW83Xc8FPIvKMkP3ZHFlM4ISNkhdUwP9HdhVtxxo6z3dIhe9vI0Our2A8kN/QpUV02Qg== + version "7.0.7" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.7.tgz#54af8d66160a8a7bf7d8f184703d2bf4b3fab914" + integrity sha512-J2v5Ca7HgejO7diGKiDylaVDQKmbQ5FJih6Oo3hXuBKEuXlcaccJu64lj8MNVLaPVyZx0g4gaOQZQz95QEb/hg== "@redis/bloom@1.2.0": version "1.2.0" From 05022c9218f4624f210110cf7eb8bf0ffb06dad5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:59:42 +0200 Subject: [PATCH 52/71] Update dependency pg to v8.11.2 (#26426) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index a20d7f2838..545cce46b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9172,11 +9172,16 @@ pg-cloudflare@^1.1.1: resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== -pg-connection-string@^2.6.0, pg-connection-string@^2.6.1: +pg-connection-string@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.1.tgz#78c23c21a35dd116f48e12e23c0965e8d9e2cbfb" integrity sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg== +pg-connection-string@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" + integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== + pg-int8@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" @@ -9222,13 +9227,13 @@ pg-types@^4.0.1: postgres-range "^1.1.1" pg@^8.5.0: - version "8.11.1" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.1.tgz#297e0eb240306b1e9e4f55af8a3bae76ae4810b1" - integrity sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ== + version "8.11.2" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.2.tgz#1a23f6de7bfb65ba56e4dd15df96668d319900c4" + integrity sha512-l4rmVeV8qTIrrPrIR3kZQqBgSN93331s9i6wiUiLOSk0Q7PmUxZD/m1rQI622l3NfqBby9Ar5PABfS/SulfieQ== dependencies: buffer-writer "2.0.0" packet-reader "1.0.0" - pg-connection-string "^2.6.1" + pg-connection-string "^2.6.2" pg-pool "^3.6.1" pg-protocol "^1.6.0" pg-types "^2.1.0" From 7572fa21a36de73e86ed4a1c4b00e142c51d98ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 11:01:40 +0200 Subject: [PATCH 53/71] Update babel monorepo to v7.22.10 (#26421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 405 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 210 insertions(+), 195 deletions(-) diff --git a/yarn.lock b/yarn.lock index 545cce46b3..a1c670f013 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,53 +29,61 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: "@babel/highlight" "^7.22.5" +"@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" + integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== + dependencies: + "@babel/highlight" "^7.22.10" + chalk "^2.4.2" + "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.10.4", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.22.1": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" + integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" + "@babel/helpers" "^7.22.10" + "@babel/parser" "^7.22.10" "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" semver "^6.3.1" -"@babel/generator@^7.22.5": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" - integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== +"@babel/generator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" + integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.22.5": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" + integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== dependencies: "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" @@ -100,11 +108,11 @@ "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9" + integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" "@babel/helper-builder-react-jsx@^7.22.5": version "7.22.5" @@ -114,10 +122,10 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" + integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== dependencies: "@babel/compat-data" "^7.22.9" "@babel/helper-validator-option" "^7.22.5" @@ -126,9 +134,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" - integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3" + integrity sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" @@ -149,10 +157,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz#af1429c4a83ac316a6a8c2cc8ff45cb5d2998d3a" - integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -217,7 +225,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== @@ -272,30 +280,30 @@ integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== "@babel/helper-wrap-function@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9" - integrity sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" + integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== dependencies: "@babel/helper-function-name" "^7.22.5" "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helpers@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a" + integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw== dependencies: "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/highlight@^7.22.10", "@babel/highlight@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" + integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== dependencies: "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" + chalk "^2.4.2" js-tokens "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": @@ -303,10 +311,10 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.22.10", "@babel/parser@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" + integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" @@ -329,14 +337,6 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -492,14 +492,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" - integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== +"@babel/plugin-transform-async-generator-functions@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz#45946cd17f915b10e65c29b8ed18a0a50fc648c8" + integrity sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.22.5": @@ -518,10 +518,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== +"@babel/plugin-transform-block-scoping@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" + integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -565,14 +565,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== +"@babel/plugin-transform-destructuring@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" + integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -750,10 +750,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" - integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== +"@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz#076d28a7e074392e840d4ae587d83445bac0372a" + integrity sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -839,13 +839,13 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" + regenerator-transform "^0.15.2" "@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" @@ -855,15 +855,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.22.4": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" - integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz#89eda6daf1d3af6f36fb368766553054c8d7cd46" + integrity sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA== dependencies: "@babel/helper-module-imports" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.22.5": @@ -912,10 +912,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -944,12 +944,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.22.4": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" - integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f" + integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" @@ -974,15 +974,15 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-generator-functions" "^7.22.10" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.10" "@babel/plugin-transform-class-properties" "^7.22.5" "@babel/plugin-transform-class-static-block" "^7.22.5" "@babel/plugin-transform-classes" "^7.22.6" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.10" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" "@babel/plugin-transform-dynamic-import" "^7.22.5" @@ -1005,38 +1005,36 @@ "@babel/plugin-transform-object-rest-spread" "^7.22.5" "@babel/plugin-transform-object-super" "^7.22.5" "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.6" + "@babel/plugin-transform-optional-chaining" "^7.22.10" "@babel/plugin-transform-parameters" "^7.22.5" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.5" "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" "@babel/plugin-transform-reserved-words" "^7.22.5" "@babel/plugin-transform-shorthand-properties" "^7.22.5" "@babel/plugin-transform-spread" "^7.22.5" "@babel/plugin-transform-sticky-regex" "^7.22.5" "@babel/plugin-transform-template-literals" "^7.22.5" "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" "@babel/plugin-transform-unicode-property-regex" "^7.22.5" "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.10" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" core-js-compat "^3.31.0" semver "^6.3.1" -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" @@ -1076,11 +1074,11 @@ regenerator-runtime "^0.12.0" "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" @@ -1107,23 +1105,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa" + integrity sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.22.10" + "@babel/types" "^7.22.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.11", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.11", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.3.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== @@ -1132,6 +1130,15 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" +"@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.4.4": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" + integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1668,6 +1675,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -1686,12 +1698,12 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15": version "0.3.18" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== @@ -1699,16 +1711,19 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@material-design-icons/svg@^0.14.10": version "0.14.10" resolved "https://registry.yarnpkg.com/@material-design-icons/svg/-/svg-0.14.10.tgz#25804b66d0740b0bf8d6841fa343dfdd60f22e82" integrity sha512-rXxfqj5Su8i51aG8s8QRIe7mX1gB+C/ZCroLu3JvIsO3+Vx6PcWP97HLwIl7AQH/jYIHQlKq0E6OMqU91u5fCg== -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -3423,29 +3438,29 @@ babel-plugin-macros@^3.0.1, babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz#9f9a0e1cd9d645cc246a5e094db5c3aa913ccd2b" - integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.1" - "@nicolo-ribaudo/semver-v6" "^6.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz#d406c5738d298cd9c66f64a94cf8d5904ce4cc5e" - integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" + integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" -babel-plugin-polyfill-regenerator@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz#ace7a5eced6dff7d5060c335c52064778216afd3" - integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" babel-plugin-preval@^5.1.0: version "5.1.0" @@ -3735,13 +3750,13 @@ browserslist@^4.0.0, browserslist@^4.21.4, browserslist@^4.21.5: update-browserslist-db "^1.0.11" browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" update-browserslist-db "^1.0.11" bser@2.1.1: @@ -3914,17 +3929,17 @@ caniuse-lite@^1.0.30001502: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== -caniuse-lite@^1.0.30001503: - version "1.0.30001516" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz#621b1be7d85a8843ee7d210fd9d87b52e3daab3a" - integrity sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g== +caniuse-lite@^1.0.30001517: + version "1.0.30001519" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601" + integrity sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg== chalk@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4308,9 +4323,9 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.31.0: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" - integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== + version "3.32.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.0.tgz#f41574b6893ab15ddb0ac1693681bd56c8550a90" + integrity sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw== dependencies: browserslist "^4.21.9" @@ -5057,10 +5072,10 @@ electron-to-chromium@^1.4.428: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.457.tgz#3fdc7b4f97d628ac6b51e8b4b385befb362fe343" integrity sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA== -electron-to-chromium@^1.4.431: - version "1.4.461" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz#6b14af66042732bf883ab63a4d82cac8f35eb252" - integrity sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ== +electron-to-chromium@^1.4.477: + version "1.4.490" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz#d99286f6e915667fa18ea4554def1aa60eb4d5f1" + integrity sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A== elliptic@^6.5.3: version "6.5.4" @@ -6911,20 +6926,20 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-core-module@^2.12.1, is-core-module@^2.13.0: +is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" +is-core-module@^2.5.0, is-core-module@^2.9.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -8654,7 +8669,7 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^2.0.12: +node-releases@^2.0.12, node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== @@ -10278,7 +10293,7 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3: +regenerator-runtime@^0.13.3: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== @@ -10288,10 +10303,10 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" @@ -10438,16 +10453,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.22.3: +resolve@^1.14.2, resolve@^1.22.3: version "1.22.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== @@ -10456,6 +10462,15 @@ resolve@^1.22.3: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.4: version "2.0.0-next.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" From 27d8e9be4ae6db4c00e2593140f01c89d3a18aa6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 11:07:15 +0200 Subject: [PATCH 54/71] Update dependency eslint-import-resolver-typescript to v3.6.0 (#26429) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/yarn.lock b/yarn.lock index a1c670f013..98a49b4f03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5371,18 +5371,17 @@ eslint-import-resolver-node@^0.3.7: resolve "^1.22.1" eslint-import-resolver-typescript@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" + integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg== dependencies: debug "^4.3.4" enhanced-resolve "^5.12.0" eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" get-tsconfig "^4.5.0" - globby "^13.1.3" is-core-module "^2.11.0" is-glob "^4.0.3" - synckit "^0.8.5" eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" @@ -5808,7 +5807,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.2.11, fast-glob@^3.2.12: +fast-glob@^3.2.12: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -5819,7 +5818,7 @@ fast-glob@^3.2.11, fast-glob@^3.2.12: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9: +fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -6190,9 +6189,9 @@ get-symbol-description@^1.0.0: get-intrinsic "^1.1.1" get-tsconfig@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" - integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== + version "4.7.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34" + integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw== dependencies: resolve-pkg-maps "^1.0.0" @@ -6313,17 +6312,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.3: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -10904,11 +10892,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" From 3dd3c508113b71dbc2935ed92c5e46c67e31fc48 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 11:07:33 +0200 Subject: [PATCH 55/71] Update dependency pg-connection-string to v2.6.2 (#26427) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 98a49b4f03..55b86b3b6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9175,12 +9175,7 @@ pg-cloudflare@^1.1.1: resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== -pg-connection-string@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.1.tgz#78c23c21a35dd116f48e12e23c0965e8d9e2cbfb" - integrity sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg== - -pg-connection-string@^2.6.2: +pg-connection-string@^2.6.0, pg-connection-string@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== From 4bc0dd751cbe776918be75fbdfefddca876edb81 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 10 Aug 2023 14:15:18 +0200 Subject: [PATCH 56/71] Add `S3_DISABLE_CHECKSUM_MODE` environment variable for compatibility with some S3-compatible providers (#26435) --- config/initializers/paperclip.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index 12d8d69341..02943ce091 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -90,13 +90,19 @@ if ENV['S3_ENABLED'] == 'true' # Some S3-compatible providers might not actually be compatible with some APIs # used by kt-paperclip, see https://github.com/mastodon/mastodon/issues/16822 - if ENV['S3_FORCE_SINGLE_REQUEST'] == 'true' + # and https://github.com/mastodon/mastodon/issues/26394 + if ENV['S3_FORCE_SINGLE_REQUEST'] == 'true' || ENV['S3_DISABLE_CHECKSUM_MODE'] == 'true' module Paperclip module Storage module S3Extensions def copy_to_local_file(style, local_dest_path) log("copying #{path(style)} to local file #{local_dest_path}") - s3_object(style).download_file(local_dest_path, { mode: 'single_request' }) + + options = {} + options[:mode] = 'single_request' if ENV['S3_FORCE_SINGLE_REQUEST'] == 'true' + options[:checksum_mode] = 'DISABLED' if ENV['S3_DISABLE_CHECKSUM_MODE'] == 'true' + + s3_object(style).download_file(local_dest_path, options) rescue Aws::Errors::ServiceError => e warn("#{e} - cannot copy #{path(style)} to local file #{local_dest_path}") false From 9dff838edc3da9e8722adb08f72815ab88607853 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Thu, 10 Aug 2023 15:51:48 -0400 Subject: [PATCH 57/71] Merge duplicate Gemfile groups (#26441) --- Gemfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index f62ec7b8fa..4c3e5a368c 100644 --- a/Gemfile +++ b/Gemfile @@ -186,9 +186,7 @@ group :development, :test do gem 'ruby-prof', require: false gem 'stackprof', require: false gem 'test-prof' -end -group :development, :test do # RSpec runner for rails gem 'rspec-rails', '~> 6.0' end From 121443c0fca383268b8022c048dd137994785aff Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Fri, 11 Aug 2023 09:59:57 +0200 Subject: [PATCH 58/71] Upgrade JS dev dependencies (#26442) --- yarn.lock | 1025 +++++++++++++++++++++++++---------------------------- 1 file changed, 489 insertions(+), 536 deletions(-) diff --git a/yarn.lock b/yarn.lock index 55b86b3b6f..7b799cda19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,9 +8,9 @@ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@adobe/css-tools@^4.0.1": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" - integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.0.tgz#1991d273fb29edbd2f63060f5bdaf0af26aa64e3" + integrity sha512-+RNNcQvw2V1bmnBTPAtOLfW/9mhH2vC67+rUSi5T8EtEWt6lEnGNY2GuhZ1/YwbgikT1TkhvidCDmN5Q5YCo/w== "@ampproject/remapping@^2.2.0": version "2.2.1" @@ -29,14 +29,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - -"@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== @@ -44,6 +37,13 @@ "@babel/highlight" "^7.22.10" chalk "^2.4.2" +"@babel/code-frame@^7.10.4": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" @@ -70,7 +70,7 @@ json5 "^2.2.2" semver "^6.3.1" -"@babel/generator@^7.22.10": +"@babel/generator@^7.22.10", "@babel/generator@^7.22.5", "@babel/generator@^7.7.2": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== @@ -80,26 +80,6 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.22.5": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" - integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" - integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -306,12 +286,7 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" - integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== - -"@babel/parser@^7.22.10", "@babel/parser@^7.22.5": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.10", "@babel/parser@^7.22.5": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== @@ -1089,7 +1064,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@7", "@babel/traverse@^7.7.2": +"@babel/traverse@7": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== @@ -1121,19 +1096,19 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.11", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" + integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.4.4": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" - integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== +"@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.11", "@babel/types@^7.12.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" @@ -1145,19 +1120,19 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@csstools/css-parser-algorithms@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz#0cc3a656dc2d638370ecf6f98358973bfbd00141" - integrity sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz#ec4fc764ba45d2bb7ee2774667e056aa95003f3a" + integrity sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA== "@csstools/css-tokenizer@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz#07ae11a0a06365d7ec686549db7b729bc036528e" - integrity sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz#9d70e6dcbe94e44c7400a2929928db35c4de32b5" + integrity sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA== "@csstools/media-query-list-parser@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz#6ef642b728d30c1009bfbba3211c7e4c11302728" - integrity sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ== + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz#0017f99945f6c16dd81a7aacf6821770933c3a5c" + integrity sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw== "@csstools/selector-specificity@^3.0.0": version "3.0.0" @@ -1469,28 +1444,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" - integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== +"@jest/console@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.2.tgz#bf1d4101347c23e07c029a1b1ae07d550f5cc541" + integrity sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.6.2" + jest-util "^29.6.2" slash "^3.0.0" -"@jest/core@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" - integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== +"@jest/core@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.2.tgz#6f2d1dbe8aa0265fcd4fb8082ae1952f148209c8" + integrity sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg== dependencies: - "@jest/console" "^29.5.0" - "@jest/reporters" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.6.2" + "@jest/reporters" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -1498,81 +1473,81 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.5.0" - jest-config "^29.5.0" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" + jest-config "^29.6.2" + jest-haste-map "^29.6.2" + jest-message-util "^29.6.2" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-resolve-dependencies "^29.5.0" - jest-runner "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - jest-watcher "^29.5.0" + jest-resolve "^29.6.2" + jest-resolve-dependencies "^29.6.2" + jest-runner "^29.6.2" + jest-runtime "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" + jest-watcher "^29.6.2" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.6.2" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" - integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== +"@jest/environment@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.2.tgz#794c0f769d85e7553439d107d3f43186dc6874a9" + integrity sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q== dependencies: - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/fake-timers" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.5.0" + jest-mock "^29.6.2" -"@jest/expect-utils@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" - integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== +"@jest/expect-utils@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.2.tgz#1b97f290d0185d264dd9fdec7567a14a38a90534" + integrity sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" - integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== +"@jest/expect@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.2.tgz#5a2ad58bb345165d9ce0a1845bbf873c480a4b28" + integrity sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg== dependencies: - expect "^29.5.0" - jest-snapshot "^29.5.0" + expect "^29.6.2" + jest-snapshot "^29.6.2" -"@jest/fake-timers@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" - integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== +"@jest/fake-timers@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.2.tgz#fe9d43c5e4b1b901168fe6f46f861b3e652a2df4" + integrity sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.6.2" + jest-mock "^29.6.2" + jest-util "^29.6.2" -"@jest/globals@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" - integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== +"@jest/globals@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.2.tgz#74af81b9249122cc46f1eb25793617eec69bf21a" + integrity sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/types" "^29.5.0" - jest-mock "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/expect" "^29.6.2" + "@jest/types" "^29.6.1" + jest-mock "^29.6.2" -"@jest/reporters@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" - integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== +"@jest/reporters@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.2.tgz#524afe1d76da33d31309c2c4a2c8062d0c48780a" + integrity sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/console" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -1584,77 +1559,77 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-message-util "^29.6.2" + jest-util "^29.6.2" + jest-worker "^29.6.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== +"@jest/schemas@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" + integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== dependencies: - "@sinclair/typebox" "^0.25.16" + "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" - integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== +"@jest/source-map@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" + integrity sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA== dependencies: - "@jridgewell/trace-mapping" "^0.3.15" + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" - integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== +"@jest/test-result@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.2.tgz#fdd11583cd1608e4db3114e8f0cce277bf7a32ed" + integrity sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw== dependencies: - "@jest/console" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.6.2" + "@jest/types" "^29.6.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" - integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== +"@jest/test-sequencer@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz#585eff07a68dd75225a7eacf319780cb9f6b9bf4" + integrity sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw== dependencies: - "@jest/test-result" "^29.5.0" + "@jest/test-result" "^29.6.2" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.2" slash "^3.0.0" -"@jest/transform@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== +"@jest/transform@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.2.tgz#522901ebbb211af08835bc3bcdf765ab778094e3" + integrity sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/types" "^29.6.1" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.2" jest-regex-util "^29.4.3" - jest-util "^29.5.0" + jest-util "^29.6.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== +"@jest/types@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" + integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1670,11 +1645,6 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" @@ -1693,25 +1663,12 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": version "0.3.19" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== @@ -1881,10 +1838,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sinonjs/commons@^3.0.0": version "3.0.0" @@ -1894,9 +1851,9 @@ type-detect "4.0.8" "@sinonjs/fake-timers@^10.0.2": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz#b3e322a34c5f26e3184e7f6115695f299c1b1194" - integrity sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg== + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: "@sinonjs/commons" "^3.0.0" @@ -2028,9 +1985,9 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^5.16.5": - version "5.16.5" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" - integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== + version "5.17.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" + integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== dependencies: "@adobe/css-tools" "^4.0.1" "@babel/runtime" "^7.9.2" @@ -2231,9 +2188,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*", "@types/jest@^29.5.2": - version "29.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" - integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== + version "29.5.3" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.3.tgz#7a35dc0044ffb8b56325c6802a4781a626b05777" + integrity sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -2268,9 +2225,9 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash@^4.14.195": - version "4.14.195" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" - integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + version "4.14.197" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.197.tgz#e95c5ddcc814ec3e84c891910a01e0c8a378c54b" + integrity sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g== "@types/mime@*": version "3.0.1" @@ -2293,9 +2250,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node@*": - version "20.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe" - integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg== + version "20.4.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.9.tgz#c7164e0f8d3f12dfae336af0b1f7fdec8c6b204f" + integrity sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ== "@types/node@14 || 16 || 17": version "17.0.45" @@ -2336,11 +2293,6 @@ resolved "https://registry.yarnpkg.com/@types/picomatch/-/picomatch-2.3.0.tgz#75db5e75a713c5a83d5b76780c3da84a82806003" integrity sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g== -"@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - "@types/prop-types@*", "@types/prop-types@^15.7.5": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" @@ -2366,13 +2318,20 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.4": +"@types/react-dom@^18.0.0": version "18.2.5" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.5.tgz#5c5f13548bda23cd98f50ca4a59107238bfe18f3" integrity sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ== dependencies: "@types/react" "*" +"@types/react-dom@^18.2.4": + version "18.2.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== + dependencies: + "@types/react" "*" + "@types/react-helmet@^6.1.6": version "6.1.6" resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d" @@ -2468,7 +2427,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@>=16.9.11", "@types/react@^18.0.26", "@types/react@^18.2.7": +"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@>=16.9.11", "@types/react@^18.0.26": version "18.2.12" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.12.tgz#95d584338610b78bb9ba0415e3180fb03debdf97" integrity sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw== @@ -2477,6 +2436,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.2.7": + version "18.2.20" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.20.tgz#1605557a83df5c8a2cc4eeb743b3dfc0eb6aaeb2" + integrity sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/redux-immutable@^4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/redux-immutable/-/redux-immutable-4.0.3.tgz#db92a281aa9a55a7b63bc1f20a233790305a1f06" @@ -2539,9 +2507,9 @@ integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.6.tgz#4887f6e1af11215428ab02777873bcede98a53b0" - integrity sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA== + version "5.14.9" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz#0fb1e6a0278d87b6737db55af5967570b67cb466" + integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== dependencies: "@types/jest" "*" @@ -2925,12 +2893,12 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.8.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -acorn@^8.9.0: +acorn@^8.1.0, acorn@^8.8.1, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -3094,7 +3062,14 @@ aria-query@5.1.3: dependencies: deep-equal "^2.0.5" -aria-query@^5.0.0, aria-query@^5.1.3: +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +aria-query@^5.1.3: version "5.2.1" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.2.1.tgz#bc285d9d654d1df121bcd0c134880d415ca67c15" integrity sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g== @@ -3357,12 +3332,12 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" -babel-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" - integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== +babel-jest@^29.5.0, babel-jest@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.2.tgz#cada0a59e07f5acaeb11cbae7e3ba92aec9c1126" + integrity sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A== dependencies: - "@jest/transform" "^29.5.0" + "@jest/transform" "^29.6.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.5.0" @@ -4126,9 +4101,9 @@ cocoon-js-vanilla@^1.3.0: integrity sha512-rMnbfW6oFhvELUg141vfqZKzsowfLJRxs5FksfmDr1ZBs6LTNVYE63NQyvgRqyYUOK54cKKbI+V83dQKeeRuPg== collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== collection-visit@^1.0.0: version "1.0.0" @@ -4450,10 +4425,10 @@ css-declaration-sorter@^6.3.1: resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== -css-functions-list@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.1.0.tgz#cf5b09f835ad91a00e5959bcfc627cd498e1321b" - integrity sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w== +css-functions-list@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.0.tgz#8290b7d064bf483f48d6559c10e98dc4d1ad19ee" + integrity sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg== css-loader@^5.2.7: version "5.2.7" @@ -4712,10 +4687,10 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-equal@^1.0.1: version "1.1.1" @@ -4753,7 +4728,7 @@ deep-equal@^2.0.5: which-collection "^1.0.1" which-typed-array "^1.1.9" -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -5345,14 +5320,13 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" - optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" @@ -5680,7 +5654,22 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.0.0, execa@^7.1.1: +execa@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +execa@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== @@ -5720,16 +5709,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.0.0, expect@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" - integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== +expect@^29.0.0, expect@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.2.tgz#7b08e83eba18ddc4a2cf62b5f2d1918f5cd84521" + integrity sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA== dependencies: - "@jest/expect-utils" "^29.5.0" + "@jest/expect-utils" "^29.6.2" + "@types/node" "*" jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-util "^29.6.2" express@^4.17.1, express@^4.18.2: version "4.18.2" @@ -5818,7 +5808,7 @@ fast-glob@^3.2.12: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9, fast-glob@^3.3.1: +fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -5829,23 +5819,12 @@ fast-glob@^3.2.9, fast-glob@^3.3.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -6914,14 +6893,14 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.13.0: +is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.5.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" -is-core-module@^2.5.0, is-core-module@^2.9.0: +is-core-module@^2.9.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== @@ -7281,12 +7260,12 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: semver "^6.3.0" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -7299,9 +7278,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -7333,87 +7312,87 @@ jest-changed-files@^29.5.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" - integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== +jest-circus@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.2.tgz#1e6ffca60151ac66cad63fce34f443f6b5bb4258" + integrity sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/expect" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.5.0" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-each "^29.6.2" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-runtime "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" p-limit "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.6.2" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" - integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== +jest-cli@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.2.tgz#edb381763398d1a292cd1b636a98bfa5644b8fda" + integrity sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q== dependencies: - "@jest/core" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/types" "^29.6.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-config "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" - integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== +jest-config@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.2.tgz#c68723f06b31ca5e63030686e604727d406cd7c3" + integrity sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.5.0" - "@jest/types" "^29.5.0" - babel-jest "^29.5.0" + "@jest/test-sequencer" "^29.6.2" + "@jest/types" "^29.6.1" + babel-jest "^29.6.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.5.0" - jest-environment-node "^29.5.0" + jest-circus "^29.6.2" + jest-environment-node "^29.6.2" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-runner "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-resolve "^29.6.2" + jest-runner "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.5.0" + pretty-format "^29.6.2" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" - integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== +jest-diff@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.2.tgz#c36001e5543e82a0805051d3ceac32e6825c1c46" + integrity sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.2" jest-docblock@^29.4.3: version "29.4.3" @@ -7422,108 +7401,108 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" - integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== +jest-each@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.2.tgz#c9e4b340bcbe838c73adf46b76817b15712d02ce" + integrity sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.5.0" - pretty-format "^29.5.0" + jest-util "^29.6.2" + pretty-format "^29.6.2" jest-environment-jsdom@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz#cfe86ebaf1453f3297b5ff3470fbe94739c960cb" - integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw== + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.6.2.tgz#4fc68836a7774a771819a2f980cb47af3b1629da" + integrity sha512-7oa/+266AAEgkzae8i1awNEfTfjwawWKLpiw2XesZmaoVVj9u9t8JOYx18cG29rbPNtkUlZ8V4b5Jb36y/VxoQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" + "@jest/types" "^29.6.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.6.2" + jest-util "^29.6.2" jsdom "^20.0.0" -jest-environment-node@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" - integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== +jest-environment-node@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.2.tgz#a9ea2cabff39b08eca14ccb32c8ceb924c8bb1ad" + integrity sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.6.2" + jest-util "^29.6.2" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== +jest-haste-map@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.2.tgz#298c25ea5255cfad8b723179d4295cf3a50a70d1" + integrity sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-util "^29.6.2" + jest-worker "^29.6.2" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" - integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== +jest-leak-detector@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz#e2b307fee78cab091c37858a98c7e1d73cdf5b38" + integrity sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.2" -jest-matcher-utils@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" - integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== +jest-matcher-utils@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz#39de0be2baca7a64eacb27291f0bd834fea3a535" + integrity sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ== dependencies: chalk "^4.0.0" - jest-diff "^29.5.0" + jest-diff "^29.6.2" jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.2" -jest-message-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" - integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== +jest-message-util@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.2.tgz#af7adc2209c552f3f5ae31e77cf0a261f23dc2bb" + integrity sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.6.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" - integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== +jest-mock@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.2.tgz#ef9c9b4d38c34a2ad61010a021866dad41ce5e00" + integrity sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.6.2" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -7535,149 +7514,146 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" - integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== +jest-resolve-dependencies@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz#36435269b6672c256bcc85fb384872c134cc4cf2" + integrity sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.5.0" + jest-snapshot "^29.6.2" -jest-resolve@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" - integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== +jest-resolve@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.2.tgz#f18405fe4b50159b7b6d85e81f6a524d22afb838" + integrity sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-util "^29.6.2" + jest-validate "^29.6.2" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" - integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== +jest-runner@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.2.tgz#89e8e32a8fef24781a7c4c49cd1cb6358ac7fc01" + integrity sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w== dependencies: - "@jest/console" "^29.5.0" - "@jest/environment" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.6.2" + "@jest/environment" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.5.0" - jest-haste-map "^29.5.0" - jest-leak-detector "^29.5.0" - jest-message-util "^29.5.0" - jest-resolve "^29.5.0" - jest-runtime "^29.5.0" - jest-util "^29.5.0" - jest-watcher "^29.5.0" - jest-worker "^29.5.0" + jest-environment-node "^29.6.2" + jest-haste-map "^29.6.2" + jest-leak-detector "^29.6.2" + jest-message-util "^29.6.2" + jest-resolve "^29.6.2" + jest-runtime "^29.6.2" + jest-util "^29.6.2" + jest-watcher "^29.6.2" + jest-worker "^29.6.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" - integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== +jest-runtime@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.2.tgz#692f25e387f982e89ab83270e684a9786248e545" + integrity sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/globals" "^29.5.0" - "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" + "@jest/globals" "^29.6.2" + "@jest/source-map" "^29.6.0" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" + jest-haste-map "^29.6.2" + jest-message-util "^29.6.2" + jest-mock "^29.6.2" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-resolve "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" - integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== +jest-snapshot@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.2.tgz#9b431b561a83f2bdfe041e1cab8a6becdb01af9c" + integrity sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" + "@jest/expect-utils" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.5.0" + expect "^29.6.2" graceful-fs "^4.2.9" - jest-diff "^29.5.0" + jest-diff "^29.6.2" jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-util "^29.6.2" natural-compare "^1.4.0" - pretty-format "^29.5.0" - semver "^7.3.5" + pretty-format "^29.6.2" + semver "^7.5.3" -jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== +jest-util@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.2.tgz#8a052df8fff2eebe446769fd88814521a517664d" + integrity sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" - integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== +jest-validate@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.2.tgz#25d972af35b2415b83b1373baf1a47bb266c1082" + integrity sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.6.2" -jest-watcher@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" - integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== +jest-watcher@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.2.tgz#77c224674f0620d9f6643c4cfca186d8893ca088" + integrity sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA== dependencies: - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/test-result" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.5.0" + jest-util "^29.6.2" string-length "^4.0.1" jest-worker@^26.2.1, jest-worker@^26.5.0: @@ -7689,25 +7665,25 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== +jest-worker@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.2.tgz#682fbc4b6856ad0aa122a5403c6d048b83f3fb44" + integrity sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ== dependencies: "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.6.2" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" - integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.2.tgz#3bd55b9fd46a161b2edbdf5f1d1bd0d1eab76c42" + integrity sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg== dependencies: - "@jest/core" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.6.2" + "@jest/types" "^29.6.1" import-local "^3.0.2" - jest-cli "^29.5.0" + jest-cli "^29.6.2" jpeg-autorotate@^7.1.1: version "7.1.1" @@ -7952,14 +7928,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - lilconfig@2.1.0, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -7971,9 +7939,9 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^13.2.2: - version "13.2.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca" - integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA== + version "13.2.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.3.tgz#f899aad6c093473467e9c9e316e3c2d8a28f87a7" + integrity sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg== dependencies: chalk "5.2.0" cli-truncate "^3.1.0" @@ -8175,13 +8143,20 @@ magic-string@^0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -8734,7 +8709,12 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.2, nwsapi@^2.2.4: +nwsapi@^2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + +nwsapi@^2.2.4: version "2.2.5" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2" integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ== @@ -8916,18 +8896,6 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -9289,9 +9257,9 @@ pinkie@^2.0.0: integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^3.0.0: version "3.0.0" @@ -9589,7 +9557,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.2.15, postcss@^8.4.24: +postcss@^8.2.15, postcss@^8.4.24, postcss@^8.4.25: version "8.4.27" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== @@ -9652,11 +9620,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -9665,9 +9628,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" - integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== + version "3.0.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.1.tgz#65271fc9320ce4913c57747a70ce635b30beaa40" + integrity sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -9683,12 +9646,12 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.0.0, pretty-format@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" - integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== +pretty-format@^29.0.0, pretty-format@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.2.tgz#3d5829261a8a4d89d8b9769064b29c50ed486a47" + integrity sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -10436,7 +10399,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.14.2, resolve@^1.22.3: +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.3: version "1.22.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== @@ -10445,7 +10408,7 @@ resolve@^1.14.2, resolve@^1.22.3: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: +resolve@^1.19.0, resolve@^1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -10695,24 +10658,19 @@ semver@^5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@^7.3.2, semver@^7.3.7: version "7.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== dependencies: lru-cache "^6.0.0" -semver@^7.5.4: +semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -10864,9 +10822,9 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sirv@^1.0.7: version "1.0.19" @@ -11209,7 +11167,6 @@ string-length@^4.0.1: strip-ansi "^6.0.0" "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11308,7 +11265,6 @@ stringz@^2.1.0: char-regex "^1.0.2" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - name strip-ansi-cjs version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11438,9 +11394,9 @@ stylelint-scss@^5.0.0: postcss-value-parser "^4.2.0" stylelint@^15.10.1: - version "15.10.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.1.tgz#93f189958687e330c106b010cbec0c41dcae506d" - integrity sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ== + version "15.10.2" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.2.tgz#0ee5a8371d3a2e1ff27fefd48309d3ddef7c3405" + integrity sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg== dependencies: "@csstools/css-parser-algorithms" "^2.3.0" "@csstools/css-tokenizer" "^2.1.1" @@ -11449,7 +11405,7 @@ stylelint@^15.10.1: balanced-match "^2.0.0" colord "^2.9.3" cosmiconfig "^8.2.0" - css-functions-list "^3.1.0" + css-functions-list "^3.2.0" css-tree "^2.3.1" debug "^4.3.4" fast-glob "^3.3.0" @@ -11469,7 +11425,7 @@ stylelint@^15.10.1: micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.24" + postcss "^8.4.25" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" postcss-selector-parser "^6.0.13" @@ -11866,7 +11822,12 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0: +tslib@^2.1.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" + integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== + +tslib@^2.4.0, tslib@^2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== @@ -11905,13 +11866,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -11984,11 +11938,16 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -"typescript@^4.7 || 5", typescript@^5.0.4: +"typescript@^4.7 || 5": version "5.1.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== +typescript@^5.0.4: + version "5.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -12622,11 +12581,6 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - workbox-background-sync@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz#2b84b96ca35fec976e3bd2794b70e4acec46b3a5" @@ -12797,7 +12751,6 @@ workbox-window@7.0.0, workbox-window@^7.0.0: workbox-core "7.0.0" "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From 34f3001278606f6c1371e3a7f4f1f7a6c235ec9b Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 12 Aug 2023 00:06:37 +0200 Subject: [PATCH 59/71] Fix reply not preserving the language from the replied-to post (#26452) --- app/javascript/mastodon/actions/importer/normalizer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js index 67368abb24..e6b361c0c9 100644 --- a/app/javascript/mastodon/actions/importer/normalizer.js +++ b/app/javascript/mastodon/actions/importer/normalizer.js @@ -76,7 +76,10 @@ export function normalizeStatus(status, normalOldStatus) { normalStatus.spoilerHtml = normalOldStatus.get('spoilerHtml'); normalStatus.spoiler_text = normalOldStatus.get('spoiler_text'); normalStatus.hidden = normalOldStatus.get('hidden'); - normalStatus.translation = normalOldStatus.get('translation'); + + if (normalOldStatus.get('translation')) { + normalStatus.translation = normalOldStatus.get('translation'); + } } else { // If the status has a CW but no contents, treat the CW as if it were the // status' contents, to avoid having a CW toggle with seemingly no effect. From 496eb6f7a4fa7de54f26da9642a76e6884648102 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Sun, 13 Aug 2023 09:06:04 +0900 Subject: [PATCH 60/71] Add missing instances option to tootctl search deploy (#26461) --- lib/mastodon/cli/search.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/cli/search.rb b/lib/mastodon/cli/search.rb index 33bcad5fea..ee1c0fade1 100644 --- a/lib/mastodon/cli/search.rb +++ b/lib/mastodon/cli/search.rb @@ -15,7 +15,7 @@ module Mastodon::CLI option :concurrency, type: :numeric, default: 5, aliases: [:c], desc: 'Workload will be split between this number of threads' option :batch_size, type: :numeric, default: 100, aliases: [:b], desc: 'Number of records in each batch' - option :only, type: :array, enum: %w(accounts tags statuses), desc: 'Only process these indices' + option :only, type: :array, enum: %w(instances accounts tags statuses), desc: 'Only process these indices' option :import, type: :boolean, default: true, desc: 'Import data from the database to the index' option :clean, type: :boolean, default: true, desc: 'Remove outdated documents from the index' desc 'deploy', 'Create or upgrade Elasticsearch indices and populate them' From 1461cc53ed84b6b0e10762a5a705558dd8a9953c Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Thu, 3 Aug 2023 15:41:51 +0200 Subject: [PATCH 61/71] [Glitch] Add alt text for preview card thumbnails Port 8da99ffb0dcf5012179e4142799ff473910f5a66 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/explore/components/story.jsx | 5 +++-- app/javascript/flavours/glitch/features/explore/links.jsx | 1 + .../flavours/glitch/features/status/components/card.jsx | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/features/explore/components/story.jsx b/app/javascript/flavours/glitch/features/explore/components/story.jsx index 9a4a221bca..8dc92a4d91 100644 --- a/app/javascript/flavours/glitch/features/explore/components/story.jsx +++ b/app/javascript/flavours/glitch/features/explore/components/story.jsx @@ -23,6 +23,7 @@ export default class Story extends PureComponent { author: PropTypes.string, sharedTimes: PropTypes.number, thumbnail: PropTypes.string, + thumbnailDescription: PropTypes.string, blurhash: PropTypes.string, expanded: PropTypes.bool, }; @@ -34,7 +35,7 @@ export default class Story extends PureComponent { handleImageLoad = () => this.setState({ thumbnailLoaded: true }); render () { - const { expanded, url, title, lang, publisher, author, publishedAt, sharedTimes, thumbnail, blurhash } = this.props; + const { expanded, url, title, lang, publisher, author, publishedAt, sharedTimes, thumbnail, thumbnailDescription, blurhash } = this.props; const { thumbnailLoaded } = this.state; @@ -50,7 +51,7 @@ export default class Story extends PureComponent { {thumbnail ? ( <>
- + {thumbnailDescription} ) : }
diff --git a/app/javascript/flavours/glitch/features/explore/links.jsx b/app/javascript/flavours/glitch/features/explore/links.jsx index 383f68a8b4..9124285f4f 100644 --- a/app/javascript/flavours/glitch/features/explore/links.jsx +++ b/app/javascript/flavours/glitch/features/explore/links.jsx @@ -67,6 +67,7 @@ class Links extends PureComponent { author={link.get('author_name')} sharedTimes={link.getIn(['history', 0, 'accounts']) * 1 + link.getIn(['history', 1, 'accounts']) * 1} thumbnail={link.get('image')} + thumbnailDescription={link.get('image_description')} blurhash={link.get('blurhash')} /> ))} diff --git a/app/javascript/flavours/glitch/features/status/components/card.jsx b/app/javascript/flavours/glitch/features/status/components/card.jsx index ff34b525a0..a64314efa3 100644 --- a/app/javascript/flavours/glitch/features/status/components/card.jsx +++ b/app/javascript/flavours/glitch/features/status/components/card.jsx @@ -178,7 +178,8 @@ export default class Card extends PureComponent { dummy={!useBlurhash} /> ); - let thumbnail = ; + const thumbnailDescription = card.get('image_description'); + const thumbnail = {thumbnailDescription}; let spoilerButton = ( + if(registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + signUpOrSignInButton = ( + <> + + + + {signupButton} + ); } @@ -353,6 +371,13 @@ class InteractionModal extends React.PureComponent {

{actionDescription}

+
+
+

+ {signUpOrSignInButton} +
+
+

diff --git a/app/javascript/flavours/glitch/features/ui/components/header.jsx b/app/javascript/flavours/glitch/features/ui/components/header.jsx index 1ebecbd29d..114d348d45 100644 --- a/app/javascript/flavours/glitch/features/ui/components/header.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/header.jsx @@ -13,7 +13,7 @@ import { Avatar } from 'flavours/glitch/components/avatar'; import { Icon } from 'flavours/glitch/components/icon'; import { WordmarkLogo, SymbolLogo } from 'flavours/glitch/components/logo'; import Permalink from 'flavours/glitch/components/permalink'; -import { registrationsOpen, me } from 'flavours/glitch/initial_state'; +import { registrationsOpen, me, sso_redirect } from 'flavours/glitch/initial_state'; const Account = connect(state => ({ account: state.getIn(['accounts', me]), @@ -74,28 +74,35 @@ class Header extends PureComponent { ); } else { - let signupButton; - if (registrationsOpen) { - signupButton = ( - - - - ); + if (sso_redirect) { + content = ( + + ) } else { - signupButton = ( - + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + content = ( + <> + {signupButton} + + ); } - - content = ( - <> - {signupButton} - - - ); } return ( diff --git a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx index ea7de7efbb..a8e46df8a1 100644 --- a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx @@ -3,7 +3,7 @@ import { useCallback } from 'react'; import { FormattedMessage } from 'react-intl'; import { openModal } from 'flavours/glitch/actions/modal'; -import { registrationsOpen } from 'flavours/glitch/initial_state'; +import { registrationsOpen, sso_redirect } from 'flavours/glitch/initial_state'; import { useAppDispatch, useAppSelector } from 'flavours/glitch/store'; const SignInBanner = () => { @@ -16,7 +16,16 @@ const SignInBanner = () => { let signupButton; - const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); + const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); + + if (sso_redirect) { + return ( +
+

+ +
+ ) + } if (registrationsOpen) { signupButton = ( diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js index f07c9fb71f..46228c3306 100644 --- a/app/javascript/flavours/glitch/initial_state.js +++ b/app/javascript/flavours/glitch/initial_state.js @@ -82,6 +82,7 @@ * @property {boolean} use_blurhash * @property {boolean=} use_pending_items * @property {string} version + * @property {string} sso_redirect * @property {boolean} translation_enabled * @property {string} status_page_url * @property {boolean} system_emoji_font @@ -160,6 +161,7 @@ export const usePendingItems = getMeta('use_pending_items'); export const version = getMeta('version'); export const languages = initialState?.languages; export const statusPageUrl = getMeta('status_page_url'); +export const sso_redirect = getMeta('sso_redirect'); // Glitch-soc-specific settings export const maxChars = (initialState && initialState.max_toot_chars) || 500; From 8247df3a8dbc56c467358c12ddd310091587cc93 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 3 Aug 2023 20:39:33 +0200 Subject: [PATCH 63/71] [Glitch] Change reblogs to be excluded from "Posts and replies" tab in web UI Port 9d719bcd85a6a4bea74f6f34a7f4fae40cad7782 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/actions/timelines.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/actions/timelines.js b/app/javascript/flavours/glitch/actions/timelines.js index 7d4d56a784..fa69bca985 100644 --- a/app/javascript/flavours/glitch/actions/timelines.js +++ b/app/javascript/flavours/glitch/actions/timelines.js @@ -157,7 +157,7 @@ export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => ex export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote, allowLocalOnly } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : (allowLocalOnly ? ':allow_local_only' : '')}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, allow_local_only: !!allowLocalOnly, max_id: maxId, only_media: !!onlyMedia }, done); export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); export const expandDirectTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('direct', '/api/v1/timelines/direct', { max_id: maxId }, done); -export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, tagged, max_id: maxId }); +export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, exclude_reblogs: withReplies, tagged, max_id: maxId }); export const expandAccountFeaturedTimeline = (accountId, { tagged } = {}) => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true, tagged }); export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); From 03ae73bdc5e26c3d8a2a37b7d4f4100dc7fea965 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 3 Aug 2023 20:39:45 +0200 Subject: [PATCH 64/71] [Glitch] Change design of hidden media overlay (again) in web UI Port 04e7efac3f2ebb4336c48335720611120eae19ba to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/styles/components/misc.scss | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/styles/components/misc.scss b/app/javascript/flavours/glitch/styles/components/misc.scss index 064d500d5a..40fd159879 100644 --- a/app/javascript/flavours/glitch/styles/components/misc.scss +++ b/app/javascript/flavours/glitch/styles/components/misc.scss @@ -1345,7 +1345,7 @@ button.icon-button.active i.fa-retweet { display: flex; align-items: center; justify-content: center; - background: rgba($black, 0.5); + background: transparent; width: 100%; height: 100%; padding: 0; @@ -1354,6 +1354,10 @@ button.icon-button.active i.fa-retweet { color: $white; &__label { + background-color: rgba($black, 0.45); + backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%); + border-radius: 6px; + padding: 10px 15px; display: flex; align-items: center; justify-content: center; @@ -1367,6 +1371,13 @@ button.icon-button.active i.fa-retweet { font-weight: 400; font-size: 13px; } + + &:hover, + &:focus { + .spoiler-button__overlay__label { + background-color: rgba($black, 0.9); + } + } } } From f0ad7455061c7dfe13e70ec46058d2388c8e8f95 Mon Sep 17 00:00:00 2001 From: Trevor Wolf Date: Fri, 4 Aug 2023 17:41:17 +1000 Subject: [PATCH 65/71] [Glitch] Fix light theme select option for hashtags Port 93372fee1e9373833891a778b3f9cf321ca65723 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/styles/mastodon-light/diff.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index af0890580a..456252750b 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -420,6 +420,10 @@ html { border-top: 0; } +.column-settings__hashtags .column-select__option { + color: $white; +} + .dashboard__quick-access, .focal-point__preview strong, .admin-wrapper .content__heading__tabs a.selected { From 2f50b77ae8de7ac217ae8ea0b8c63ed67861db9f Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 4 Aug 2023 15:48:29 +0200 Subject: [PATCH 66/71] [Glitch] Fix confirmation when closing media edition modal with unsaved changes Port b59053ff8c5e15dcbc5b6a46463bc89495c0b0e1 to glitch-soc Signed-off-by: Claire --- .../glitch/features/ui/components/focal_point_modal.jsx | 2 +- .../glitch/features/ui/components/modal_root.jsx | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx index ed3bed47e1..eeef422779 100644 --- a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx @@ -423,4 +423,4 @@ class FocalPointModal extends ImmutablePureComponent { export default connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true, -})(injectIntl(FocalPointModal, { withRef: true })); +})(injectIntl(FocalPointModal, { forwardRef: true })); diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx b/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx index 1e5bf40db7..7e94141fb8 100644 --- a/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx @@ -105,14 +105,7 @@ export default class ModalRoot extends PureComponent { handleClose = (ignoreFocus = false) => { const { onClose } = this.props; - let message = null; - try { - message = this._modal?.getWrappedInstance?.().getCloseConfirmationMessage?.(); - } catch (_) { - // injectIntl defines `getWrappedInstance` but errors out if `withRef` - // isn't set. - // This would be much smoother with react-intl 3+ and `forwardRef`. - } + const message = this._modal?.getCloseConfirmationMessage?.(); onClose(message, ignoreFocus); }; From d9451feef092941f14346ae47abadc7508c1b1a6 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 4 Aug 2023 16:25:44 +0200 Subject: [PATCH 67/71] [Glitch] Fix report modal secondary buttons style Port 79936c584f54a9c901f38b8c6507016209221cf0 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/styles/components/modal.scss | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss index 9d8838783e..2759fc02f5 100644 --- a/app/javascript/flavours/glitch/styles/components/modal.scss +++ b/app/javascript/flavours/glitch/styles/components/modal.scss @@ -719,15 +719,16 @@ } .button.button-secondary { - border-color: $ui-button-secondary-border-color; - color: $ui-button-secondary-color; + border-color: $inverted-text-color; + color: $inverted-text-color; flex: 0 0 auto; &:hover, &:focus, &:active { - border-color: $ui-button-secondary-focus-background-color; - color: $ui-button-secondary-focus-color; + background: transparent; + border-color: $ui-button-background-color; + color: $ui-button-background-color; } } From 0f8ddf367c706f4dee7faf5001b83f492fd9fc73 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 7 Aug 2023 09:46:11 +0200 Subject: [PATCH 68/71] [Glitch] Change header of hashtag timelines in web UI Port e325443b0270edeaf159f010fb1b1078057a6017 to glitch-soc Signed-off-by: Claire --- .../components/hashtag_header.jsx | 79 +++++++++++++++++++ .../features/hashtag_timeline/index.jsx | 35 ++------ .../glitch/styles/components/columns.scss | 30 +++++++ 3 files changed, 115 insertions(+), 29 deletions(-) create mode 100644 app/javascript/flavours/glitch/features/hashtag_timeline/components/hashtag_header.jsx diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/components/hashtag_header.jsx b/app/javascript/flavours/glitch/features/hashtag_timeline/components/hashtag_header.jsx new file mode 100644 index 0000000000..986bf80b51 --- /dev/null +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/components/hashtag_header.jsx @@ -0,0 +1,79 @@ +import PropTypes from 'prop-types'; + +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; + +import ImmutablePropTypes from 'react-immutable-proptypes'; + +import Button from 'flavours/glitch/components/button'; +import { ShortNumber } from 'flavours/glitch/components/short_number'; + +const messages = defineMessages({ + followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' }, + unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' }, +}); + +const usesRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +const peopleRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +const usesTodayRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +export const HashtagHeader = injectIntl(({ tag, intl, disabled, onClick }) => { + if (!tag) { + return null; + } + + const [uses, people] = tag.get('history').reduce((arr, day) => [arr[0] + day.get('uses') * 1, arr[1] + day.get('accounts') * 1], [0, 0]); + const dividingCircle = {' · '}; + + return ( +
+
+

#{tag.get('name')}

+
+ +
+ + {dividingCircle} + + {dividingCircle} + +
+
+ ); +}); + +HashtagHeader.propTypes = { + tag: ImmutablePropTypes.map, + disabled: PropTypes.bool, + onClick: PropTypes.func, + intl: PropTypes.object, +}; \ No newline at end of file diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx index de67b06ca8..af889f6d61 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx @@ -1,9 +1,8 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { injectIntl, FormattedMessage, defineMessages } from 'react-intl'; +import { FormattedMessage } from 'react-intl'; -import classNames from 'classnames'; import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; @@ -17,17 +16,11 @@ import { fetchHashtag, followHashtag, unfollowHashtag } from 'flavours/glitch/ac import { expandHashtagTimeline, clearTimeline } from 'flavours/glitch/actions/timelines'; import Column from 'flavours/glitch/components/column'; import ColumnHeader from 'flavours/glitch/components/column_header'; -import { Icon } from 'flavours/glitch/components/icon'; import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container'; +import { HashtagHeader } from './components/hashtag_header'; import ColumnSettingsContainer from './containers/column_settings_container'; - -const messages = defineMessages({ - followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' }, - unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' }, -}); - const mapStateToProps = (state, props) => ({ hasUnread: state.getIn(['timelines', `hashtag:${props.params.id}${props.params.local ? ':local' : ''}`, 'unread']) > 0, tag: state.getIn(['tags', props.params.id]), @@ -48,7 +41,6 @@ class HashtagTimeline extends PureComponent { hasUnread: PropTypes.bool, tag: ImmutablePropTypes.map, multiColumn: PropTypes.bool, - intl: PropTypes.object, }; handlePin = () => { @@ -188,27 +180,11 @@ class HashtagTimeline extends PureComponent { }; render () { - const { hasUnread, columnId, multiColumn, tag, intl } = this.props; + const { hasUnread, columnId, multiColumn, tag } = this.props; const { id, local } = this.props.params; const pinned = !!columnId; const { signedIn } = this.context.identity; - let followButton; - - if (tag) { - const following = tag.get('following'); - - const classes = classNames('column-header__button', { - active: following, - }); - - followButton = ( - - ); - } - return ( {columnId && } } + alwaysPrepend trackScroll={!pinned} scrollKey={`hashtag_timeline-${columnId}`} timelineId={`hashtag:${id}${local ? ':local' : ''}`} @@ -245,4 +222,4 @@ class HashtagTimeline extends PureComponent { } -export default connect(mapStateToProps)(injectIntl(HashtagTimeline)); +export default connect(mapStateToProps)(HashtagTimeline); diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss index 2ca456191c..d4860258ed 100644 --- a/app/javascript/flavours/glitch/styles/components/columns.scss +++ b/app/javascript/flavours/glitch/styles/components/columns.scss @@ -1038,3 +1038,33 @@ $ui-header-height: 55px; } } } + +.hashtag-header { + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 15px; + font-size: 17px; + line-height: 22px; + color: $darker-text-color; + + strong { + font-weight: 700; + } + + &__header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 15px; + gap: 15px; + + h1 { + color: $primary-text-color; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + font-size: 22px; + line-height: 33px; + font-weight: 700; + } + } +} From 7c4b115e7dcb4fd1fe6b4ffddfa144a8f98cfe97 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 7 Aug 2023 17:58:29 +0200 Subject: [PATCH 69/71] [Glitch] Fix interaction modal layout Port cd6f2b3cbc8dc20c26c6f92f5c0ef3ae906fc2f0 to glitch-soc Signed-off-by: Claire --- .../features/interaction_modal/index.jsx | 47 ++++++------------- .../features/ui/components/sign_in_banner.jsx | 4 +- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/app/javascript/flavours/glitch/features/interaction_modal/index.jsx b/app/javascript/flavours/glitch/features/interaction_modal/index.jsx index 67f9cd1711..3375afde6f 100644 --- a/app/javascript/flavours/glitch/features/interaction_modal/index.jsx +++ b/app/javascript/flavours/glitch/features/interaction_modal/index.jsx @@ -331,36 +331,24 @@ class InteractionModal extends React.PureComponent { } let signupButton; - let signUpOrSignInButton; if (sso_redirect) { - signUpOrSignInButton = ( - - + signupButton = ( + + - ) + ); + } else if (registrationsOpen) { + signupButton = ( + + + + ); } else { - if(registrationsOpen) { - signupButton = ( - - - - ); - } else { - signupButton = ( - - ); - } - - signUpOrSignInButton = ( - <> - - - - {signupButton} - + signupButton = ( + ); } @@ -371,13 +359,6 @@ class InteractionModal extends React.PureComponent {

{actionDescription}

-
-
-

- {signUpOrSignInButton} -
-
-

diff --git a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx index a8e46df8a1..82a7fcdb95 100644 --- a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx +++ b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx @@ -16,9 +16,9 @@ const SignInBanner = () => { let signupButton; - const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); + const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); - if (sso_redirect) { + if (sso_redirect) { return (

From e28727aab3b8945b7bddfc6d70e1df6d8cbc026d Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 9 Aug 2023 16:32:40 +0200 Subject: [PATCH 70/71] [Glitch] Change the hashtag column to not display the hashtag header on pinned columns Port 4caa9f0e69f922ce70af50d695cc84a7f551534f to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/hashtag_timeline/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx index af889f6d61..675c4cc022 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/index.jsx @@ -202,7 +202,7 @@ class HashtagTimeline extends PureComponent { } + prepend={pinned ? null : } alwaysPrepend trackScroll={!pinned} scrollKey={`hashtag_timeline-${columnId}`} From 987f190839052d3e4951a4be4f3cfa1c2755056a Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 12 Aug 2023 00:06:37 +0200 Subject: [PATCH 71/71] [Glitch] Fix reply not preserving the language from the replied-to post Port 34f3001278606f6c1371e3a7f4f1f7a6c235ec9b to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/actions/importer/normalizer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/actions/importer/normalizer.js b/app/javascript/flavours/glitch/actions/importer/normalizer.js index f58f275171..97f94d9e46 100644 --- a/app/javascript/flavours/glitch/actions/importer/normalizer.js +++ b/app/javascript/flavours/glitch/actions/importer/normalizer.js @@ -75,7 +75,10 @@ export function normalizeStatus(status, normalOldStatus, settings) { normalStatus.contentHtml = normalOldStatus.get('contentHtml'); normalStatus.spoilerHtml = normalOldStatus.get('spoilerHtml'); normalStatus.hidden = normalOldStatus.get('hidden'); - normalStatus.translation = normalOldStatus.get('translation'); + + if (normalOldStatus.get('translation')) { + normalStatus.translation = normalOldStatus.get('translation'); + } } else { const spoilerText = normalStatus.spoiler_text || ''; const searchContent = ([spoilerText, status.content].concat((status.poll && status.poll.options) ? status.poll.options.map(option => option.title) : [])).concat(status.media_attachments.map(att => att.description)).join('\n\n').replace(//g, '\n').replace(/<\/p>

/g, '\n\n');