diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 3b40c3fd07be90..6fb93b7fef45a6 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -31,7 +31,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -44,7 +44,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@v2
+ uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -57,6 +57,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
+ uses: github/codeql-action/analyze@v3
with:
category: '/language:${{matrix.language}}'
diff --git a/.rubocop.yml b/.rubocop.yml
index 61cb1164b4d406..8832e28f6e9113 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -74,14 +74,12 @@ Metrics/ModuleLength:
Metrics/AbcSize:
Exclude:
- 'lib/mastodon/cli/*.rb'
- - db/*migrate/**/*
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity
Metrics/CyclomaticComplexity:
Exclude:
- lib/mastodon/cli/*.rb
- - db/*migrate/**/*
# Reason:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsparameterlists
diff --git a/.yarn/patches/compression-webpack-plugin-npm-6.1.1-3a2a65987e.patch b/.yarn/patches/compression-webpack-plugin-npm-6.1.1-3a2a65987e.patch
deleted file mode 100644
index 30d5db27391e24..00000000000000
--- a/.yarn/patches/compression-webpack-plugin-npm-6.1.1-3a2a65987e.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/dist/index.js b/dist/index.js
-index 57e375592d984e9a429bcd9f800fa2d15cd662e4..0c47d96df3608e23adfd77d887a8f72abbd501c0 100644
---- a/dist/index.js
-+++ b/dist/index.js
-@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
- });
- exports.default = void 0;
-
--var _crypto = _interopRequireDefault(require("crypto"));
-+var _createHash = _interopRequireDefault(require("webpack/lib/util/createHash"));
-
- var _path = _interopRequireDefault(require("path"));
-
-@@ -227,7 +227,7 @@ class CompressionPlugin {
- originalAlgorithm: this.options.algorithm,
- compressionOptions: this.options.compressionOptions,
- name,
-- contentHash: _crypto.default.createHash("md4").update(input).digest("hex")
-+ contentHash: _createHash.default("md4").update(input).digest("hex")
- };
- } else {
- cacheData.name = (0, _serializeJavascript.default)({
diff --git a/Dockerfile b/Dockerfile
index 4d5bd57f1180e3..96f8b5cd279a96 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -103,6 +103,7 @@ RUN \
procps \
tini \
tzdata \
+ wget \
; \
# Patch Ruby to use jemalloc
patchelf --add-needed libjemalloc.so.2 /usr/local/bin/ruby; \
diff --git a/Gemfile.lock b/Gemfile.lock
index 9b78ca733e1f84..295461bd35fc46 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -131,16 +131,16 @@ GEM
attr_required (1.0.1)
awrence (1.2.1)
aws-eventstream (1.3.0)
- aws-partitions (1.860.0)
- aws-sdk-core (3.189.0)
+ aws-partitions (1.873.0)
+ aws-sdk-core (3.190.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-kms (1.74.0)
+ aws-sdk-kms (1.75.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sdk-s3 (1.141.0)
+ aws-sdk-s3 (1.142.0)
aws-sdk-core (~> 3, >= 3.189.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
@@ -175,7 +175,8 @@ GEM
blurhash (0.1.7)
bootsnap (1.17.0)
msgpack (~> 1.2)
- brakeman (6.1.0)
+ brakeman (6.1.1)
+ racc
browser (5.3.1)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
@@ -301,7 +302,7 @@ GEM
faraday_middleware (1.2.0)
faraday (~> 1.0)
fast_blank (1.0.1)
- fastimage (2.2.7)
+ fastimage (2.3.0)
ffi (1.15.5)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
@@ -456,9 +457,9 @@ GEM
azure-storage-blob (~> 2.0.1)
hashie (~> 5.0)
memory_profiler (1.0.1)
- mime-types (3.5.1)
+ mime-types (3.5.2)
mime-types-data (~> 3.2015)
- mime-types-data (3.2023.1003)
+ mime-types-data (3.2023.1205)
mini_mime (1.1.5)
mini_portile2 (2.8.5)
minitest (5.20.0)
@@ -481,7 +482,7 @@ GEM
net-smtp (0.4.0)
net-protocol
nio4r (2.5.9)
- nokogiri (1.15.5)
+ nokogiri (1.16.0)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.3)
@@ -510,7 +511,7 @@ GEM
validate_email
validate_url
webfinger (~> 1.2)
- openssl (3.1.0)
+ openssl (3.2.0)
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
orm_adapter (0.5.0)
@@ -543,7 +544,7 @@ GEM
psych (5.1.2)
stringio
public_suffix (5.0.4)
- puma (6.4.0)
+ puma (6.4.1)
nio4r (~> 2.0)
pundit (2.3.1)
activesupport (>= 3.0.0)
@@ -679,10 +680,10 @@ GEM
rubocop (~> 1.41)
rubocop-factory_bot (2.24.0)
rubocop (~> 1.33)
- rubocop-performance (1.20.0)
+ rubocop-performance (1.20.1)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.30.0, < 2.0)
- rubocop-rails (2.23.0)
+ rubocop-rails (2.23.1)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
@@ -782,7 +783,7 @@ GEM
unf (~> 0.1.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- tzinfo-data (1.2023.3)
+ tzinfo-data (1.2023.4)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
@@ -797,7 +798,7 @@ GEM
public_suffix
warden (1.2.9)
rack (>= 2.0.9)
- webauthn (3.0.0)
+ webauthn (3.1.0)
android_key_attestation (~> 0.3.0)
awrence (~> 1.1)
bindata (~> 2.4)
diff --git a/SECURITY.md b/SECURITY.md
index 954ff73a247425..81472b01b4306f 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -13,10 +13,8 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
## Supported Versions
-| Version | Supported |
-| ------- | ---------------- |
-| 4.2.x | Yes |
-| 4.1.x | Yes |
-| 4.0.x | No |
-| 3.5.x | Until 2023-12-31 |
-| < 3.5 | No |
+| Version | Supported |
+| ------- | --------- |
+| 4.2.x | Yes |
+| 4.1.x | Yes |
+| < 4.1 | No |
diff --git a/app/controllers/admin/export_domain_blocks_controller.rb b/app/controllers/admin/export_domain_blocks_controller.rb
index 433b8a158787a7..ffc4478172634d 100644
--- a/app/controllers/admin/export_domain_blocks_controller.rb
+++ b/app/controllers/admin/export_domain_blocks_controller.rb
@@ -68,7 +68,7 @@ def export_headers
def export_data
CSV.generate(headers: export_headers, write_headers: true) do |content|
- DomainBlock.with_limitations.each do |instance|
+ DomainBlock.with_limitations.order(id: :asc).each do |instance|
content << [instance.domain, instance.severity, instance.reject_media, instance.reject_reports, instance.public_comment, instance.obfuscate]
end
end
diff --git a/app/controllers/api/v1/streaming_controller.rb b/app/controllers/api/v1/streaming_controller.rb
index 0cdd00d62f7ef5..0cb6e856f2b5ad 100644
--- a/app/controllers/api/v1/streaming_controller.rb
+++ b/app/controllers/api/v1/streaming_controller.rb
@@ -13,7 +13,9 @@ def index
def streaming_api_url
Addressable::URI.parse(request.url).tap do |uri|
- uri.host = Addressable::URI.parse(Rails.configuration.x.streaming_api_base_url).host
+ base_url = Addressable::URI.parse(Rails.configuration.x.streaming_api_base_url)
+ uri.host = base_url.host
+ uri.port = base_url.port
end.to_s
end
end
diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb
index f0a344f1c97d64..35391e64c44390 100644
--- a/app/controllers/concerns/signature_verification.rb
+++ b/app/controllers/concerns/signature_verification.rb
@@ -91,14 +91,23 @@ def signed_request_actor
raise SignatureVerificationError, "Public key not found for key #{signature_params['keyId']}" if actor.nil?
signature = Base64.decode64(signature_params['signature'])
- compare_signed_string = build_signed_string
+ compare_signed_string = build_signed_string(include_query_string: true)
return actor unless verify_signature(actor, signature, compare_signed_string).nil?
+ # Compatibility quirk with older Mastodon versions
+ compare_signed_string = build_signed_string(include_query_string: false)
+ return actor unless verify_signature(actor, signature, compare_signed_string).nil?
+
actor = stoplight_wrap_request { actor_refresh_key!(actor) }
raise SignatureVerificationError, "Could not refresh public key #{signature_params['keyId']}" if actor.nil?
+ compare_signed_string = build_signed_string(include_query_string: true)
+ return actor unless verify_signature(actor, signature, compare_signed_string).nil?
+
+ # Compatibility quirk with older Mastodon versions
+ compare_signed_string = build_signed_string(include_query_string: false)
return actor unless verify_signature(actor, signature, compare_signed_string).nil?
fail_with! "Verification failed for #{actor.to_log_human_identifier} #{actor.uri} using rsa-sha256 (RSASSA-PKCS1-v1_5 with SHA-256)", signed_string: compare_signed_string, signature: signature_params['signature']
@@ -180,11 +189,18 @@ def verify_signature(actor, signature, compare_signed_string)
nil
end
- def build_signed_string
+ def build_signed_string(include_query_string: true)
signed_headers.map do |signed_header|
case signed_header
when Request::REQUEST_TARGET
- "#{Request::REQUEST_TARGET}: #{request.method.downcase} #{request.path}"
+ if include_query_string
+ "#{Request::REQUEST_TARGET}: #{request.method.downcase} #{request.original_fullpath}"
+ else
+ # Current versions of Mastodon incorrectly omit the query string from the (request-target) pseudo-header.
+ # Therefore, temporarily support such incorrect signatures for compatibility.
+ # TODO: remove eventually some time after release of the fixed version
+ "#{Request::REQUEST_TARGET}: #{request.method.downcase} #{request.path}"
+ end
when '(created)'
raise SignatureVerificationError, 'Invalid pseudo-header (created) for rsa-sha256' unless signature_algorithm == 'hs2019'
raise SignatureVerificationError, 'Pseudo-header (created) used but corresponding argument missing' if signature_params['created'].blank?
diff --git a/app/javascript/flavours/glitch/components/media_attachments.jsx b/app/javascript/flavours/glitch/components/media_attachments.jsx
index 4e777437a034c2..9dd3fcfd959a66 100644
--- a/app/javascript/flavours/glitch/components/media_attachments.jsx
+++ b/app/javascript/flavours/glitch/components/media_attachments.jsx
@@ -15,7 +15,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
lang: PropTypes.string,
height: PropTypes.number,
width: PropTypes.number,
- revealed: PropTypes.bool,
+ visible: PropTypes.bool,
};
static defaultProps = {
@@ -52,7 +52,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
};
render () {
- const { status, width, height, revealed } = this.props;
+ const { status, width, height, visible } = this.props;
const mediaAttachments = status.get('media_attachments');
const language = status.getIn(['language', 'translation']) || status.get('language') || this.props.lang;
@@ -100,7 +100,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
height={height}
inline
sensitive={status.get('sensitive')}
- revealed={revealed}
+ visible={visible}
onOpenVideo={noop}
/>
)}
@@ -115,7 +115,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
lang={language}
sensitive={status.get('sensitive')}
defaultWidth={width}
- revealed={revealed}
+ visible={visible}
height={height}
onOpenMedia={noop}
/>
diff --git a/app/javascript/flavours/glitch/features/report/components/status_check_box.jsx b/app/javascript/flavours/glitch/features/report/components/status_check_box.jsx
index a368c41ce62a33..5fe6888dc5e4d6 100644
--- a/app/javascript/flavours/glitch/features/report/components/status_check_box.jsx
+++ b/app/javascript/flavours/glitch/features/report/components/status_check_box.jsx
@@ -45,7 +45,7 @@ class StatusCheckBox extends PureComponent {
- } />
+ } />
);
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 4230c6dd9a319d..169f72f97ae575 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
@@ -221,7 +221,7 @@ class FocalPointModal extends ImmutablePureComponent {
const worker = createWorker({
workerPath: tesseractWorkerPath,
corePath: tesseractCorePath,
- langPath: `${assetHost}/ocr/lang-data/`,
+ langPath: `${assetHost}/ocr/lang-data`,
logger: ({ status, progress }) => {
if (status === 'recognizing text') {
this.setState({ ocrStatus: 'detecting', progress });
diff --git a/app/javascript/flavours/glitch/reducers/accounts_map.js b/app/javascript/flavours/glitch/reducers/accounts_map.js
index d5ecad7dbfaddf..9053dcc9c0528b 100644
--- a/app/javascript/flavours/glitch/reducers/accounts_map.js
+++ b/app/javascript/flavours/glitch/reducers/accounts_map.js
@@ -2,8 +2,13 @@ import { Map as ImmutableMap } from 'immutable';
import { ACCOUNT_LOOKUP_FAIL } from '../actions/accounts';
import { importAccounts } from '../actions/accounts_typed';
+import { domain } from '../initial_state';
-export const normalizeForLookup = str => str.toLowerCase();
+export const normalizeForLookup = str => {
+ str = str.toLowerCase();
+ const trailingIndex = str.indexOf(`@${domain.toLowerCase()}`);
+ return (trailingIndex > 0) ? str.slice(0, trailingIndex) : str;
+};
const initialState = ImmutableMap();
diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
index 456252750b9861..740d7222f8f986 100644
--- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
+++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
@@ -296,10 +296,15 @@ html {
}
&__item {
+ color: $darker-text-color;
+
+ &--dangerous {
+ color: $error-value-color;
+ }
+
a,
button {
background: $white;
- color: $darker-text-color;
}
}
}
@@ -311,9 +316,9 @@ html {
.privacy-dropdown__option.active .privacy-dropdown__option__content strong,
.privacy-dropdown__option:hover .privacy-dropdown__option__content,
.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,
-.dropdown-menu__item a:active,
-.dropdown-menu__item a:focus,
-.dropdown-menu__item a:hover,
+.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:active,
+.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:focus,
+.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:hover,
.actions-modal ul li:not(:empty) a.active,
.actions-modal ul li:not(:empty) a.active button,
.actions-modal ul li:not(:empty) a:active,
diff --git a/app/javascript/mastodon/components/media_attachments.jsx b/app/javascript/mastodon/components/media_attachments.jsx
index 7b945a0ea22f67..63fe3e67f9aef1 100644
--- a/app/javascript/mastodon/components/media_attachments.jsx
+++ b/app/javascript/mastodon/components/media_attachments.jsx
@@ -15,6 +15,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
lang: PropTypes.string,
height: PropTypes.number,
width: PropTypes.number,
+ visible: PropTypes.bool,
};
static defaultProps = {
@@ -51,7 +52,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
};
render () {
- const { status, width, height } = this.props;
+ const { status, width, height, visible } = this.props;
const mediaAttachments = status.get('media_attachments');
const language = status.getIn(['language', 'translation']) || status.get('language') || this.props.lang;
@@ -99,6 +100,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
height={height}
inline
sensitive={status.get('sensitive')}
+ visible={visible}
onOpenVideo={noop}
/>
)}
@@ -113,6 +115,7 @@ export default class MediaAttachments extends ImmutablePureComponent {
lang={language}
sensitive={status.get('sensitive')}
defaultWidth={width}
+ visible={visible}
height={height}
onOpenMedia={noop}
/>
diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx
index 9b26e2d75360aa..ed86d19f5c0a1b 100644
--- a/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx
+++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx
@@ -179,7 +179,7 @@ class Footer extends ImmutablePureComponent {
if (status.get('in_reply_to_id', null) === null) {
replyIcon = 'reply';
- replyIconComponent = RepeatIcon;
+ replyIconComponent = ReplyIcon;
replyTitle = intl.formatMessage(messages.reply);
} else {
replyIcon = 'reply-all';
diff --git a/app/javascript/mastodon/features/report/components/status_check_box.jsx b/app/javascript/mastodon/features/report/components/status_check_box.jsx
index 8bee76e591944c..481ee3e5edd049 100644
--- a/app/javascript/mastodon/features/report/components/status_check_box.jsx
+++ b/app/javascript/mastodon/features/report/components/status_check_box.jsx
@@ -47,7 +47,7 @@ class StatusCheckBox extends PureComponent {
-
+
);
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 5353ebdb8aa404..91dca26718ac18 100644
--- a/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx
+++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx
@@ -222,7 +222,7 @@ class FocalPointModal extends ImmutablePureComponent {
const worker = createWorker({
workerPath: tesseractWorkerPath,
corePath: tesseractCorePath,
- langPath: `${assetHost}/ocr/lang-data/`,
+ langPath: `${assetHost}/ocr/lang-data`,
logger: ({ status, progress }) => {
if (status === 'recognizing text') {
this.setState({ ocrStatus: 'detecting', progress });
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 8a6d6040d66c7e..7ee3c868ae1f16 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Няма публикации",
"account.featured_tags.title": "Главни хаштагове на {name}",
"account.follow": "Последване",
+ "account.follow_back": "Последване взаимно",
"account.followers": "Последователи",
"account.followers.empty": "Още никой не следва потребителя.",
"account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Заглушаване на известията",
"account.mute_short": "Заглушаване",
"account.muted": "Заглушено",
+ "account.mutual": "Взаимни",
"account.no_bio": "Няма представен опис.",
"account.open_original_page": "Отваряне на първообразната страница",
"account.posts": "Публикации",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 86f1fb47650cb7..290b364a5233f1 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -32,7 +32,7 @@
"account.featured_tags.last_status_never": "No hi ha tuts",
"account.featured_tags.title": "etiquetes destacades de {name}",
"account.follow": "Segueix",
- "account.follow_back": "Segueix",
+ "account.follow_back": "Segueix tu també",
"account.followers": "Seguidors",
"account.followers.empty": "A aquest usuari encara no el segueix ningú.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} Seguidors}}",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 17133631a5ed98..04b39904e48136 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -21,6 +21,7 @@
"account.blocked": "Blociwyd",
"account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
"account.cancel_follow_request": "Tynnu cais i ddilyn",
+ "account.copy": "Copïo dolen i'r proffil",
"account.direct": "Crybwyll yn breifat @{name}",
"account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio",
"account.domain_blocked": "Parth wedi ei flocio",
@@ -31,6 +32,7 @@
"account.featured_tags.last_status_never": "Dim postiadau",
"account.featured_tags.title": "Prif hashnodau {name}",
"account.follow": "Dilyn",
+ "account.follow_back": "Dilyn yn ôl",
"account.followers": "Dilynwyr",
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
"account.followers_counter": "{count, plural, one {Dilynwr: {counter}} other {Dilynwyr: {counter}}}",
@@ -51,6 +53,7 @@
"account.mute_notifications_short": "Distewi hysbysiadau",
"account.mute_short": "Tewi",
"account.muted": "Wedi anwybyddu",
+ "account.mutual": "Cydgydnabod",
"account.no_bio": "Dim disgrifiad wedi'i gynnig.",
"account.open_original_page": "Agor y dudalen wreiddiol",
"account.posts": "Postiadau",
@@ -168,9 +171,9 @@
"confirmations.delete.confirm": "Dileu",
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
"confirmations.delete_list.confirm": "Dileu",
- "confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu y rhestr hwn am byth?",
+ "confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?",
"confirmations.discard_edit_media.confirm": "Dileu",
- "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
+ "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu beth bynnag?",
"confirmations.domain_block.confirm": "Blocio parth cyfan",
"confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
"confirmations.edit.confirm": "Golygu",
@@ -481,12 +484,15 @@
"onboarding.follows.title": "Yn boblogaidd ar Mastodon",
"onboarding.profile.discoverable": "Gwnewch fy mhroffil yn un y gellir ei ddarganfod",
"onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a thueddiadau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd â diddordebau tebyg i chi.",
+ "onboarding.profile.display_name": "Enw dangos",
"onboarding.profile.display_name_hint": "Eich enw llawn neu'ch enw hwyl…",
+ "onboarding.profile.lead": "Gallwch chi bob amser gwblhau hyn yn ddiweddarach yn y gosodiadau, lle mae hyd yn oed mwy o ddewisiadau cyfaddasu ar gael.",
"onboarding.profile.note": "Bywgraffiad",
"onboarding.profile.note_hint": "Gallwch @grybwyll pobl eraill neu #hashnodau…",
"onboarding.profile.save_and_continue": "Cadw a pharhau",
"onboarding.profile.title": "Gosodiad proffil",
"onboarding.profile.upload_avatar": "Llwytho llun proffil",
+ "onboarding.profile.upload_header": "Llwytho pennyn proffil",
"onboarding.share.lead": "Cofiwch ddweud wrth bobl sut y gallan nhw ddod o hyd i chi ar Mastodon!",
"onboarding.share.message": "Fi yw {username} ar #Mastodon! Dewch i'm dilyn i yn {url}",
"onboarding.share.next_steps": "Camau nesaf posib:",
@@ -601,6 +607,7 @@
"search.quick_action.status_search": "Postiadau sy'n cyfateb i {x}",
"search.search_or_paste": "Chwilio neu gludo URL",
"search_popout.full_text_search_disabled_message": "Ddim ar gael ar {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Dim ond ar gael pan wedi mewngofnodi.",
"search_popout.language_code": "Cod iaith ISO",
"search_popout.options": "Dewisiadau chwilio",
"search_popout.quick_actions": "Gweithredoedd cyflym",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 83a986ba4e15bf..17a0c9d4da2f58 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -17,9 +17,11 @@
"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": "Απόσυρση αιτήματος παρακολούθησης",
+ "account.copy": "Αντιγραφή συνδέσμου προφίλ",
"account.direct": "Ιδιωτική αναφορά @{name}",
"account.disable_notifications": "Σταμάτα να με ειδοποιείς όταν δημοσιεύει ο @{name}",
"account.domain_blocked": "Ο τομέας αποκλείστηκε",
@@ -30,6 +32,7 @@
"account.featured_tags.last_status_never": "Καμία ανάρτηση",
"account.featured_tags.title": "προβεβλημένες ετικέτες του/της {name}",
"account.follow": "Ακολούθησε",
+ "account.follow_back": "Ακολούθησε και εσύ",
"account.followers": "Ακόλουθοι",
"account.followers.empty": "Κανείς δεν ακολουθεί αυτόν τον χρήστη ακόμα.",
"account.followers_counter": "{count, plural, one {{counter} Ακόλουθος} other {{counter} Ακόλουθοι}}",
@@ -47,7 +50,11 @@
"account.mention": "Ανάφερε @{name}",
"account.moved_to": "Ο/Η {name} έχει υποδείξει ότι ο νέος λογαριασμός του/της είναι τώρα:",
"account.mute": "Σώπασε τον @{name}",
+ "account.mute_notifications_short": "Σίγαση ειδοποιήσεων",
+ "account.mute_short": "Σίγαση",
"account.muted": "Αποσιωπημένος/η",
+ "account.mutual": "Αμοιβαίοι",
+ "account.no_bio": "Δεν υπάρχει περιγραφή.",
"account.open_original_page": "Ανοικτό",
"account.posts": "Τουτ",
"account.posts_with_replies": "Τουτ και απαντήσεις",
@@ -63,6 +70,7 @@
"account.unendorse": "Να μην παρέχεται στο προφίλ",
"account.unfollow": "Άρση ακολούθησης",
"account.unmute": "Διακοπή σίγασης @{name}",
+ "account.unmute_notifications_short": "Σίγαση ειδοποιήσεων",
"account.unmute_short": "Κατάργηση σίγασης",
"account_note.placeholder": "Κάνε κλικ για να προσθέσεις σημείωση",
"admin.dashboard.daily_retention": "Ποσοστό χρηστών που παραμένουν μετά την εγγραφή, ανά ημέρα",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 4daa699dcf5a8c..643329ba993215 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Neniu afiŝo",
"account.featured_tags.title": "Rekomendataj kradvortoj de {name}",
"account.follow": "Sekvi",
+ "account.follow_back": "Sekvu reen",
"account.followers": "Sekvantoj",
"account.followers.empty": "Ankoraŭ neniu sekvas ĉi tiun uzanton.",
"account.followers_counter": "{count, plural, one{{counter} Sekvanto} other {{counter} Sekvantoj}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Silentigu Sciigojn",
"account.mute_short": "Silentigu",
"account.muted": "Silentigita",
+ "account.mutual": "Reciproka",
"account.no_bio": "Neniu priskribo estas provizita.",
"account.open_original_page": "Malfermi la originalan paĝon",
"account.posts": "Afiŝoj",
@@ -509,6 +511,8 @@
"onboarding.tips.2fa": "Ĉu vi scias? Vi povas sekurigi vian konton per efektivigi dufaktora autentigo en via kontoagordoj.",
"onboarding.tips.accounts_from_other_servers": "Ĉu vi scias? Ĉar Mastodon estas sencentra, kelkaj profiloj kiujn vi trovi estas gastigitaj ĉe aliaj serviloj kiuj ne estas via.",
"onboarding.tips.migration": "Ĉu vi scias? Se vi sentas ke {domain} ne estas bona servilelekto por vi en la estonteco, vi povas translokiĝi al alia servilo de Mastodon sen malgajni viajn sekvantojn.",
+ "onboarding.tips.verification": "Ĉu vi sciis? Vi povas kontroli vian konton metante ligilon al via Mastodon-profilo en via propra retejo kaj aldonante la retejon al via profilo. Neniuj kotizoj aŭ dokumentoj necesaj!",
+ "password_confirmation.exceeds_maxlength": "Pasvorto-konfirmo superas la maksimuman pasvortan longon",
"password_confirmation.mismatching": "Pasvorto konfirmo ne kongruas",
"picture_in_picture.restore": "Remetu ĝin",
"poll.closed": "Finita",
@@ -532,6 +536,7 @@
"privacy.unlisted.short": "Nelistigita",
"privacy_policy.last_updated": "Laste ĝisdatigita en {date}",
"privacy_policy.title": "Politiko de privateco",
+ "recommended": "Rekomendita",
"refresh": "Refreŝigu",
"regeneration_indicator.label": "Ŝargado…",
"regeneration_indicator.sublabel": "Via abonfluo estas preparata!",
@@ -549,6 +554,7 @@
"reply_indicator.cancel": "Nuligi",
"report.block": "Bloki",
"report.block_explanation": "Vi ne vidos iliajn afiŝojn. Ili ne povos vidi viajn afiŝojn, nek sekvi vin. Ili ne scios, ke vi blokas ilin.",
+ "report.categories.legal": "Laŭleĝa",
"report.categories.other": "Aliaj",
"report.categories.spam": "Trudmesaĝo",
"report.categories.violation": "Enhavo malobservas unu aŭ plurajn servilajn regulojn",
@@ -587,6 +593,7 @@
"report.unfollow": "Malsekvi @{name}",
"report.unfollow_explanation": "Vi sekvas ĉi tiun konton. Por ne plu vidi ĝiajn afiŝojn en via hejma templinio, ĉesu sekvi ĝin.",
"report_notification.attached_statuses": "{count, plural, one {{count} afiŝo almetita} other {{count} afiŝoj almetitaj}}",
+ "report_notification.categories.legal": "Laŭleĝa",
"report_notification.categories.other": "Alia",
"report_notification.categories.spam": "Trudmesaĝo",
"report_notification.categories.violation": "Malobservo de la regulo",
@@ -599,13 +606,19 @@
"search.quick_action.open_url": "Malfermi URL en Mastodono",
"search.quick_action.status_search": "Afiŝoj kiuj kongruas kun {x}",
"search.search_or_paste": "Serĉu aŭ algluu URL-on",
+ "search_popout.full_text_search_disabled_message": "Ne havebla sur {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.",
+ "search_popout.language_code": "ISO-lingva kodo",
+ "search_popout.options": "Serĉaj opcioj",
"search_popout.quick_actions": "Rapidaj agoj",
"search_popout.recent": "Lastaj serĉoj",
+ "search_popout.specific_date": "specifa dato",
"search_popout.user": "uzanto",
"search_results.accounts": "Profiloj",
"search_results.all": "Ĉiuj",
"search_results.hashtags": "Kradvortoj",
"search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj",
+ "search_results.see_all": "Vidu ĉiujn",
"search_results.statuses": "Afiŝoj",
"search_results.title": "Serĉ-rezultoj por {q}",
"server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
@@ -616,6 +629,8 @@
"server_banner.server_stats": "Statistikoj de la servilo:",
"sign_in_banner.create_account": "Krei konton",
"sign_in_banner.sign_in": "Saluti",
+ "sign_in_banner.sso_redirect": "Ensalutu aŭ Registriĝi",
+ "sign_in_banner.text": "Ensalutu por sekvi profilojn aŭ haŝetikedojn, ŝatatajn, dividi kaj respondi afiŝojn. Vi ankaŭ povas interagi de via konto sur alia servilo.",
"status.admin_account": "Malfermi fasadon de moderigado por @{name}",
"status.admin_domain": "Malfermu moderigan interfacon por {domain}",
"status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco",
@@ -632,6 +647,7 @@
"status.edited": "Redaktita {date}",
"status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}",
"status.embed": "Enkorpigi",
+ "status.favourite": "Ŝatata",
"status.filter": "Filtri ĉi tiun afiŝon",
"status.filtered": "Filtrita",
"status.hide": "Kaŝi mesaĝon",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index eb6c0f3e4fa079..7c2e4f0d49894d 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -32,7 +32,7 @@
"account.featured_tags.last_status_never": "Sin mensajes",
"account.featured_tags.title": "Etiquetas destacadas de {name}",
"account.follow": "Seguir",
- "account.follow_back": "Seguir también",
+ "account.follow_back": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "Todavía nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
@@ -53,7 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaciones",
"account.mute_short": "Silenciar",
"account.muted": "Silenciado",
- "account.mutual": "Mutuo",
+ "account.mutual": "Seguimiento mutuo",
"account.no_bio": "Sin descripción provista.",
"account.open_original_page": "Abrir página original",
"account.posts": "Mensajes",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index c397334109229d..26657d402e6dc3 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Postitusi pole",
"account.featured_tags.title": "{name} esiletõstetud sildid",
"account.follow": "Jälgi",
+ "account.follow_back": "Jälgi vastu",
"account.followers": "Jälgijad",
"account.followers.empty": "Keegi ei jälgi veel seda kasutajat.",
"account.followers_counter": "{count, plural, one {{counter} jälgija} other {{counter} jälgijat}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Vaigista teavitused",
"account.mute_short": "Vaigista",
"account.muted": "Vaigistatud",
+ "account.mutual": "Ühine",
"account.no_bio": "Kirjeldust pole lisatud.",
"account.open_original_page": "Ava algne leht",
"account.posts": "Postitused",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index a93d0f66176753..9f3201ca786709 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.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}",
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "بدون فرسته",
"account.featured_tags.title": "برچسبهای برگزیدهٔ {name}",
"account.follow": "پیگرفتن",
+ "account.follow_back": "دنبال کردن متقابل",
"account.followers": "پیگیرندگان",
"account.followers.empty": "هنوز کسی پیگیر این کاربر نیست.",
"account.followers_counter": "{count, plural, one {{counter} پیگیرنده} other {{counter} پیگیرنده}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "خموشی آگاهیها",
"account.mute_short": "خموشی",
"account.muted": "خموش",
+ "account.mutual": "دوطرفه",
"account.no_bio": "شرحی فراهم نشده.",
"account.open_original_page": "گشودن صفحهٔ اصلی",
"account.posts": "فرسته",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index dab7eac1e9cee9..004898651baf55 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -607,7 +607,7 @@
"search.quick_action.status_search": "Julkaisut haulla {x}",
"search.search_or_paste": "Hae tai liitä URL-osoite",
"search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.",
- "search_popout.full_text_search_logged_out_message": "Saatavilla vain sisäänkirjautuneena.",
+ "search_popout.full_text_search_logged_out_message": "Käytettävissä vain sisäänkirjautuneena.",
"search_popout.language_code": "ISO-kielikoodi",
"search_popout.options": "Hakuvalinnat",
"search_popout.quick_actions": "Pikatoiminnot",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index bfd20a46739346..48bbb6b3077fa9 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Sen publicacións",
"account.featured_tags.title": "Cancelos destacados de {name}",
"account.follow": "Seguir",
+ "account.follow_back": "Seguir tamén",
"account.followers": "Seguidoras",
"account.followers.empty": "Aínda ninguén segue esta usuaria.",
"account.followers_counter": "{count, plural, one {{counter} Seguidora} other {{counter} Seguidoras}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Silenciar notificacións",
"account.mute_short": "Acalar",
"account.muted": "Acalada",
+ "account.mutual": "Mutuo",
"account.no_bio": "Sen descrición.",
"account.open_original_page": "Abrir páxina orixinal",
"account.posts": "Publicacións",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 658e16b8560353..67584572733f22 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -32,7 +32,7 @@
"account.featured_tags.last_status_never": "אין חצרוצים",
"account.featured_tags.title": "התגיות המועדפות של {name}",
"account.follow": "לעקוב",
- "account.follow_back": "החזרת עוקב",
+ "account.follow_back": "לעקוב בחזרה",
"account.followers": "עוקבים",
"account.followers.empty": "אף אחד לא עוקב אחר המשתמש הזה עדיין.",
"account.followers_counter": "{count, plural,one {עוקב אחד} other {{counter} עוקבים}}",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 654991a0f9dcee..c535f1affc6bf4 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -1,8 +1,15 @@
{
"about.blocks": "Moderirani poslužitelji",
"about.contact": "Kontakt:",
+ "about.disclaimer": "Mastodon je besplatan softver otvorenog koda i zaštitni znak tvrtke Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razlog nije dostupan",
+ "about.domain_blocks.preamble": "Mastodon vam općenito omogućuje pregled sadržaja i interakciju s korisnicima s bilo kojeg drugog poslužitelja u fediverse. Ovo su iznimke napravljene na ovom poslužitelju.",
+ "about.domain_blocks.silenced.explanation": "Obično nećete vidjeti profile i sadržaj s ovog poslužitelja, osim ako ga izričito ne potražite ili uključite u njega slijedeći ga.",
+ "about.domain_blocks.silenced.title": "Ograničen",
+ "about.domain_blocks.suspended.explanation": "Podatci s ovog poslužitelja neće se obrađivati, pohranjivati ili razmjenjivati, što onemogućuje bilo kakvu interakciju ili komunikaciju s korisnicima s ovog poslužitelja.",
"about.domain_blocks.suspended.title": "Suspendiran",
+ "about.not_available": "Te informacije nisu dostupne na ovom poslužitelju.",
+ "about.powered_by": "Decentralizirani društveni mediji koje pokreće {mastodon}",
"about.rules": "Pravila servera",
"account.account_note_header": "Bilješka",
"account.add_or_remove_from_list": "Dodaj ili ukloni s liste",
@@ -14,6 +21,8 @@
"account.blocked": "Blokirano",
"account.browse_more_on_origin_server": "Pogledajte više na izvornom profilu",
"account.cancel_follow_request": "Withdraw follow request",
+ "account.copy": "Kopiraj vezu u profil",
+ "account.direct": "Privatno spomeni @{name}",
"account.disable_notifications": "Nemoj me obavjestiti kada @{name} napravi objavu",
"account.domain_blocked": "Domena je blokirana",
"account.edit_profile": "Uredi profil",
@@ -21,7 +30,9 @@
"account.endorse": "Istakni na profilu",
"account.featured_tags.last_status_at": "Zadnji post {date}",
"account.featured_tags.last_status_never": "Nema postova",
+ "account.featured_tags.title": "Istaknuti hashtagovi {name}",
"account.follow": "Prati",
+ "account.follow_back": "Slijedi natrag",
"account.followers": "Pratitelji",
"account.followers.empty": "Nitko još ne prati korisnika/cu.",
"account.followers_counter": "{count, plural, one {{counter} pratitelj} other {{counter} pratitelja}}",
@@ -32,6 +43,7 @@
"account.hide_reblogs": "Sakrij boostove od @{name}",
"account.in_memoriam": "U sjećanje.",
"account.joined_short": "Pridružen",
+ "account.languages": "Promjeni pretplaćene jezike",
"account.link_verified_on": "Vlasništvo ove poveznice provjereno je {date}",
"account.locked_info": "Status privatnosti ovog računa postavljen je na zaključano. Vlasnik ručno pregledava tko ih može pratiti.",
"account.media": "Medijski sadržaj",
@@ -40,11 +52,14 @@
"account.mute_notifications_short": "Utišaj obavijesti",
"account.mute_short": "Utišaj",
"account.muted": "Utišano",
+ "account.mutual": "Uzajamno",
+ "account.no_bio": "Nije dan opis.",
"account.open_original_page": "Otvori originalnu stranicu",
"account.posts": "Objave",
"account.posts_with_replies": "Objave i odgovori",
"account.report": "Prijavi @{name}",
"account.requested": "Čekanje na potvrdu. Kliknite za poništavanje zahtjeva za praćenje",
+ "account.requested_follow": "{name} zatražio/la je praćenje",
"account.share": "Podijeli profil @{name}",
"account.show_reblogs": "Prikaži boostove od @{name}",
"account.statuses_counter": "{count, plural, one {{counter} toot} other {{counter} toota}}",
@@ -54,11 +69,18 @@
"account.unendorse": "Ne ističi na profilu",
"account.unfollow": "Prestani pratiti",
"account.unmute": "Poništi utišavanje @{name}",
+ "account.unmute_notifications_short": "Uključi utišane obavijesti",
"account.unmute_short": "Poništi utišavanje",
"account_note.placeholder": "Kliknite za dodavanje bilješke",
+ "admin.dashboard.daily_retention": "Stopa zadržavanja korisnika po danu nakon prijave",
+ "admin.dashboard.monthly_retention": "Stopa zadržavanja korisnika po mjesecu nakon prijave",
"admin.dashboard.retention.average": "Prosječno",
"admin.dashboard.retention.cohort": "Mjesec prijave",
"admin.dashboard.retention.cohort_size": "Novi korisnici",
+ "admin.impact_report.instance_accounts": "Profili računa koji bi ovo izbrisali",
+ "admin.impact_report.instance_followers": "Sljedbenici koje bi izgubili naši korisnici",
+ "admin.impact_report.instance_follows": "Sljedbenici koje bi izgubili njihovi korisnici",
+ "admin.impact_report.title": "Sažetak učinka",
"alert.rate_limited.message": "Molimo pokušajte nakon {retry_time, time, medium}.",
"alert.rate_limited.title": "Ograničenje učestalosti",
"alert.unexpected.message": "Dogodila se neočekivana greška.",
@@ -68,10 +90,14 @@
"audio.hide": "Sakrij audio",
"autosuggest_hashtag.per_week": "{count} tjedno",
"boost_modal.combo": "Možete pritisnuti {combo} kako biste preskočili ovo sljedeći put",
+ "bundle_column_error.copy_stacktrace": "Kopiraj izvješće o pogrešci",
+ "bundle_column_error.error.body": "Zaraženu stranicu nije moguće prikazati. To bi moglo biti zbog pogreške u našem kodu ili problema s kompatibilnošću preglednika.",
"bundle_column_error.error.title": "Oh, ne!",
+ "bundle_column_error.network.body": "Došlo je do pogreške prilikom pokušaja učitavanja ove stranice. Razlog može biti privremeni problem s internetskom vezom ili ovim poslužiteljem.",
"bundle_column_error.network.title": "Greška mreže",
"bundle_column_error.retry": "Pokušajte ponovno",
"bundle_column_error.return": "Na glavnu",
+ "bundle_column_error.routing.body": "Traženu stranicu nije moguće pronaći. Jeste li sigurni da je URL u adresnoj traci točan?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Zatvori",
"bundle_modal_error.message": "Nešto je pošlo po zlu tijekom učitavanja ove komponente.",
@@ -171,6 +197,7 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Evo kako će izgledati:",
"emoji_button.activity": "Aktivnost",
+ "emoji_button.clear": "Obriši",
"emoji_button.custom": "Prilagođeno",
"emoji_button.flags": "Zastave",
"emoji_button.food": "Hrana i piće",
@@ -211,6 +238,7 @@
"explore.trending_links": "Novosti",
"explore.trending_statuses": "Objave",
"explore.trending_tags": "Hashtagovi",
+ "filter_modal.added.context_mismatch_title": "Nepodudaranje konteksta!",
"filter_modal.added.review_and_configure_title": "Postavke filtara",
"filter_modal.added.title": "Filtar dodan!",
"filter_modal.select_filter.prompt_new": "Nova kategorija: {name}",
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index 917a0346670c68..35397b8e12f747 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -1,23 +1,84 @@
{
"account.add_or_remove_from_list": "Adder o remover ab listas",
+ "account.badges.group": "Gruppo",
+ "account.block": "Blocar @{name}",
+ "account.block_short": "Blocar",
+ "account.blocked": "Blocate",
"account.copy": "Copiar ligamine a profilo",
+ "account.edit_profile": "Modificar profilo",
+ "account.go_to_profile": "Vader al profilo",
+ "account.moved_to": "{name} indicava que lor nove conto ora es:",
+ "account.share": "Compartir profilo de @{name}",
+ "account.unblock": "Disblocar @{name}",
+ "account.unblock_short": "Disblocar",
+ "account.unendorse": "Non evidentiar sur le profilo",
+ "account_note.placeholder": "Clicca pro adder un nota",
+ "admin.dashboard.retention.cohort_size": "Nove usatores",
+ "audio.hide": "Celar audio",
+ "autosuggest_hashtag.per_week": "{count} per septimana",
"bundle_column_error.network.title": "Error de rete",
+ "bundle_column_error.retry": "Tentar novemente",
+ "bundle_column_error.return": "Retornar al initio",
"bundle_modal_error.close": "Clauder",
+ "bundle_modal_error.retry": "Tentar novemente",
+ "column.blocks": "Usatores blocate",
+ "column.directory": "Navigar profilos",
+ "column.favourites": "Favoritos",
"column.home": "Initio",
+ "column.lists": "Listas",
+ "column.notifications": "Notificationes",
+ "column_header.hide_settings": "Celar le parametros",
+ "column_header.show_settings": "Monstrar le parametros",
"column_subheading.settings": "Parametros",
+ "compose.language.change": "Cambiar le lingua",
"compose.language.search": "Cercar linguas...",
"compose.published.open": "Aperir",
+ "compose_form.poll.add_option": "Adder un option",
+ "compose_form.poll.remove_option": "Remover iste option",
"confirmation_modal.cancel": "Cancellar",
+ "confirmations.delete.confirm": "Deler",
+ "confirmations.delete_list.confirm": "Deler",
"confirmations.logout.confirm": "Clauder le session",
+ "copy_icon_button.copied": "Copiate al area de transferentia",
"copypaste.copy_to_clipboard": "Copiar al area de transferentia",
+ "disabled_account_banner.account_settings": "Parametros de conto",
"dismissable_banner.dismiss": "Dimitter",
+ "emoji_button.activity": "Activitate",
+ "emoji_button.custom": "Personalisate",
+ "emoji_button.search_results": "Resultatos de recerca",
+ "empty_column.account_unavailable": "Profilo non disponibile",
+ "errors.unexpected_crash.report_issue": "Signalar un defecto",
+ "explore.search_results": "Resultatos de recerca",
+ "explore.trending_links": "Novas",
+ "firehose.all": "Toto",
"firehose.local": "Iste servitor",
+ "firehose.remote": "Altere servitores",
"footer.about": "A proposito de",
+ "footer.directory": "Directorio de profilos",
+ "footer.privacy_policy": "Politica de confidentialitate",
+ "footer.source_code": "Vider le codice fonte",
+ "footer.status": "Stato",
"home.pending_critical_update.link": "Vider actualisationes",
"keyboard_shortcuts.my_profile": "Aperir tu profilo",
"lightbox.close": "Clauder",
"lightbox.next": "Sequente",
"link_preview.author": "Per {name}",
"lists.account.add": "Adder al lista",
- "navigation_bar.about": "A proposito de"
+ "mute_modal.duration": "Duration",
+ "mute_modal.hide_notifications": "Celar notificationes de iste usator?",
+ "navigation_bar.about": "A proposito de",
+ "navigation_bar.advanced_interface": "Aperir in un interfacie web avantiate",
+ "navigation_bar.blocks": "Usatores blocate",
+ "navigation_bar.favourites": "Favoritos",
+ "navigation_bar.lists": "Listas",
+ "navigation_bar.logout": "Clauder le session",
+ "navigation_bar.preferences": "Preferentias",
+ "navigation_bar.security": "Securitate",
+ "notifications.column_settings.alert": "Notificationes de scriptorio",
+ "notifications.column_settings.filter_bar.advanced": "Monstrar tote le categorias",
+ "notifications.column_settings.sound": "Reproducer sono",
+ "notifications.filter.all": "Toto",
+ "onboarding.compose.template": "Salute #Mastodon!",
+ "onboarding.profile.save_and_continue": "Salvar e continuar",
+ "onboarding.share.title": "Compartir tu profilo"
}
diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json
index a7cf1caab4aa0d..8579fc89c65604 100644
--- a/app/javascript/mastodon/locales/ie.json
+++ b/app/javascript/mastodon/locales/ie.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Null postas",
"account.featured_tags.title": "Recomandat hashtags de {name}",
"account.follow": "Sequer",
+ "account.follow_back": "Sequer reciprocmen",
"account.followers": "Sequitores",
"account.followers.empty": "Ancor nequi seque ti-ci usator.",
"account.followers_counter": "{count, plural, one {{counter} Sequitor} other {{counter} Sequitor}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Silentiar notificationes",
"account.mute_short": "Silentiar",
"account.muted": "Silentiat",
+ "account.mutual": "Reciproc",
"account.no_bio": "Null descrition providet.",
"account.open_original_page": "Aperter li págine original",
"account.posts": "Postas",
@@ -191,7 +193,9 @@
"conversation.mark_as_read": "Marcar quam leet",
"conversation.open": "Vider conversation",
"conversation.with": "Con {names}",
+ "copy_icon_button.copied": "Copiat al Paperiere",
"copypaste.copied": "Copiat",
+ "copypaste.copy_to_clipboard": "Copiar al Paperiere",
"directory.federated": "Del conosset fediverse",
"directory.local": "De solmen {domain}",
"directory.new_arrivals": "Nov arivantes",
@@ -246,6 +250,7 @@
"error.unexpected_crash.explanation_addons": "Ti-ci págine ne posset esser monstrat correctmen. Li error es probabilmen causat de un extension al navigator o instrumentes por automatic traduction.",
"error.unexpected_crash.next_steps": "Prova recargar li págine. Si to ne auxilia, tu fórsan posse usar Mastodon per un diferent navigator o aplication.",
"error.unexpected_crash.next_steps_addons": "Prova desactivisar les e recargar li págine. Si to ne auxilia, tu fórsan posse usar Mastodon per un diferent navigator o aplication.",
+ "errors.unexpected_crash.copy_stacktrace": "Copiar cumul-tracie a paperiere",
"errors.unexpected_crash.report_issue": "Raportar un problema",
"explore.search_results": "Resultates de sercha",
"explore.suggested_follows": "Gente",
@@ -280,6 +285,7 @@
"footer.directory": "Profilarium",
"footer.get_app": "Obtener li aplication",
"footer.invite": "Invitar gente",
+ "footer.keyboard_shortcuts": "Rapid-tastes",
"footer.privacy_policy": "Politica pri privatie",
"footer.source_code": "Vider li fonte-code",
"footer.status": "Statu",
@@ -342,7 +348,10 @@
"keyboard_shortcuts.favourite": "Favoritisar posta",
"keyboard_shortcuts.favourites": "Aperter li liste de favorites",
"keyboard_shortcuts.federated": "Aperter li federat témpor-linea",
+ "keyboard_shortcuts.heading": "Rapid-tastes",
"keyboard_shortcuts.home": "Aperter li hemal témpor-linea",
+ "keyboard_shortcuts.hotkey": "Rapid clave",
+ "keyboard_shortcuts.legend": "Monstrar ti-ci legende",
"keyboard_shortcuts.local": "Aperter li local témpor-linea",
"keyboard_shortcuts.mention": "Mentionar li autor",
"keyboard_shortcuts.muted": "Aperter li lista de silentiat usatores",
@@ -599,6 +608,7 @@
"search.search_or_paste": "Serchar o glutinar URL",
"search_popout.full_text_search_disabled_message": "Ne disponibil che {domain}.",
"search_popout.full_text_search_logged_out_message": "Solmen disponibil con session initiat.",
+ "search_popout.language_code": "Code de lingue ISO",
"search_popout.options": "Sercha-parametres",
"search_popout.quick_actions": "Rapid actiones",
"search_popout.recent": "Recent serchas",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 46e83b4dbffab0..fb839503e97e5c 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Engar færslur",
"account.featured_tags.title": "Myllumerki hjá {name} með aukið vægi",
"account.follow": "Fylgjast með",
+ "account.follow_back": "Fylgjast með til baka",
"account.followers": "Fylgjendur",
"account.followers.empty": "Ennþá fylgist enginn með þessum notanda.",
"account.followers_counter": "{count, plural, one {Fylgjandi: {counter}} other {Fylgjendur: {counter}}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Þagga í tilkynningum",
"account.mute_short": "Þagga niður",
"account.muted": "Þaggaður",
+ "account.mutual": "Sameiginlegir",
"account.no_bio": "Engri lýsingu útvegað.",
"account.open_original_page": "Opna upprunalega síðu",
"account.posts": "Færslur",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index e0e047ba14c1cf..97b1991803272c 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -17,6 +17,7 @@
"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",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 5746ab67a5c7ca..264781baa35726 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -240,7 +240,7 @@
"empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.",
"empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.",
"empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.",
- "empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람을 팔로우하여 채워보세요. {suggestions}",
+ "empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람을 팔로우하여 채워보세요.",
"empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.",
"empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.",
"empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
@@ -659,7 +659,7 @@
"status.media_hidden": "미디어 숨겨짐",
"status.mention": "@{name} 님에게 멘션",
"status.more": "자세히",
- "status.mute": "@{name} 님을 뮤트하기",
+ "status.mute": "@{name} 뮤트",
"status.mute_conversation": "이 대화를 뮤트",
"status.open": "상세 정보 표시",
"status.pin": "고정",
@@ -674,7 +674,7 @@
"status.replied_to": "{name} 님에게",
"status.reply": "답장",
"status.replyAll": "글타래에 답장",
- "status.report": "{name} 님을 신고하기",
+ "status.report": "@{name} 신고하기",
"status.sensitive_warning": "민감한 내용",
"status.share": "공유",
"status.show_filter_reason": "그냥 표시하기",
diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json
index c54ed2a7e9fa6a..ce6cb564730ef6 100644
--- a/app/javascript/mastodon/locales/lad.json
+++ b/app/javascript/mastodon/locales/lad.json
@@ -482,12 +482,14 @@
"onboarding.profile.discoverable": "Faz ke mi profil apareska en bushkedas",
"onboarding.profile.display_name": "Nombre amostrado",
"onboarding.profile.display_name_hint": "Tu nombre para amostrar.",
+ "onboarding.profile.lead": "Siempre puedes kompletar esto mas tadre en las preferensyas, ande tambien ay mas opsyones de personalizasyon.",
"onboarding.profile.note": "Tu deskripsyon",
"onboarding.profile.note_hint": "Puedes @enmentar a otra djente o #etiketas…",
"onboarding.profile.save_and_continue": "Guadra i kontinua",
"onboarding.profile.title": "Konfigurasyon de profil",
"onboarding.profile.upload_avatar": "Karga imaje de profil",
"onboarding.profile.upload_header": "Karga kavesera de profil",
+ "onboarding.share.lead": "Informe a otros komo toparte en Mastodon!",
"onboarding.share.message": "Soy {username} en #Mastodon! Segidme en {url}",
"onboarding.share.next_steps": "Posivles sigientes pasos:",
"onboarding.share.title": "Partaja tu profil",
@@ -497,6 +499,7 @@
"onboarding.steps.follow_people.title": "Personaliza tu linya prinsipala",
"onboarding.steps.publish_status.title": "Eskrive tu primera publikasyon",
"onboarding.steps.setup_profile.title": "Personaliza tu profil",
+ "onboarding.steps.share_profile.body": "Informe a tus amigos komo toparte en Mastodon",
"onboarding.steps.share_profile.title": "Partaja tu profil de Mastodon",
"picture_in_picture.restore": "Restora",
"poll.closed": "Serrado",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 82f1669b1a2da2..ec0d30363c7f5b 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -2,7 +2,7 @@
"about.blocks": "Prižiūrimi serveriai",
"about.contact": "Kontaktuoti:",
"about.disclaimer": "Mastodon – nemokama atvirojo kodo programa ir Mastodon gGmbH prekės ženklas.",
- "about.domain_blocks.no_reason_available": "Priežastis nežinoma",
+ "about.domain_blocks.no_reason_available": "Priežastis nepateikta",
"about.domain_blocks.preamble": "Mastodon paprastai leidžia peržiūrėti turinį ir bendrauti su naudotojais iš bet kurio kito fediverse esančio serverio. Šios yra išimtys, kurios buvo padarytos šiame konkrečiame serveryje.",
"about.domain_blocks.silenced.explanation": "Paprastai nematysi profilių ir turinio iš šio serverio, nebent jį aiškiai ieškosi arba pasirinksi jį sekdamas (-a).",
"about.domain_blocks.silenced.title": "Ribota",
@@ -35,7 +35,7 @@
"account.follow_back": "Sekti atgal",
"account.followers": "Sekėjai",
"account.followers.empty": "Šio naudotojo dar niekas neseka.",
- "account.followers_counter": "{count, plural, one {{counter} sekėjas (-a)} few {{counter} sekėjai} many {{counter} sekėjo} other {{counter} sekėjų}}",
+ "account.followers_counter": "{count, plural, one {{counter} sekėjas} few {{counter} sekėjai} many {{counter} sekėjo} other {{counter} sekėjų}}",
"account.following": "Seka",
"account.following_counter": "{count, plural, one {{counter} Seka} few {{counter} Seka} many {{counter} Seka} other {{counter} Seka}}",
"account.follows.empty": "Šis (-i) naudotojas (-a) dar nieko neseka.",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 3ef2f80eaf78f1..e5b1d2b3780e63 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -482,6 +482,7 @@
"onboarding.follows.empty": "Me kan ikkje visa deg nokon resultat no. Du kan prøva å søkja eller bla gjennom utforsk-sida for å finna folk å fylgja, eller du kan prøva att seinare.",
"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.profile.discoverable": "Gjør min profil synlig",
"onboarding.profile.display_name": "Synleg namn",
"onboarding.profile.display_name_hint": "Det fulle namnet eller kallenamnet ditt…",
"onboarding.profile.lead": "Du kan alltid fullføra dette seinare i innstillingane, og der er det endå fleire tilpassingsalternativ.",
@@ -534,6 +535,7 @@
"privacy.unlisted.short": "Uoppført",
"privacy_policy.last_updated": "Sist oppdatert {date}",
"privacy_policy.title": "Personvernsreglar",
+ "recommended": "Anbefalt",
"refresh": "Oppdater",
"regeneration_indicator.label": "Lastar…",
"regeneration_indicator.sublabel": "Heimetidslina di vert førebudd!",
@@ -604,6 +606,7 @@
"search.quick_action.status_search": "Innlegg som samsvarer med {x}",
"search.search_or_paste": "Søk eller lim inn URL",
"search_popout.full_text_search_disabled_message": "Ikkje tilgjengeleg på {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Bare tilgjengelig ved innlogging.",
"search_popout.language_code": "ISO-språkkode",
"search_popout.options": "Søkjealternativ",
"search_popout.quick_actions": "Hurtighandlinger",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 29eaeddff59cef..c0f50283acbdd9 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Ingen Innlegg",
"account.featured_tags.title": "{name} sine fremhevede emneknagger",
"account.follow": "Følg",
+ "account.follow_back": "Følg tilbake",
"account.followers": "Følgere",
"account.followers.empty": "Ingen følger denne brukeren ennå.",
"account.followers_counter": "{count, plural, one {{counter} følger} other {{counter} følgere}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Demp varsler",
"account.mute_short": "Demp",
"account.muted": "Dempet",
+ "account.mutual": "Gjensidig",
"account.no_bio": "Ingen beskrivelse oppgitt.",
"account.open_original_page": "Gå til originalsiden",
"account.posts": "Innlegg",
@@ -66,7 +68,7 @@
"account.unblock_domain": "Opphev blokkering av {domain}",
"account.unblock_short": "Opphev blokkering",
"account.unendorse": "Ikke vis frem på profilen",
- "account.unfollow": "Avfølg",
+ "account.unfollow": "Slutt å følge",
"account.unmute": "Opphev demping av @{name}",
"account.unmute_notifications_short": "Opphev demping av varsler",
"account.unmute_short": "Opphev demping",
@@ -480,6 +482,7 @@
"onboarding.follows.empty": "Dessverre kan ingen resultater vises akkurat nå. Du kan prøve å bruke søk eller bla gjennom utforske-siden for å finne folk å følge, eller prøve igjen senere.",
"onboarding.follows.lead": "Hjem-skjermen din er den viktigste måten å oppleve Mastodon på. Jo flere du følger, jo mer aktiv og interessant blir det. For å komme i gang, er her noen forslag:",
"onboarding.follows.title": "Populært på Mastodon",
+ "onboarding.profile.discoverable": "Gjør min profil synlig",
"onboarding.profile.display_name": "Visningsnavn",
"onboarding.profile.display_name_hint": "Ditt fulle navn eller ditt morsomme navn…",
"onboarding.profile.lead": "Du kan alltid fullføre dette senere i innstillingene, der enda flere tilpasningsalternativer er tilgjengelige.",
@@ -532,6 +535,7 @@
"privacy.unlisted.short": "Uoppført",
"privacy_policy.last_updated": "Sist oppdatert {date}",
"privacy_policy.title": "Personvernregler",
+ "recommended": "Anbefalt",
"refresh": "Oppfrisk",
"regeneration_indicator.label": "Laster…",
"regeneration_indicator.sublabel": "Dine tidslinje blir gjort klar!",
@@ -602,6 +606,7 @@
"search.quick_action.status_search": "Innlegg som samsvarer med {x}",
"search.search_or_paste": "Søk eller lim inn URL",
"search_popout.full_text_search_disabled_message": "Ikke tilgjengelig på {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Bare tilgjengelig ved innlogging.",
"search_popout.language_code": "ISO språkkode",
"search_popout.options": "Alternativer for søk",
"search_popout.quick_actions": "Hurtighandlinger",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 37a8328c98edc3..a8ff90cc003b1b 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Нет постов",
"account.featured_tags.title": "Избранные хэштеги {name}",
"account.follow": "Подписаться",
+ "account.follow_back": "Подписаться в ответ",
"account.followers": "Подписчики",
"account.followers.empty": "На этого пользователя пока никто не подписан.",
"account.followers_counter": "{count, plural, one {{counter} подписчик} many {{counter} подписчиков} other {{counter} подписчика}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Отключить уведомления",
"account.mute_short": "Немой",
"account.muted": "Игнорируется",
+ "account.mutual": "Взаимно",
"account.no_bio": "Описание не предоставлено.",
"account.open_original_page": "Открыть исходную страницу",
"account.posts": "Посты",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 02425d73e0fa17..3e41a2035a0046 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -21,7 +21,7 @@
"account.blocked": "Blokovaný/á",
"account.browse_more_on_origin_server": "Prehľadávaj viac na pôvodnom profile",
"account.cancel_follow_request": "Zruš žiadosť o sledovanie",
- "account.copy": "Skopíruj odkaz pre profil",
+ "account.copy": "Skopíruj odkaz na profil",
"account.direct": "Spomeň @{name} súkromne",
"account.disable_notifications": "Prestaň mi oznamovať, keď má @{name} príspevky",
"account.domain_blocked": "Doména skrytá",
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Žiadne príspevky",
"account.featured_tags.title": "Odporúčané hashtagy používateľa {name}",
"account.follow": "Sleduj",
+ "account.follow_back": "Nasleduj späť",
"account.followers": "Sledovatelia",
"account.followers.empty": "Tohto používateľa ešte nikto nenasleduje.",
"account.followers_counter": "{count, plural, one {{counter} Sledujúci} few {{counter} Sledujúci} many {{counter} Sledujúcich} other {{counter} Sledujúcich}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Stíš oznámenia",
"account.mute_short": "Stíš",
"account.muted": "Stíšený",
+ "account.mutual": "Spoločné",
"account.no_bio": "Nie je uvedený žiadny popis.",
"account.open_original_page": "Otvor pôvodnú stránku",
"account.posts": "Príspevky",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 59ad0ae84ea81c..77c262e9571293 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Nema objava",
"account.featured_tags.title": "Istaknute heš oznake korisnika {name}",
"account.follow": "Prati",
+ "account.follow_back": "Uzvrati praćenje",
"account.followers": "Pratioci",
"account.followers.empty": "Još uvek niko ne prati ovog korisnika.",
"account.followers_counter": "{count, plural, one {{counter} pratilac} few {{counter} pratioca} other {{counter} pratilaca}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Isključi obaveštenja",
"account.mute_short": "Isključi",
"account.muted": "Ignorisan",
+ "account.mutual": "Zajednički",
"account.no_bio": "Nema opisa.",
"account.open_original_page": "Otvori originalnu stranicu",
"account.posts": "Objave",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 79786b8d4428df..85e7567bf42166 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Нема објава",
"account.featured_tags.title": "Истакнуте хеш ознаке корисника {name}",
"account.follow": "Прати",
+ "account.follow_back": "Узврати праћење",
"account.followers": "Пратиоци",
"account.followers.empty": "Још увек нико не прати овог корисника.",
"account.followers_counter": "{count, plural, one {{counter} пратилац} few {{counter} пратиоца} other {{counter} пратилаца}}",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 6b2332d5b8a308..5290e13ff4cdfa 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -10,6 +10,7 @@
"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",
@@ -18,20 +19,26 @@
"account.edit_profile": "சுயவிவரத்தை மாற்று",
"account.enable_notifications": "@{name} பதிவிட்டல் எனக்குத் தெரியப்படுத்தவும்",
"account.endorse": "சுயவிவரத்தில் வெளிப்படுத்து",
+ "account.featured_tags.last_status_never": "இடுகைகள் இல்லை",
"account.follow": "பின்தொடர்",
+ "account.follow_back": "பின்தொடரு",
"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.go_to_profile": "சுயவிவரத்திற்குச் செல்லவும்",
"account.hide_reblogs": "இருந்து ஊக்கியாக மறை @{name}",
"account.link_verified_on": "இந்த இணைப்பை உரிமையாளர் சரிபார்க்கப்பட்டது {date}",
"account.locked_info": "இந்தக் கணக்கு தனியுரிமை நிலை பூட்டப்பட்டுள்ளது. அவர்களைப் பின்தொடர்பவர் யார் என்பதை உரிமையாளர் கைமுறையாக மதிப்பாய்வு செய்கிறார்.",
"account.media": "ஊடகங்கள்",
"account.mention": "குறிப்பிடு @{name}",
"account.mute": "ஊமையான @{name}",
+ "account.mute_notifications_short": "அறிவிப்புகளை ஒலியடக்கு",
+ "account.mute_short": "அமைதியாக்கு",
"account.muted": "முடக்கியது",
+ "account.no_bio": "விளக்கம் எதுவும் வழங்கப்படவில்லை.",
"account.posts": "டூட்டுகள்",
"account.posts_with_replies": "Toots மற்றும் பதில்கள்",
"account.report": "@{name} -ஐப் புகாரளி",
@@ -61,15 +68,29 @@
"audio.hide": "ஆடியோவை மறை",
"autosuggest_hashtag.per_week": "ஒவ்வொரு வாரம் {count}",
"boost_modal.combo": "நீங்கள் இதை அடுத்தமுறை தவிர்க்க {combo} வை அழுத்தவும்",
+ "bundle_column_error.error.title": "அடடே!",
+ "bundle_column_error.network.body": "இந்தப் பக்கத்தைத் திறக்கும்பொழுது ஒரு பிழை ஏற்பட்டுவிட்டது. இது உங்கள் இணைய தொடர்பில் அல்லது இப்பத்தின் வழங்க்கியில் ஏற்பட்டுள்ள ஒரு தற்காலிக பிரச்சணையாக இருக்கலாம்.",
+ "bundle_column_error.network.title": "பிணையப் பிழை",
"bundle_column_error.retry": "மீண்டும் முயற்சிக்கவும்",
+ "bundle_column_error.return": "முகப்பிற்கு செல்லவும்",
+ "bundle_column_error.routing.body": "கேட்கப்பட்ட பக்கத்தைக் காணவில்லை. நீங்கள் உள்ளிட்ட முகவரி சரியனதா?",
+ "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "மூடுக",
"bundle_modal_error.message": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.",
"bundle_modal_error.retry": "மீண்டும் முயற்சி செய்",
+ "closed_registrations.other_server_instructions": "மேச்டடான் இரு பரவலாக்கப்பட்ட மென்பொருள் என்பதால், நீங்கள் வேரு ஒரு வழங்கியில் கணக்கை உருவாக்கியிருந்தாலும் இந்த வழங்கியில் பயன்படுத்தலாம்.",
+ "closed_registrations_modal.description": "{domain} இல் இப்பொழுது கணக்குகள் உருவாக்க முடியாது. நீங்கள் மேச்டடான் பயன்படுத்த, குறிப்பாக {domain} முகவரியில் கணக்கைத் துவங்க வேண்டும் என்ற அவசியமில்லை என்பதை மனதில் வைத்துக் கொள்ளவும்.",
+ "closed_registrations_modal.find_another_server": "வேறொரு வழங்கியைக் கண்டுபிடி",
+ "closed_registrations_modal.preamble": "மேச்டடான் ஒரு பரவலாக்கப்பட்ட மென்பொருள். ஆதனால் நீங்கள் எங்குக் கணக்கை உருவாக்கினாலும் இந்த வழங்கியில் உள்ள யாருடன் வேண்டும் என்றாலும் உரவாடலாம். நீங்களே கூட ஒரு வழங்கியை நிறுவலாம்!",
+ "closed_registrations_modal.title": "மேச்டடான் கணக்கு துவங்கப்படுகிறது",
+ "column.about": "பற்றி",
"column.blocks": "தடுக்கப்பட்ட பயனர்கள்",
"column.bookmarks": "அடையாளக்குறிகள்",
"column.community": "சுய நிகழ்வு காலவரிசை",
+ "column.direct": "தனிப்பட்ட குறிப்புகள்",
"column.directory": "சுயவிவரங்களை உலாவு",
"column.domain_blocks": "மறைந்திருக்கும் திரளங்கள்",
+ "column.favourites": "பிடித்தவை",
"column.follow_requests": "பின்தொடர அனுமதிகள்",
"column.home": "முகப்பு",
"column.lists": "பட்டியல்கள்",
@@ -90,6 +111,9 @@
"community.column_settings.remote_only": "தொலைவிலிருந்து மட்டுமே",
"compose.language.change": "மொழியை மாற்று",
"compose.language.search": "தேடல் மொழிகள்...",
+ "compose.published.body": "பதிவிடப்பட்டது.",
+ "compose.published.open": "திற",
+ "compose.saved.body": "பதிவு சேமிக்கப்பட்டது.",
"compose_form.direct_message_warning_learn_more": "மேலும் அறிய",
"compose_form.encryption_warning": "Mastodonல் உள்ள பதிவுகள் முறையாக என்க்ரிப்ட்(encrypt) செய்யபடவில்லை. அதனால் முக்கிய தகவல்களை இங்கே பகிர வேண்டாம்.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
@@ -180,6 +204,10 @@
"error.unexpected_crash.next_steps": "பக்கத்தைப் புதுப்பித்துப் பார்க்கவும். அப்படியும் வேலை செய்யவில்லை எனில், மாஸ்டடானை வேறு ஒரு உலாவியின் மூலமோ, அல்லது பொருத்தமான செயலியின் மூலமோ பயன்படுத்திப் பார்க்கவும்.",
"errors.unexpected_crash.copy_stacktrace": "Stacktrace-ஐ clipboard-ல் நகலெடு",
"errors.unexpected_crash.report_issue": "புகாரளி",
+ "explore.title": "உலாவு",
+ "explore.trending_links": "செய்திகள்",
+ "explore.trending_statuses": "பதிவுகள்",
+ "explore.trending_tags": "ஹேஷ்டேக்குகள்",
"follow_request.authorize": "அனுமதியளி",
"follow_request.reject": "நிராகரி",
"follow_requests.unlocked_explanation": "உங்கள் கணக்கு பூட்டப்படவில்லை என்றாலும், இந்தக் கணக்குகளிலிருந்து உங்களைப் பின்தொடர விரும்பும் கோரிக்கைகளை நீங்கள் பரீசீலிப்பது நலம் என்று {domain} ஊழியர் எண்ணுகிறார்.",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index d14e37517d5734..b108e581a4aef5 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ซ่อนการแจ้งเตือน",
"account.mute_short": "ซ่อน",
"account.muted": "ซ่อนอยู่",
+ "account.mutual": "คนที่มีร่วมกัน",
"account.no_bio": "ไม่ได้ให้คำอธิบาย",
"account.open_original_page": "เปิดหน้าดั้งเดิม",
"account.posts": "โพสต์",
@@ -203,7 +204,7 @@
"disabled_account_banner.text": "มีการปิดใช้งานบัญชีของคุณ {disabledAccount} ในปัจจุบัน",
"dismissable_banner.community_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนที่บัญชีได้รับการโฮสต์โดย {domain}",
"dismissable_banner.dismiss": "ปิด",
- "dismissable_banner.explore_links": "นี่คือเรื่องข่าวที่ได้รับการแบ่งปันมากที่สุดในเว็บสังคมวันนี้ เรื่องข่าวที่ใหม่กว่าที่ได้รับการโพสต์โดยผู้คนต่าง ๆ มากกว่าจะได้รับการจัดอันดับที่สูงกว่า",
+ "dismissable_banner.explore_links": "นี่เป็นเรื่องข่าวที่ได้รับการแชร์มากที่สุดในเว็บสังคมวันนี้ เรื่องข่าวที่ใหม่กว่าที่มีคนโพสต์มากกว่าจะได้รับการจัดอันดับที่สูงกว่า",
"dismissable_banner.explore_statuses": "นี่คือโพสต์จากทั่วทั้งเว็บสังคมที่กำลังได้รับความสนใจวันนี้ โพสต์ที่ใหม่กว่าที่มีการดันและรายการโปรดมากกว่าจะได้รับการจัดอันดับที่สูงกว่า",
"dismissable_banner.explore_tags": "นี่คือแฮชแท็กที่กำลังได้รับความสนใจในเว็บสังคมวันนี้ แฮชแท็กที่มีการใช้โดยผู้คนต่าง ๆ มากกว่าจะได้รับการจัดอันดับที่สูงกว่า",
"dismissable_banner.public_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนในเว็บสังคมที่ผู้คนใน {domain} ติดตาม",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 92eacaad144ef5..5ec0da599b28a9 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Немає дописів",
"account.featured_tags.title": "{name} виділяє хештеґи",
"account.follow": "Підписатися",
+ "account.follow_back": "Підписатися взаємно",
"account.followers": "Підписники",
"account.followers.empty": "Ніхто ще не підписаний на цього користувача.",
"account.followers_counter": "{count, plural, one {{counter} підписник} few {{counter} підписники} many {{counter} підписників} other {{counter} підписники}}",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 721c7cd4ad10a9..03c6502651a7e5 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -32,6 +32,7 @@
"account.featured_tags.last_status_never": "Chưa có tút",
"account.featured_tags.title": "Hashtag của {name}",
"account.follow": "Theo dõi",
+ "account.follow_back": "Theo dõi lại",
"account.followers": "Người theo dõi",
"account.followers.empty": "Chưa có người theo dõi nào.",
"account.followers_counter": "{count, plural, one {{counter} Người theo dõi} other {{counter} Người theo dõi}}",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Ẩn thông báo",
"account.mute_short": "Ẩn",
"account.muted": "Đã ẩn",
+ "account.mutual": "Đang theo dõi nhau",
"account.no_bio": "Chưa có miêu tả.",
"account.open_original_page": "Mở trang gốc",
"account.posts": "Tút",
diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js
index d5ecad7dbfaddf..9053dcc9c0528b 100644
--- a/app/javascript/mastodon/reducers/accounts_map.js
+++ b/app/javascript/mastodon/reducers/accounts_map.js
@@ -2,8 +2,13 @@ import { Map as ImmutableMap } from 'immutable';
import { ACCOUNT_LOOKUP_FAIL } from '../actions/accounts';
import { importAccounts } from '../actions/accounts_typed';
+import { domain } from '../initial_state';
-export const normalizeForLookup = str => str.toLowerCase();
+export const normalizeForLookup = str => {
+ str = str.toLowerCase();
+ const trailingIndex = str.indexOf(`@${domain.toLowerCase()}`);
+ return (trailingIndex > 0) ? str.slice(0, trailingIndex) : str;
+};
const initialState = ImmutableMap();
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 3777fccbfb83ca..3a27c974ad8978 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -300,10 +300,15 @@ html {
}
&__item {
+ color: $darker-text-color;
+
+ &--dangerous {
+ color: $error-value-color;
+ }
+
a,
button {
background: $white;
- color: $darker-text-color;
}
}
}
@@ -315,9 +320,9 @@ html {
.privacy-dropdown__option.active .privacy-dropdown__option__content strong,
.privacy-dropdown__option:hover .privacy-dropdown__option__content,
.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,
-.dropdown-menu__item a:active,
-.dropdown-menu__item a:focus,
-.dropdown-menu__item a:hover,
+.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:active,
+.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:focus,
+.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:hover,
.actions-modal ul li:not(:empty) a.active,
.actions-modal ul li:not(:empty) a.active button,
.actions-modal ul li:not(:empty) a:active,
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 5f128af734c1e9..8d4120868d4feb 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -77,6 +77,7 @@ def initialize(verb, url, **options)
@url = Addressable::URI.parse(url).normalize
@http_client = options.delete(:http_client)
@allow_local = options.delete(:allow_local)
+ @full_path = options.delete(:with_query_string)
@options = options.merge(socket_class: use_proxy? || @allow_local ? ProxySocket : Socket)
@options = @options.merge(timeout_class: PerOperationWithDeadline, timeout_options: TIMEOUT)
@options = @options.merge(proxy_url) if use_proxy?
@@ -146,7 +147,7 @@ def http_client
private
def set_common_headers!
- @headers[REQUEST_TARGET] = "#{@verb} #{@url.path}"
+ @headers[REQUEST_TARGET] = request_target
@headers['User-Agent'] = Mastodon::Version.user_agent
@headers['Host'] = @url.host
@headers['Date'] = Time.now.utc.httpdate
@@ -157,6 +158,14 @@ def set_digest!
@headers['Digest'] = "SHA-256=#{Digest::SHA256.base64digest(@options[:body])}"
end
+ def request_target
+ if @url.query.nil? || !@full_path
+ "#{@verb} #{@url.path}"
+ else
+ "#{@verb} #{@url.path}?#{@url.query}"
+ end
+ end
+
def signature
algorithm = 'rsa-sha256'
signature = Base64.strict_encode64(@keypair.sign(OpenSSL::Digest.new('SHA256'), signed_string))
diff --git a/app/models/announcement.rb b/app/models/announcement.rb
index 2cd7c1d5ed9813..83a8d3682c3b24 100644
--- a/app/models/announcement.rb
+++ b/app/models/announcement.rb
@@ -28,8 +28,8 @@ class Announcement < ApplicationRecord
has_many :announcement_reactions, dependent: :destroy
validates :text, presence: true
- validates :starts_at, presence: true, if: -> { ends_at.present? }
- validates :ends_at, presence: true, if: -> { starts_at.present? }
+ validates :starts_at, presence: true, if: :ends_at?
+ validates :ends_at, presence: true, if: :starts_at?
before_validation :set_published, on: :create
@@ -46,7 +46,7 @@ def unpublish!
end
def time_range?
- starts_at.present? && ends_at.present?
+ starts_at? && ends_at?
end
def mentions
diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb
index 6118e204a1e90a..8382c9159968d8 100644
--- a/app/models/concerns/remotable.rb
+++ b/app/models/concerns/remotable.rb
@@ -46,7 +46,7 @@ def remotable_attachment(attachment_name, limit, suppress_errors: true, download
public_send(:"download_#{attachment_name}!", url) if download_on_assign
end
- alias_method(:"reset_#{attachment_name}!", "download_#{attachment_name}!")
+ alias_method(:"reset_#{attachment_name}!", :"download_#{attachment_name}!")
end
end
end
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 5a53e73ba88793..9c936fed392b27 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -17,8 +17,23 @@
class CustomFilter < ApplicationRecord
self.ignored_columns += %w(whole_word irreversible)
- alias_attribute :title, :phrase
- alias_attribute :filter_action, :action
+ # NOTE: We previously used `alias_attribute` but this does not play nicely
+ # with cache
+ def title
+ phrase
+ end
+
+ def title=(value)
+ self.phrase = value
+ end
+
+ def filter_action
+ action
+ end
+
+ def filter_action=(value)
+ self.action = value
+ end
VALID_CONTEXTS = %w(
home
diff --git a/app/models/custom_filter_keyword.rb b/app/models/custom_filter_keyword.rb
index 3158b3b79a04f5..1812a430818f20 100644
--- a/app/models/custom_filter_keyword.rb
+++ b/app/models/custom_filter_keyword.rb
@@ -17,7 +17,15 @@ class CustomFilterKeyword < ApplicationRecord
validates :keyword, presence: true
- alias_attribute :phrase, :keyword
+ # NOTE: We previously used `alias_attribute` but this does not play nicely
+ # with cache
+ def phrase
+ keyword
+ end
+
+ def phrase=(value)
+ self.keyword = value
+ end
before_save :prepare_cache_invalidation!
before_destroy :prepare_cache_invalidation!
diff --git a/config/initializers/1_hosts.rb b/config/initializers/1_hosts.rb
index 6ff0845c4665cf..5c59e28bd12764 100644
--- a/config/initializers/1_hosts.rb
+++ b/config/initializers/1_hosts.rb
@@ -23,7 +23,7 @@
if Rails.env.production?
"ws#{https ? 's' : ''}://#{web_host}"
else
- "ws://#{ENV['REMOTE_DEV'] == 'true' ? host.split(':').first : 'localhost'}:4000"
+ "ws://#{host.split(':').first}:4000"
end
end
diff --git a/config/locales/activerecord.ie.yml b/config/locales/activerecord.ie.yml
index 0c63299e04e97a..588105ae96f36f 100644
--- a/config/locales/activerecord.ie.yml
+++ b/config/locales/activerecord.ie.yml
@@ -6,4 +6,52 @@ ie:
expires_at: Cludent date
options: Optiones
user:
+ agreement: Acorde de servicie
+ email: E-posta
+ locale: Local
password: Passa-parol
+ user/account:
+ username: Nómine del usator
+ user/invite_request:
+ text: Rason
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ reserved: es reservat
+ admin/webhook:
+ attributes:
+ url:
+ invalid: ne es un valid URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: ne es un valid URL
+ import:
+ attributes:
+ data:
+ malformed: es malformat
+ status:
+ attributes:
+ reblog:
+ taken: de posta ja existe
+ user:
+ attributes:
+ email:
+ unreachable: sembla ne exister
+ role_id:
+ elevated: ne posse esser plu alt quam tui actual rol
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: include permissones ne secur por li rol de base
+ elevated: ne posse includer permissiones ne possedet de tui rol actual
+ own_role: ne posse esser changeat con tui actual rol
+ position:
+ elevated: ne posse esser plu alt quam tui actual rol
+ own_role: ne posse esser changeat con tui actual rol
+ webhook:
+ attributes:
+ events:
+ invalid_permissions: ne posse includer evenimentes por queles tu ne have li yures
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 7f60e934221c1e..9dd533b2ad48ed 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -659,6 +659,7 @@ cy:
created_at: Adroddwyd
delete_and_resolve: Dileu postiadau
forwarded: Wedi'i anfon ymlaen
+ forwarded_replies_explanation: Mae'r adroddiad hwn gan ddefnyddiwr o weinydd arall ac am gynnwys pell. Mae wedi ei anfon ymlaen atoch chi oherwydd bod y cynnwys sy'n cael ei adrodd yn ateb i un o'ch defnyddwyr.
forwarded_to: Wedi'i anfon ymlaen i %{domain}
mark_as_resolved: Nodi fel wedi'i ddatrys
mark_as_sensitive: Marcio fel sensitif
diff --git a/config/locales/devise.ie.yml b/config/locales/devise.ie.yml
index 0cf0fbe1fe2316..e4f2e6fb190f17 100644
--- a/config/locales/devise.ie.yml
+++ b/config/locales/devise.ie.yml
@@ -1,6 +1,8 @@
---
ie:
devise:
+ confirmations:
+ confirmed: Tui e-mail adresse ha esset confirmat successosimen.
failure:
already_authenticated: Tu ha ja intrat.
inactive: Tui conto ancor ne ha esset activat.
@@ -13,13 +15,26 @@ ie:
unauthenticated: Tu deve intrar o registrar te ante continuar.
unconfirmed: Tu deve confirmar tui e-posta ante continuar.
mailer:
+ confirmation_instructions:
+ action: Verificar e-posta
+ action_with_app: Confirma e retorna a%{app}
+ explanation: Tu ha creat un conto sur %{host} con ti-ci e-posta, quel tu posse activar per un sol clicc. Si it ne esset tu qui creat li conto, ples ignorar ti-ci missage.
+ explanation_when_pending: Tu ha demandat un invitation a %{host} con ti-ci e-posta. Pos confirmation de tui adresse, noi va inspecter tui aplication. Tu posse inloggar por changear detallies o deleter li conto, ma li pluparte del functiones va restar ínusabil til quande tui conto es aprobat. Tui data va esser deletet si tui conto es rejectet, e in ti casu tu ne besona far quelcunc cose. Si it ne esset tu qui creat li conto, ples ignorar ti-ci missage.
+ title: Verificar e-posta
email_changed:
+ explanation: 'Li e-mail adresse de tui es changeat a:'
extra: Si tu ne changeat tui email-adresse, it es probabil que alqui ha ganiat accesse a tui conto. Ples changear tui passa-parol strax o contacter li administrator del servitor si tu ne posse intrar tui conto.
+ subject: 'Mastodon: E-posta changeat'
+ title: Nov adresse de e-posta
password_change:
explanation: Li passa-parol de tui conto ha esset changeat.
extra: Si tu ne changeat tui passa-parol, it es probabil que alqui ha ganiat accesse a tui conto. Ples changear tui passa-parol strax o contacter li administrator del servitor si tu ne posse intrar tui conto.
subject: 'Mastodon: Passa-parol changeat'
title: Passa-parol changeat
+ reconfirmation_instructions:
+ explanation: Confirmar li nov adresse por changeat tui e-posta.
+ subject: 'Mastodon: E-posta de confirmation por %{instance}'
+ title: Verificar e-posta
reset_password_instructions:
action: Changear passa-parol
explanation: Tu demandat un nov passa-parol por tui conto.
@@ -28,6 +43,18 @@ ie:
title: Reiniciar passa-parol
two_factor_disabled:
explanation: 2-factor autentication por tui conto ha esset desactivisat. Aperter session nu es possibil solmen per email-adresse e passa-parol.
+ title: 2FA desvalidat
+ two_factor_enabled:
+ title: 2FA permisset
+ unlock_instructions:
+ subject: 'Mastodon: Desserral instructiones'
+ webauthn_credential:
+ added:
+ subject: 'Mastodon: Nov clave de securitá'
+ title: Un nov clave de securitá ha esset adjuntet
+ webauthn_disabled:
+ subject: 'Mastodon: Autentication con claves de securitá desactivisat'
+ title: Claves de securitá desactivisat
omniauth_callbacks:
failure: Ne posset autenticar te de %{kind} pro "%{reason}".
passwords:
@@ -38,3 +65,15 @@ ie:
updated_not_active: Tui passa-parol ha esset changeat successosimen.
registrations:
signed_up: Benevenit! Tu ha successat registrar te.
+ updated: Tui conto ha esset actualisat successosimen.
+ sessions:
+ already_signed_out: Exeat successosimen.
+ signed_in: Intrat successosimen.
+ signed_out: Exeat successosimen.
+ errors:
+ messages:
+ already_confirmed: esset ja confirmat, ples prova intrar
+ confirmation_period_expired: besona esser confirmat intra %{period}, ples demanda un nov
+ expired: ha expirat, ples demandar un nov
+ not_found: ne trovat
+ not_locked: ne esset serrat
diff --git a/config/locales/devise.ko.yml b/config/locales/devise.ko.yml
index 3ab7c11a5cbae8..65f660f1050317 100644
--- a/config/locales/devise.ko.yml
+++ b/config/locales/devise.ko.yml
@@ -2,7 +2,7 @@
ko:
devise:
confirmations:
- confirmed: 이메일이 성공적으로 승인 되었습니다.
+ confirmed: 이메일이 성공적으로 확인 되었습니다.
send_instructions: 몇 분 이내로 확인 이메일이 발송 됩니다. 이메일을 받지 못 한 경우, 스팸 폴더를 확인하세요.
send_paranoid_instructions: 이메일 주소가 저희 데이터베이스에 있는 경우, 몇 분 내에 이메일 주소를 확인하는 방법에 대한 안내가 포함된 이메일을 받을 수 있습니다. 이 이메일을 받지 못했다면 스팸 폴더를 확인해 주세요.
failure:
diff --git a/config/locales/doorkeeper.ie.yml b/config/locales/doorkeeper.ie.yml
index 83c9cc564f8f39..86a5de7b37ecca 100644
--- a/config/locales/doorkeeper.ie.yml
+++ b/config/locales/doorkeeper.ie.yml
@@ -1,11 +1,162 @@
---
ie:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Nómine de aplication
+ redirect_uri: URI de redirection
+ website: Situ web de aplication
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: ne posse contener un fragment.
+ invalid_uri: deve esser un URI valid.
+ relative_uri: deve esser un URI absolut.
+ secured_uri: deve esser un URI de HTTPS/SSL.
doorkeeper:
+ applications:
+ buttons:
+ authorize: Autorisar
+ cancel: Anullar
+ destroy: Destructer
+ edit: Redacter
+ submit: Submisser
+ confirmations:
+ destroy: Es tu cert?
+ edit:
+ title: Modificar aplication
+ help:
+ redirect_uri: Usar un linea per URI
+ index:
+ application: Aplication
+ delete: Deleter
+ empty: Tu have null aplicationes.
+ name: Nómine
+ new: Nov aplication
+ show: Monstrar
+ title: Tui aplicationes
+ new:
+ title: Nov aplication
+ show:
+ actions: Actiones
+ application_id: Clave de client
+ secret: Secrete de client
+ title: 'Aplication: %{name}'
+ authorizations:
+ buttons:
+ authorize: Autorisar
+ deny: Negar
+ error:
+ title: Alquo ha errat
+ new:
+ title: Autorisation besonat
+ authorized_applications:
+ buttons:
+ revoke: Revocar
+ confirmations:
+ revoke: Es tu cert?
+ index:
+ authorized_at: Autorisat ye %{date}
+ last_used_at: Ultimmen usat ye %{date}
+ never_used: Nequande usat
+ scopes: Permissiones
+ superapp: Intern
+ title: Tui autorisat aplicationes
+ errors:
+ messages:
+ invalid_client: Fallit autentification pro ínconosset client, manca de client-autentification, o ne subtenet metode de autentification.
+ invalid_redirect_uri: Li uri de redirection includet ne es valid.
+ invalid_request:
+ unknown: Li petition manca un postulat parametre, include un ne apoyat parametre-valore, o es altrimen mal format.
+ invalid_token:
+ expired: Li access-clave expirat
+ revoked: Li access-clave esset revocat
+ unknown: Li accesse-clave es ínvalid
+ unsupported_grant_type: Li tip de autorisation concedet ne es subtenet per li autorisant servitor.
+ unsupported_response_type: Li autorisant servitor ne subtene ti-ci tip de response.
+ flash:
+ applications:
+ create:
+ notice: Aplication creat.
+ destroy:
+ notice: Aplication deletet.
+ update:
+ notice: Aplication actualisat.
+ authorized_applications:
+ destroy:
+ notice: Aplication revocat.
grouped_scopes:
+ access:
+ read: Accesse solmen por leer
+ read/write: Accesse por leer e scrir
+ write: Accesse solmen por scrir
title:
+ accounts: Contos
+ admin/accounts: Administration de contos
+ admin/all: Omni functiones administrativ
+ admin/reports: Administration de raportes
+ all: Plen accesse a tui conto Mastodon
+ blocks: Bloccas
+ bookmarks: Marcatores
+ conversations: Conversationes
+ favourites: Favorites
+ filters: Filtres
follow: Seques, silentias e bloccas
+ follows: Seque
+ lists: Listes
+ media: Medie-atachamentes
mutes: Silentias
+ notifications: Notificationes
+ push: Notificationes push
+ reports: Raportes
+ search: Serchar
+ statuses: Postas
+ layouts:
+ admin:
+ nav:
+ applications: Aplicationes
scopes:
+ admin:read: leer li tot data sur li servitor
+ admin:read:accounts: leer sensitiv information de omni contos
+ admin:read:domain_allows: leer sensitiv information pri omni permisses de dominia
+ admin:read:domain_blocks: leer sensitiv information pri omni bloccas de dominia
+ admin:read:email_domain_blocks: leer sensitiv information pri omni bloccas de dominia basat sur e-posta
+ admin:read:ip_blocks: leer sensitiv information pri omni bloccas de IP
+ admin:read:reports: leer sensitiv information pri omni raportes e raportat contos
+ admin:write: modificar li tot data sur li servitor
+ admin:write:accounts: far moderatori actiones sur contos
+ admin:write:canonical_email_blocks: far moderatori actiones sur canonic bloccas de e-posta
+ admin:write:domain_allows: far actiones de moderation sur permisses de dominia
+ admin:write:domain_blocks: far actiones de moderation sur bloccas de dominia
+ admin:write:email_domain_blocks: far actiones de moderation sur bloccas de dominia basat sur e-posta
+ admin:write:ip_blocks: fa moderatori actiones sur bloccas de IP
+ admin:write:reports: far moderatori actiones sur raportes
+ follow: modifica li relationes del conto
+ read: lee omni datas de tui conto
+ read:accounts: vide li informationes pri li conto
+ read:blocks: vider tui bloccas
+ read:bookmarks: vider tui marcatores
+ read:favourites: vider tui favorites
+ read:filters: vider tui filtres
+ read:follows: vider tui sequitores
+ read:lists: vider tui listes
read:mutes: vider tui silentias
+ read:notifications: vider tui notificationes
+ read:reports: vider tui raportes
+ read:search: serchar in tui nómine
+ read:statuses: vider omni postas
+ write: modificar li tot data de tui conto
+ write:accounts: modifica tui profile
+ write:blocks: bloccar contos e dominias
write:conversations: silentiar e deleter conversationes
+ write:favourites: favorit postas
+ write:filters: crea filtres
+ write:follows: sequer homes
+ write:lists: crear listes
+ write:media: adcargar files de medie
write:mutes: silentiar persones e conversationes
+ write:notifications: aclarar tui notificationes
+ write:reports: raportar altri persones
+ write:statuses: publicar postas
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 9ae59539439c10..8a0033ee6aaaf4 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1260,11 +1260,20 @@ eo:
overwrite_long: Anstataŭigi la nunajn registrojn per la novaj
preface: Vi povas importi datumojn, kiujn vi eksportis el alia servilo, kiel liston de homoj, kiujn vi sekvas aŭ blokas.
success: Viaj datumoj estis sukcese alŝutitaj kaj estos traktitaj kiel planite
+ titles:
+ following: Importado de sekvaj kontoj
+ lists: Importi listojn
+ muting: Importado de silentigitaj kontoj
+ type: Importi tipon
+ type_groups:
+ constructive: Sekvoj & Legosignoj
+ destructive: Blokas kaj silentigas
types:
blocking: Listo de blokitoj
bookmarks: Legosignoj
domain_blocking: Listo de blokitaj domajnoj
following: Listo de sekvatoj
+ lists: Listoj
muting: Listo de silentigitoj
upload: Alŝuti
invites:
@@ -1279,6 +1288,7 @@ eo:
'86400': 1 tago
expires_in_prompt: Neniam
generate: Krei
+ invalid: Ĉi tiu invito ne validas
invited_by: 'Vi estis invitita de:'
max_uses:
one: 1 uzo
@@ -1305,6 +1315,18 @@ eo:
title: Aŭtentiga historio
mail_subscriptions:
unsubscribe:
+ action: Jes, malabonu
+ complete: Malabonita
+ confirmation_html: Ĉu vi certas, ke vi volas malaboni por ricevi %{type} por Mastodon ĉe %{domain} al via retpoŝto ĉe %{email}? Vi ĉiam povas reaboni de viaj retpoŝtaj sciigaj agordoj.
+ emails:
+ notification_emails:
+ favourite: plej ŝatataj sciigaj retpoŝtoj
+ follow: sekvu sciigajn retmesaĝojn
+ follow_request: sekvu petajn retpoŝtojn
+ mention: menciu sciigajn retmesaĝojn
+ reblog: plifortigi sciigajn retpoŝtojn
+ resubscribe_html: Se vi malabonis erare, vi povas reaboni de viaj retpoŝtaj sciigaj agordoj.
+ success_html: Vi ne plu ricevos %{type} por Mastodon sur %{domain} al via retpoŝto ĉe %{email}.
title: Malaboni
media_attachments:
validations:
@@ -1385,6 +1407,7 @@ eo:
update:
subject: "%{name} redaktis afiŝon"
notifications:
+ administration_emails: Admin retpoŝtaj sciigoj
email_events: Eventoj por retpoŝtaj sciigoj
email_events_hint: 'Elekti la eventojn pri kioj vi volas ricevi sciigojn:'
other_settings: Aliaj agordoj de sciigoj
@@ -1421,6 +1444,7 @@ eo:
expired: La enketo jam finiĝis
invalid_choice: La elektita voĉdono ne ekzistas
over_character_limit: ne povas esti po pli longa ol %{max} signoj
+ self_vote: Vi ne povas voĉdoni en viaj propraj balotenketoj
too_few_options: devas enhavi pli da unu propono
too_many_options: ne povas enhavi pli da %{max} proponoj
preferences:
@@ -1428,7 +1452,14 @@ eo:
posting_defaults: Afiŝaj defaŭltoj
public_timelines: Publikaj templinioj
privacy:
+ hint_html: "Agordu kiel vi volas ke via profilo kaj viaj afiŝoj estu trovitaj. Diversaj funkcioj en Mastodon povas helpi vin atingi pli larĝan publikon kiam ĝi estas ebligita. Prenu momenton por revizii ĉi tiujn agordojn por certigi, ke ili taŭgas por via uzokazo."
privacy: Privateco
+ privacy_hint_html: Kontrolu kiom vi volas malkaŝi por la avantaĝo de aliaj. Homoj malkovras interesajn profilojn kaj bonegajn apojn foliumante la sekvaĵojn de aliaj homoj kaj vidante de kiuj aplikaĵoj ili afiŝas, sed vi eble preferas konservi ĝin kaŝita.
+ reach: Atingo
+ reach_hint_html: Kontrolu ĉu vi volas esti malkovrita kaj sekvita de novaj homoj. Ĉu vi volas ke viaj afiŝoj aperu sur la ekrano Esplori? Ĉu vi volas ke aliaj homoj vidu vin en siaj sekvaj rekomendoj? Ĉu vi volas akcepti ĉiujn novajn sekvantojn aŭtomate, aŭ havi granulan kontrolon pri ĉiu?
+ search: Serĉu
+ search_hint_html: Kontrolu kiel vi volas esti trovita. Ĉu vi volas, ke homoj trovu vin laŭ tio, pri kio vi publike afiŝis? Ĉu vi volas, ke homoj ekster Mastodonto trovu vian profilon dum serĉado en la reto? Bonvolu memori, ke totala ekskludo de ĉiuj serĉiloj ne povas esti garantiita por publika informo.
+ title: Privateco kaj atingo
privacy_policy:
title: Privateca politiko
reactions:
@@ -1470,6 +1501,9 @@ eo:
over_daily_limit: Vi transpasis la limigon al %{limit} samtage planitaj mesaĝoj
over_total_limit: Vi transpasis la limigon al %{limit} planitaj mesaĝoj
too_soon: La planita dato devas esti en la estonteco
+ self_destruct:
+ lead_html: Bedaŭrinde, %{domain} konstante fermiĝas. Se vi havis konton tie, vi ne povos daŭrigi uzi ĝin, sed vi ankoraŭ povas peti sekurkopion de viaj datumoj.
+ title: Ĉi tiu servilo fermiĝas
sessions:
activity: Lasta ago
browser: Retumilo
@@ -1638,6 +1672,10 @@ eo:
default: "%Y.%b.%d, %H:%M"
month: "%b %Y"
time: "%H:%M"
+ translation:
+ errors:
+ quota_exceeded: La tutservila uzkvoto por la tradukservo estas superita.
+ too_many_requests: Lastatempe estis tro multaj petoj al la tradukservo.
two_factor_authentication:
add: Aldoni
disable: Malebligi 2FA-n
@@ -1717,6 +1755,7 @@ eo:
title: Bonvenon, %{name}!
users:
follow_limit_reached: Vi ne povas sekvi pli ol %{limit} homo(j)
+ go_to_sso_account_settings: Iru al la agordoj de la konto de via identeca provizanto
invalid_otp_token: Nevalida kodo de dufaktora aŭtentigo
otp_lost_help_html: Se vi perdas aliron al ambaŭ, vi povas kontakti %{email}
seamless_external_login: Vi estas ensalutinta per ekstera servo, do pasvortaj kaj retadresaj agordoj ne estas disponeblaj.
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index d48653edcc90b4..93545b6a1b4621 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1559,7 +1559,7 @@ fi:
last_active: Viimeksi aktiivinen
most_recent: Viimeisimmät
moved: Muuttaneet
- mutual: Molemmat
+ mutual: Seuraatte toisianne
primary: Ensisijaiset
relationship: Suhde
remove_selected_domains: Poista kaikki seuraajat valituista verkkotunnuksista
diff --git a/config/locales/ie.yml b/config/locales/ie.yml
index 6013923e3fec3e..87aa1c41cc1a5e 100644
--- a/config/locales/ie.yml
+++ b/config/locales/ie.yml
@@ -72,6 +72,7 @@ ie:
enabled_msg: Successosimen desgelat li conto de %{username}
followers: Sequitores
follows: Seque
+ header: Cap-image
inbox_url: Inbuxe URL
invite_request_text: Rason por adhesion
invited_by: Invitat de
@@ -111,6 +112,7 @@ ie:
promote: Promoer
protocol: Protocol
public: Public
+ push_subscription_expires: Subscrition a PuSH expira
redownload: Recargar li profil
redownloaded_msg: Successosimen recargat li profil de %{username} del original fonte
reject: Rejecter
@@ -118,6 +120,7 @@ ie:
remote_suspension_irreversible: Li data de ti-ci conto ha esset deletet ínreversibilmen.
remote_suspension_reversible_hint_html: Li conto ha esset suspendet che su servitor, e li data va esser completmen removet ye %{date}. Til tande, li lontan servitor posse restaurar ti conto sin quelcunc mal efectes. Si tu vole remover omni data del conto ínmediatmen, tu posse far it in infra.
remove_avatar: Remover li avatar
+ remove_header: Remover cap-image
removed_avatar_msg: Successosimen removet li avatar-image de %{username}
removed_header_msg: Successosimen removet li cap-image de %{username}
resend_confirmation:
@@ -287,6 +290,7 @@ ie:
deleted_account: deletet conto
filter_by_action: Filtrar per action
filter_by_user: Filtrar per usator
+ title: Jurnale de audit
announcements:
destroyed_msg: Proclamation deletet successosimen!
edit:
@@ -330,6 +334,7 @@ ie:
no_emoji_selected: Null emoji esset changeat pro que null esset selectet
not_permitted: Tu ne es permisset far ti action
overwrite: Remplazzar
+ shortcode: Curt-code
shortcode_hint: Adminim 2 carácteres, solmen lítteres, ciffres e sublineas
title: Customisat emoji
uncategorized: Íncategorisat
@@ -461,6 +466,10 @@ ie:
unsuppress: Restaurar seque-recomandation
instances:
availability:
+ failure_threshold_reached: Límite de falliment atinget ye %{date}.
+ failures_recorded:
+ one: Fallit prova por %{count} die.
+ other: Fallit provas por %{count} dies.
no_failures_recorded: Null fallimentes registrat.
title: Disponibilitá
warning: Li ultim prova conexer a ti servitor ha esset ínsuccessosi
@@ -471,6 +480,8 @@ ie:
confirm_purge: Vole tu vermen permanentmen deleter data de ti dominia?
content_policies:
comment: Internal nota
+ description_html: Tu posse definar planes de contenete a aplicar sur omni contos de ti-ci dominia e omni su subdominias.
+ limited_federation_mode_description_html: Tu posse selecter ca permisser federation a ti-ci dominia.
policies:
reject_media: Rejecter medie
reject_reports: Rejecter raportes
@@ -485,6 +496,8 @@ ie:
instance_followers_measure: nor sequitores ta
instance_follows_measure: lor sequitores ci
instance_languages_dimension: Max grand lingues
+ instance_media_attachments_measure: salvat medie-atachamentes
+ instance_reports_measure: raportes pri les
instance_statuses_measure: salvat postas
delivery:
all: Omni
@@ -565,6 +578,7 @@ ie:
notes:
one: "%{count} nota"
other: "%{count} notas"
+ action_log: Jurnale de audit
action_taken_by: Action fat de
actions:
delete_description_html: Li raportat postas va esser deletet e un admoniment va esser registrat por auxiliar te escalar si hay futuri infractiones del sam conto.
@@ -670,30 +684,42 @@ ie:
manage_announcements: Tractar proclamationes
manage_announcements_description: Permisse usatores tractar proclamationes sur li servitor
manage_appeals: Gerer Apelles
+ manage_appeals_description: Permisse que usatores inspecte apelles contra actiones de moderatores
manage_blocks: Gerer Bloccas
manage_blocks_description: Permisse que usatores blocca provisores de e-posta e IP-adresses
manage_custom_emojis: Gerer Customisat Emojis
manage_custom_emojis_description: Permisse que usatores gere customisat emojis sur li servitor
manage_federation: Gerer Federation
- manage_federation_description: Permisse que usatores sive blocca sive permisse federation con altri domenes, e controla liverabilitá
+ manage_federation_description: Permisse que usatores sive blocca sive permisse federation con altri dominias, e controla liverabilitá
manage_invites: Gerer Invitationes
+ manage_invites_description: Permisse que usatores naviga e deactiva ligamentes de invitation
manage_reports: Gerer Raportes
+ manage_reports_description: Permisse que usatores inspecte raportes e fa actiones de moderation contra les
manage_roles: Gerer Roles
+ manage_roles_description: Permisse que usatores gere e assigna roles sub li lores
manage_rules: Gerer Regules
manage_rules_description: Permisse que usatores changea regules del servitor
manage_settings: Gerer Parametres
manage_settings_description: Permisse que usatores changea parametres del situ
manage_taxonomies: Gerer Taxonomies
+ manage_taxonomies_description: Permisse que usatores inspecte contenete de tendentie e actualisar parametres de hashtags
manage_user_access: Gerer Usator-Accesse
manage_user_access_description: Permisse usatores desactivisar li 2-factor autentication de altri usatores, changear lor email-adresses, e reiniciar lor passa-paroles
manage_users: Gerer usatores
- manage_webhooks: Gerer Web-crocs
+ manage_users_description: Permisse que usatores vide detallies de altri usatores e fa actiones de moderation contra les
+ manage_webhooks: Gerer Webcrocs
+ manage_webhooks_description: Permisse que usatores configura webcrocs por evenimentes administrativ
+ view_audit_log: Vider li Jurnale de Audit
view_audit_log_description: Permisse que usatores vide li historie de administrativ actiones sur li servitor
+ view_dashboard: Vider Panel de Control
+ view_dashboard_description: Permisse que usatores usa li panel de control e varie metricas
view_devops: DevOps
+ view_devops_description: Permise que usatores usa paneles de control de Sidekiq e pgHero
title: Roles
rules:
add_new: Adjunter un regule
delete: Deleter
+ description_html: Benque li pluparte di que ili ha leet e acorda con li termines de servicie, presc nequi perlee les til quande un problema eveni. Tu posse facilitar li perletura del regules de tui servitor per dar les sur un liste de plat balle-punctus. Li índividual regules posse esser curt e simplic, ma mem un liste de micri punctus posse esser tro exigent por li letor si it es tro grand.
edit: Redacter regul
empty: Ancor null regules de servitor ha esset definit.
title: Regules del servitor
@@ -704,6 +730,13 @@ ie:
appearance:
preamble: Customisar li interfacie web de Mastodon.
title: Aspecte
+ branding:
+ title: Marca
+ captcha_enabled:
+ desc_html: To ci usa extern scrites de hCaptcha, quel posse esser ínquietant pro rasones de securitá e privatie. In plu, it posse far li processu de registration mult plu desfacil (particularimen por tis con deshabilitás). Pro ti rasones, ples considerar alternativ mesuras, tales quam registration per aprobation o invitation.
+ title: Exige que nov usatores solue un CAPTCHA por confirmar lor conto
+ content_retention:
+ title: Retention de contenete
discovery:
follow_recommendations: Seque-recomandationes
preamble: Exposir interessant contenete es importantissim por incorporar nov usatores qui fórsan conosse nequi che Mastodon. Decider qualmen diferent utensiles de decovrition functiona che vor servitor.
@@ -740,6 +773,9 @@ ie:
documentation_link: Aprender plu
title: Actualisationes disponibil
type: Specie
+ types:
+ major: Majori lansament
+ minor: Minori lansament
version: Version
statuses:
account: Autor
@@ -781,16 +817,39 @@ ie:
system_checks:
database_schema_check:
message_html: Hay pendent migrationes de database. Ples far les por far cert que li aplication functiona quam expectat
+ elasticsearch_health_red:
+ message_html: Li cluster Elasticsearch es ínsalubri (statu rubi), functiones por serchar ne disponibil
+ elasticsearch_health_yellow:
+ message_html: Li cluster Elasticsearch es ínsalubri (statu yelb); investigar li rason vell esser un bon idé
elasticsearch_preset:
action: Vider li documentation
+ message_html: Tui cluster Elasticsearch have plu quam un node, ma Mastodon ne es configurat por usar les.
elasticsearch_preset_single_node:
action: Vider li documentation
+ message_html: Tui cluster Elasticsearch have solmen un node, ples configurar ES_PRESET
quam single_node_cluster
.
+ elasticsearch_running_check:
+ message_html: Ne posset conexer a Elasticsearch. Ples confirmar que it ha esset executet, o desactivar serchada de plen textu
+ elasticsearch_version_check:
+ message_html: 'Version de Elasticsearch íncompatibil: %{value}'
+ version_comparison: Elasticsearch %{running_version} executet ma %{required_version} postulat
rules_check:
action: Gerer regules de servitor
+ message_html: Tu ancor ne ha definit quelcunc regules de servitor.
software_version_critical_check:
+ action: Vider actualisationes disponibil
message_html: Un critical actualisation por Mastodon es disposibil, ples actualisar tam rapidmen possibil.
software_version_patch_check:
action: Vider actualisationes disponibil
+ message_html: Un actualisation por Mastodon quel fixa problemas es disponibil.
+ upload_check_privacy_error:
+ action: Vider ci por plu information
+ message_html: "Vor web-servitor es misconfigurat. Li privatie de vor usatores es in risca."
+ upload_check_privacy_error_object_storage:
+ action: Cliccar ci por plu information
+ message_html: "Vor inmagasinage de objectes es misconfigurat. Li privatie de vor usatores es in risca."
+ tags:
+ review: Statu de revision
+ updated_msg: Parametres pri hashtags actualisat successosimen
title: Administration
trends:
allow: Permisser
@@ -805,9 +864,13 @@ ie:
no_link_selected: Null ligamentes esset changeat pro que null esset selectet
publishers:
no_publisher_selected: Null editores esset changeat pro que necun esset selectet
+ shared_by_over_week:
+ one: Partit de un person durant li ultim semane
+ other: Partit de %{count} persones durant li ultim semane
title: Ligamentes in tendentie
usage_comparison: Partit %{today} vezes hodie, in comparation a %{yesterday} yer
not_allowed_to_trend: Ne permisset esser in tendentie
+ only_allowed: Solmen li permissetes
pending_review: Sub inspection
preview_card_providers:
allowed: Ligamentes de ti-ci editor posse esser in tendentie
@@ -859,10 +922,50 @@ ie:
empty: Vu ancor ha definit null prefigurationes de avise.
title: Modificar prefigurationes de avise
webhooks:
+ add_new: Adjunter punctu terminal
+ delete: Deleter
+ disable: Desactivisar
+ disabled: Desactivisat
+ edit: Redacter punctu terminal
+ empty: Tu ancor ne have quelcunc configurat punctus terminal por webcrocs.
+ enable: Activisar
enabled: Activ
+ enabled_events:
+ one: 1 eveniment activisat
+ other: "%{count} evenimentes activisat"
events: Evenimentes
+ new: Nov webcroc
+ rotate_secret: Rotar secrete
+ secret: Secrete de signation
status: Statu
+ title: Webcrocs
+ webhook: Webcroc
admin_mailer:
+ new_appeal:
+ actions:
+ delete_statuses: deleter su postas
+ disable: gelar su conto
+ mark_statuses_as_sensitive: marcar su postas quam sensitiv
+ none: un admoniment
+ sensitive: marcar su conto quam sensitiv
+ silence: limitar su conto
+ suspend: suspender su conto
+ body: "%{target} apella un moderatori decision fat de %{action_taken_by} ye %{date}, quel esset %{type}. Ilu scrit:"
+ next_steps: Tu posse aprobar li apelle por desfar li decision moderatori, o ignorar it.
+ subject: "%{username} apella un moderatori decision che %{instance}"
+ new_critical_software_updates:
+ body: Nov critic versiones de Mastodon ha esset lansat, vu fórsan vole actualisar tam tost quam es possibil!
+ subject: Critic actualisationes por Mastodon es disponibil por %{instance}!
+ new_pending_account:
+ body: Li detallies del nov conto es in-infra. Vu posse aprobar o rejecter ti aplication.
+ subject: Nov conto por tractation che %{instance} (%{username})
+ new_report:
+ body: "%{reporter} ha raportet %{target}"
+ body_remote: Alqui de %{domain} ha raportet %{target}
+ subject: Nov raporte por %{instance} (#%{id})
+ new_software_updates:
+ body: Nov versiones de Mastodon ha esset lansat, vu fórsan vole actualisar!
+ subject: Nov versiones Mastodon es disponibil por %{instance}!
new_trends:
new_trending_links:
title: Populari ligamentes
@@ -1282,12 +1385,50 @@ ie:
media_attachments:
validations:
images_and_video: On ne posse atachar un video a un posta quel ja contene images
+ too_many: Ne posse atachar plu quam 4 files
migrations:
acct: Translocat a
+ cancel: Anullar redirection
+ cancelled_msg: Anullat redirection con successe.
+ errors:
+ already_moved: es li sam conto a equel tu ha ja translocat
+ missing_also_known_as: ne es un alias de ti-ci conto
+ move_to_self: ne posse esser li conto actual
+ not_found: ne posset esser trovat
+ followers_count: Sequitores al témpor de translocation
+ incoming_migrations: Translocant de un conto diferent
+ on_cooldown: Tu ha recentmen migrat tui conto. Ti function va esser disponibil denov pos %{count} dies.
+ past_migrations: Passat migrationes
+ proceed_with_move: Translocar sequitores
+ redirected_msg: Tui conto nu have un redirection a %{acct}.
+ redirecting_to: Tui conto redirecte a %{acct}.
set_redirect: Configurar un redirection
+ warning:
+ backreference_required: Li nov conto deve in prim esser configurat por retroreferentiar ti-ci conto
+ before: 'Ante proceder, ples leer ti notas cuidosimen:'
+ other_data: Necun altri data va esser translocat automaticmen
+ moderation:
+ title: Moderation
move_handler:
+ carry_blocks_over_text: Ti usator translocat se de %{acct}, quel tu hat bloccat.
carry_mutes_over_text: Ti-ci usator movet se de %{acct}, quel tu hat silentiat.
+ copy_account_note_text: 'Vi tui notas pri ti usator qui translocat se de %{acct}:'
+ navigation:
+ toggle_menu: Changear menú
notification_mailer:
+ admin:
+ report:
+ subject: "%{name} inviat un raporte"
+ sign_up:
+ subject: "%{name} adheret"
+ favourite:
+ body: 'Tui posta esset favoritisat de %{name}:'
+ subject: "%{name} favoritisat tui posta"
+ title: Nov favoritisation
+ follow:
+ body: "%{name} nu seque te!"
+ subject: "%{name} nu seque te"
+ title: Nov sequitor
follow_request:
action: Tractar petitiones de sequer
body: "%{name} ha petit sequer te"
@@ -1295,6 +1436,8 @@ ie:
title: Nov petition de sequer
mention:
action: Responder
+ body: 'Tu esset mentionat de %{name} in:'
+ subject: Tu esset mentionat de %{name}
title: Nov mention
poll:
subject: Un balotation de %{name} ha finit
@@ -1314,6 +1457,7 @@ ie:
number:
human:
decimal_units:
+ format: "%n%u"
units:
billion: B
million: M
@@ -1346,6 +1490,7 @@ ie:
too_many_options: ne posse contener plu quam %{max} optiones
preferences:
other: Altri
+ posting_defaults: Predefinitiones por postar
public_timelines: Public témpor-lineas
privacy:
hint_html: "Customisa qualmen tu vole que tui profil e tui postas posse esser trovat. Mastodon have un varietá de manieres por auxiliar te atinger un auditorie plu grand quande activisat. Prende un moment por reviser ti parametres por far cert que ili concorda tui casu de usation."
@@ -1383,6 +1528,11 @@ ie:
remove_selected_followers: Remover selectet sequitores
remove_selected_follows: Dessequer selectet usatores
status: Statu del conto
+ remote_follow:
+ missing_resource: Ne posset trovar li besonat URL de redirection por tui conto
+ reports:
+ errors:
+ invalid_rules: ne refere valid regules
rss:
content_warning: 'Avise pri li contenete:'
descriptions:
@@ -1476,9 +1626,16 @@ ie:
one: "%{count} video"
other: "%{count} videos"
boosted_from_html: Boostat de %{acct_link}
+ content_warning: 'Avise de contenete: %{warning}'
default_language: Sam quam li lingue del interfacie
+ disallowed_hashtags:
+ one: 'contenet un ínpermisset hashtag: %{tags}'
+ other: 'contenet li ínpermisset hashtags: %{tags}'
edited_at_html: Modificat ye %{date}
+ errors:
+ in_reply_not_found: Li posta a quel tu prova responder ne sembla exister.
open_in_web: Aperter in web
+ over_character_limit: límite de carácteres de %{max} transpassat
pin_errors:
direct: On ne posse pinglar postas queles es visibil solmen a mentionat usatores
limit: Tu ja ha pinglat li maxim númere de postas
@@ -1495,8 +1652,11 @@ ie:
show_more: Monstrar plu
show_newer: Monstrar plu nov
show_older: Monstrar plu old
+ show_thread: Monstrar fil
title: "%{name}: «%{quote}»"
visibilities:
+ direct: Direct
+ private: Solmen por sequitores
private_long: Monstrar solmen a sequitores
public: Public
public_long: Omnes posse vider
@@ -1508,17 +1668,37 @@ ie:
exceptions: Exceptiones
explanation: Deletion de postas es un operation expensiv, e pro to es efectuat lentmen quande li servitor ne es ocupat. Pro to, on posse deleter tui postas un cert témpor pos atinger un cert etá.
ignore_favs: Ignorar favorites
+ ignore_reblogs: Ignorar boosts
interaction_exceptions: Exceptiones basat sur interactiones
+ interaction_exceptions_explanation: Nota que it ne es garantit que un posta va esser deletet si su númere de favoritisationes o boosts descresce sub li sill pos que it ha esset súper it.
keep_direct: Retener missages direct
keep_direct_hint: Ne delete quelcunc de tui direct missages
+ keep_media: Conservar postas con medie-atachamentes
+ keep_media_hint: Ne delete quelcunc de tui postas quel have medie-atachamentes
keep_pinned: Conservar pinglat postas
keep_pinned_hint: Delete null de tui pinglat postas
keep_polls: Conservar balotationes
keep_polls_hint: Delete null de tui balotationes
+ keep_self_bookmark: Conservar postas queles tu ha marcat
+ keep_self_bookmark_hint: Ne delete tui propri postas si tu ha marcat les
keep_self_fav: Retener postas favorit de te
+ keep_self_fav_hint: Ne delete tui propri postas si tu ha favoritisat les
min_age:
'1209600': 2 semanes
+ '15778476': 6 mensus
+ '2629746': 1 mensu
'31556952': 1 annu
+ '5259492': 2 mensus
+ '604800': 1 semane
+ '63113904': 2 annus
+ '7889238': 3 mensus
+ min_age_label: Sill de etá
+ min_favs: Conservar postas favoritisat adminim
+ min_favs_hint: Ne delete quelcunc de tui postas quel ha recivet adminim ti-ci númere de favoritisationes. Lassar vacui por deleter postas sin egard a su númere de favoritisationes
+ min_reblogs: Conservar postas boostat adminim
+ min_reblogs_hint: Ne delete quelcunc de tui postas quel ha recivet adminim ti-ci númere de boosts. Lassar vacui por deleter postas sin egard a su númere de boosts
+ stream_entries:
+ sensitive_content: Sensitiv contenete
strikes:
errors:
too_late: It es tro tard por apellar ti admoniment
@@ -1595,22 +1775,37 @@ ie:
mark_statuses_as_sensitive: Tui postas che %{acct} ha esset marcat quam sensitiv
none: Admoniment por %{acct}
sensitive: Tui postas che %{acct} ve esser marcat quam sensitiv pos nu
+ silence: Tui conto %{acct} ha esset limitat
+ suspend: Tui conto %{acct} ha esset suspendet
title:
delete_statuses: Postas efaciat
+ disable: Conto gelat
+ mark_statuses_as_sensitive: Postas marcat quam sensitiv
+ none: Admoniment
sensitive: Conto marcat quam sensitiv
silence: Conto limitat
suspend: Conto suspendet
welcome:
edit_profile_action: Configuration de profil
+ edit_profile_step: Tu posse personalisar tui profil por cargar un profil-image, changear tui monstrat nómine e plu. Tu posse optar tractar nov sequitores ante que ili es permisset sequer te.
explanation: Vi quelc suggestiones por que tu mey comensar
final_action: Comensar postar
+ final_step: 'Comensa a postar! Mem sin sequitores, tui public postas posse esser videt de altres, per exemple in li local témpor-linea o in hashtags. Tu fórsan vole introducter te per li hashtag #introductions.'
+ full_handle: Tui plen usator-nómine
+ full_handle_hint: Ti-ci es ti quel tu vell dir a tui amics por que ili mey inviar missages a te o sequer te de un altri servitor.
subject: Benevenit a Mastodon
title: Benevenit, %{name}!
users:
+ follow_limit_reached: Tu ne posse sequer plu quam %{limit} persones
+ go_to_sso_account_settings: Ear al parametres de conto de tui provisor de identification
+ invalid_otp_token: Ínvalid 2-factor code
+ otp_lost_help_html: Si tu perdit accesse a ambis, tu posse contacter %{email}
seamless_external_login: Tu ha intrat per un servicie external, dunc parametres pri tui passa-parol e email-adresse ne es disponibil.
+ signed_in_as: 'Session apertet quam:'
verification:
extra_instructions_html: 'Nota: Li ligament in tui websitu posse esser ínvisibil. Li important parte es rel="me"
quel prevente fals self-identification in websitus con contenete generat de usatores. Tu posse mem usar un link
element in li cap-section del págine vice a
, ma li HTML code deve esser accessibil sin executer JavaScript.'
here_is_how: Vide qualmen
+ instructions_html: Copiar e collar li code ci infra in li HTML de tui web-situ. Poy adjunter li adresse de tui web-situ ad-in un del aditional campes sur tui profil ex li section "Modificar profil" e salvar li changes.
verification: Verification
verified_links: Tui verificat ligamentes
webauthn_credentials:
@@ -1620,3 +1815,9 @@ ie:
success: Tui clave de securitá esset adjuntet con successe.
delete: Deleter
delete_confirmation: Vole tu vermen deleter ti-ci clave de securitá?
+ destroy:
+ success: Tui clave de securitá esset successosimen deletet.
+ invalid_credential: Ínvalid clave de securitá
+ not_enabled: Tu ancor ne ha possibilisat WebAuthn
+ not_supported: Ti-ci navigator ne subtene claves de securitá
+ registered_on: Adheret ye %{date}
diff --git a/config/locales/lad.yml b/config/locales/lad.yml
index 471b830a3e70b1..5c541d9f999423 100644
--- a/config/locales/lad.yml
+++ b/config/locales/lad.yml
@@ -333,6 +333,7 @@ lad:
not_permitted: No tienes permiso para realizar esta aksyon
overwrite: Sobreskrive
shortcode: Kodiche kurto
+ shortcode_hint: Al menos 2 karakteres, solo karakteres alfanumerikos i sulinyados
title: Emojis personalizados
uncategorized: No kategorizado
unlist: No lista
@@ -525,6 +526,7 @@ lad:
total_reported: Raportos sovre eyos
total_storage: Aneksos de multimedia
totals_time_period_hint_html: Los totales amostrados a kontinuasyon inkluyen datos para todo el tiempo.
+ unknown_instance: Por agora no ay dingun rejistro en este domeno en este sirvidor.
invites:
deactivate_all: Dezaktiva todos
filter:
@@ -705,27 +707,41 @@ lad:
manage_users: Administra utilizadores
manage_users_description: Permete a los utilizadores ver los peratim de otros utilizadores i realizar aksyones de moderasyon kontra eyos
manage_webhooks: Administrar webhooks
+ view_audit_log: Mostra defter de revisyon
+ view_audit_log_description: Permete a los utilizadores ver una estoria de aksyones administrativas en el sirvidor
view_dashboard: Ve pano
+ view_dashboard_description: Permete a los utilizadores akseder al panel de kontrolo i varias metrikas
view_devops: DevOps
+ view_devops_description: Permete a los utilizadores akseder a los paneles de kontrolo Sidekiq i pgHero
title: Rolos
rules:
add_new: Adjusta regla
delete: Efasa
+ description_html: Aunke la majorita afirma aver meldado i estar de akodro kon los terminos de servisyo, la djente normalmente no los melda asta dempues de ke surja algun problema. Az ke sea mas kolay ver las normas de tu sirvidor de un vistazo estipulándolas en una lista de puntos. Aprova ke kada norma sea corta i kolay, ama sin estar divididas en munchos puntos.
edit: Edita regla
+ empty: Dinguna regla del sirvidor tiene sido definida.
title: Reglas del sirvidor
settings:
about:
manage_rules: Administra reglas del sirvidor
+ preamble: Mete aki enformasyon detalyada sovre komo el sirvidor es operado, moderado i finansyado.
+ rules_hint: Ay una area dedikada para las reglas a las ke se aspera ke tus utilizadores sigan.
title: Sovre esto
appearance:
preamble: Personaliza la enterfaz web de Mastodon.
title: Aparensya
branding:
+ preamble: La marka de tu sirvidor lo desferensia de otros sirvidores de la red. Esta enformasyon puede amostrarse por una varieta de entornos, komo en la enterfaz web de Mastodon, en aplikasyones nativas, en previsualizasiones de atadijos en otros sitios internetikos i en aplikasyones de mesajes, etc. Por esta razon, es mijor mantener esta enformasyon klara, breve i konsiza.
title: Marka
content_retention:
+ preamble: Kontrola komo el kontenido jenerado por el utilizador se magazina en Mastodon.
title: Retensyon de kontenido
+ default_noindex:
+ desc_html: Afekta a todos los utilizadores ke no trokaron esta preferensya eyos mezmos
+ title: Ekskluye utilizadores de la indeksasyon de los bushkadores komo preferensya predeterminada
discovery:
follow_recommendations: Rekomendasyones de kuentos
+ preamble: Ekspone kontenido enteresante a la superfisie es fundamental para inkorporar muevos utilizadores ke pueden no koneser a dinguno Mastodon. Kontrola komo fonksionan varias opsiones de diskuvrimiento en tu sirvidor.
profile_directory: Katalogo de profiles
public_timelines: Linyas de tiempo publikas
publish_discovered_servers: Publika sirvidores diskuviertos
@@ -816,6 +832,7 @@ lad:
software_version_patch_check:
action: Amostra aktualizasyones desponivles
upload_check_privacy_error:
+ action: Klika aki para mas enformasyon
message_html: "Tu sirvidor de web es mal konfigurado. La privasita de tus utilizadores esta en riziko."
upload_check_privacy_error_object_storage:
action: Ve aki para mas enformasyon
@@ -837,6 +854,9 @@ lad:
no_link_selected: No se troko dingun atadijo porke no eskojites dinguno
publishers:
no_publisher_selected: No se troko dingun publikador porke no eskojites dinguno
+ shared_by_over_week:
+ one: Partajado por una persona durante la ultima semana
+ other: Partajado por %{count} personas durante la ultima semana
title: Atadijos en trend
usage_comparison: Partajado %{today} vezes oy, komparado kon %{yesterday} ayer
not_allowed_to_trend: Sin permiso para estar en trendes
@@ -874,6 +894,7 @@ lad:
not_listable: No seran rekomendadas
not_trendable: No aperesera en trendes
not_usable: No se pueden uzar
+ peaked_on_and_decaying: Alkanso el piko en %{date}, agora dekresiendo
title: Etiketas en trend
trendable: Pueden apareser en trendes
trending_rank: Trend n.º %{rank}
@@ -943,16 +964,23 @@ lad:
title: Publikasyones en trend
new_trending_tags:
title: Etiketas en trend
+ subject: Muevo trend para revizion en %{instance}
aliases:
add_new: Kriya un alias
+ created_msg: Tienes kriyado djustamente el muevo alias. Agora puedes ampesar la movida dizde el kuento viejo.
+ deleted_msg: El alias fue supremido djustamente. La movida de akel kuento a esta ya no sera posivle.
empty: No tienes aliases.
+ hint_html: Si keres migrar de otro kuento a este, aki puedes kriyar un alias, kale proseder antes de ampesar a mover suivantes del kuento anterior a este. Esta aksion por si mezma es inofensiva i reversivle. La migrasyon del kuento se inisya dizde el kuento viejo.
remove: Dezata alias
appearance:
advanced_web_interface: Enterfaz web avanzada
+ advanced_web_interface_hint: 'Si keres utilizar todo el ancho de ekran, la enterfaz web avanzada te permete konfigurar varias kolumnas desferentes para ver tanta enformasyon al mezmo tiempo komo keras: Linya prinsipala, avizos, linya de tiempo federada, kualkier numero de listas i etiketas.'
animations_and_accessibility: Animasyones i aksesivilita
confirmation_dialogs: Dialogos de konfirmasyon
discovery: Diskuvrimiento
localization:
+ body: Mastodon es trezladado por volontarios.
+ guide_link: https://crowdin.com/project/mastodon
guide_link_text: Todos pueden kontribuir.
sensitive_content: Kontenido sensivle
application_mailer:
@@ -1067,15 +1095,27 @@ lad:
x_months: "%{count} me"
x_seconds: "%{count} s"
deletes:
+ challenge_not_passed: Los datos introdusidos son yerrados
+ confirm_password: Eskrive tu kod aktual para demostrar tu identita
+ confirm_username: Eskrive tu nombre de utilizador para konfirmar
proceed: Efasa kuento
success_msg: Tu kuento fue efasado kon reusho
warning:
before: 'Antes de kontinuar, por favor melda kon atensyon las sigientes notas:'
+ caches: El kontenido ke tiene sido magazinado en kashe por otros sirvidores puede persistir
+ data_removal: Tus publikasyones i el resto de datos se supremiran definitivamente
+ email_change_html: Puedes trokar tu adreso de posta elektronika sin supremir tu kuento
+ email_contact_html: Si ainda no te tiene parvenido, puedes eskrivir a %{email} para pider ayuda
+ email_reconfirmation_html: Si no te tiene parvenido la posta de konfirmasyon, puedes retornar a solisitarlo
+ irreversible: No podras restaurar ni reaktivar tu kuento
+ more_details_html: Para mas detalyos, ver la politika de privasita.
+ username_available: Tu nombre de utilizador retornara a estar desponivle
username_unavailable: Tu nombre de utilizador no estara desponivle
disputes:
strikes:
action_taken: Aksyon tomada
appeal: Apela
+ appeal_approved: Este amonestamiento fue apelado kon sukseso i ya no es valido
appeal_rejected: La apelasyon fue refuzada
appeal_submitted_at: Apelasyon embiada
appealed_msg: Tu apelasyon fue embiada. Si la achetamos, se te avizara.
@@ -1143,6 +1183,7 @@ lad:
add_new: Adjusta muevo
errors:
limit: Tienes alkansado el karar maksimo de etiketas
+ hint_html: "Avalia tus etiketas mas importantes en tu profil. Se amostran de forma prominente en tu profil publiko i permeten a los utilizadores navigar por tus publikasyones publikas espesifikamente basho akeyas etiketas."
filters:
contexts:
account: Profiles
@@ -1154,7 +1195,11 @@ lad:
add_keyword: Adjusta biervo yave
keywords: Biervos yaves
statuses: Publikasyones individualas
+ statuses_hint_html: Este filtro se aplika a las publikasyones individualas eskojidas endependientemente de si koensidan kon los biervos yave a kontinuasyon. Revize o suprema publikasyones del filtro.
title: Edita filtro
+ errors:
+ deprecated_api_multiple_keywords: Estos parametros no se pueden trokar dizde esta aplikasyon porke se aplikan a mas de un biervo yave de filtro. Utiliza una aplikasyon mas reziente o la enterfaz web.
+ invalid_context: Se suminstro un konteksto malato o vazyo
index:
contexts: Filtros en %{contexts}
delete: Efasa
@@ -1191,7 +1236,13 @@ lad:
none: Dinguno
order_by: Ordena por
save_changes: Guadra trokamientos
+ select_all_matching_items:
+ one: Eskoje %{count} elemento ke koensida kon tu bushkeda.
+ other: Eskoje todos los %{count} elementos ke koensidan kon tu bushkeda.
today: oy
+ validation_errors:
+ one: Algo no esta bien! Por favor, reviza el yerro mas abasho
+ other: Algo no esta bien! Por favor, reviza %{count} yerros mas abasho
imports:
errors:
empty: Dosya CSV vaziya
@@ -1208,6 +1259,7 @@ lad:
recent_imports: Importasyones resyentes
states:
finished: Finalizado
+ in_progress: En progreso
scheduled: Programado
unconfirmed: Sin konfirmasyon
status: Estado
@@ -1250,6 +1302,7 @@ lad:
one: 1 uzo
other: "%{count} uzos"
max_uses_prompt: Sin limito
+ prompt: Djenera i partaja atadijos kon otros para darles akseso a este sirvidor
table:
expires_at: Kaduka
uses: Uzos
@@ -1314,8 +1367,16 @@ lad:
disabled_account: Tu kuento aktual no sera kompletamente utilizable dempues. Portanto, tendras akseso a la eksportasyon de datos ansi komo a la reaktivasyon.
followers: Esta aksion migrara a todos los suivantes del kuento aktual al muevo kuento
only_redirect_html: Alternativamente, solo puedes poner un readreso en tu profil.
+ other_data: No se moveran otros datos otomatikamente
+ redirect: El profil de tu kuento aktual se aktualizara kon un avizo de readreso i sera eskluido de las bushkedas
moderation:
title: Moderasyon
+ move_handler:
+ carry_blocks_over_text: Este utilizador se movio dizde %{acct}, ke blokates.
+ carry_mutes_over_text: Este utilizador se movio dizde %{acct}, ke silensiates.
+ copy_account_note_text: 'Este utilizador se movio dizde %{acct}, aki estavan tus notas anteriores sovre el:'
+ navigation:
+ toggle_menu: Alterna menu
notification_mailer:
admin:
report:
@@ -1353,6 +1414,7 @@ lad:
notifications:
administration_emails: Avizos de administrasyon por posta
email_events: Evenimyentos para avizos por posta
+ email_events_hint: 'Eskoje los evenimientos para los kualos keres risivir avizos:'
other_settings: Otras preferensyas de avizos
number:
human:
@@ -1365,6 +1427,8 @@ lad:
thousand: K
trillion: T
otp_authentication:
+ code_hint: Introduse el kodiche jenerado por tu aplikasyon de autentifikasyon para konfirmar
+ description_html: Si kapasitas autentifikasyon en dos pasos kon una aplikasyon de autentifikasyon, la entrada rekerira ke estes en posesyon de tu telefon, ke djenerara kodiches para ke entres.
enable: Kapasita
instructions_html: "Eskanea este kodiche QR dizde Google Authenticator o una aplikasyon similar en tu telefon. A partir de agora, esta aplikasyon djenerara kodiches ke tendras ke ingresar kuando keras konektarte kon tu kuento."
manual_instructions: 'Si no puedes eskanear el kodiche QR i nesesitas introdusirlo manualmente, este es el sekreto en teksto plano:'
@@ -1418,14 +1482,24 @@ lad:
mutual: Mutual
primary: Prinsipal
relationship: Relasyon
+ remove_selected_domains: Kita todos los suivantes de los domenos eskojidos
remove_selected_followers: Kita a los suivantes eskojidos
remove_selected_follows: Desige a los utilizadores eskojidos
status: Estado del kuento
+ remote_follow:
+ missing_resource: No se pudo topar el URL del readreso rekerido para tu kuento
+ reports:
+ errors:
+ invalid_rules: no faze referensia a reglas validas
rss:
content_warning: 'Avertensya de kontenido:'
descriptions:
account: Publikasyones publikas de @%{acct}
tag: 'Publikasyones publikas etiketadas kon #%{hashtag}'
+ scheduled_statuses:
+ over_daily_limit: Tienes superado el limito de %{limit} publikasyones programadas para akel diya
+ over_total_limit: Tienes superado el limito de %{limit} publikasyones programadas
+ too_soon: La data programada deve estar en el avenir
self_destruct:
title: Este sirvidor esta serrando
sessions:
@@ -1453,6 +1527,7 @@ lad:
weibo: Weibo
current_session: Sesyon aktuala
description: "%{browser} en %{platform}"
+ explanation: Estos son los navigadores internetikos konektados aktualmente kon tu kuento de Mastodon.
ip: IP
platforms:
adobe_air: Adobe Air
@@ -1543,11 +1618,16 @@ lad:
public: Publiko
public_long: Todos pueden ver
unlisted: No listado
+ unlisted_long: Todos pueden ver, ama no esta listado en las linyas de tiempo publikas
statuses_cleanup:
enabled: Otomatikamente efasa publikasyones viejas
+ enabled_hint: Supreme otomatikamente tus publikasyones kuando alkansen un limito de tiempo espesifikado, a manko ke koensiden kon alguna de las eksepsiones detalyadas debasho
exceptions: Eksepsiones
+ explanation: Porke la efasasion de mesajes es una operasyon kostoza, esto se faze avagar, a lo longo de un tiempo, kuando el sirvidor no esta okupado. Por esta razon, puede ser ke tus publikasyones sean efasadas un tiempo dempues de ke alkansen el limito de tiempo espesifikado.
ignore_favs: Ignora favoritos
ignore_reblogs: Ignora repartajasyones
+ interaction_exceptions: Eksepsiones bazadas en enteraksyones
+ interaction_exceptions_explanation: Akodrate ke no ay garantiya de ke se supremen las publikasyones ke estan por debasho de los limitos de favoritos o de repartajasiones si los tienen superado en algun momento.
keep_direct: Manten enmentaduras privadas
keep_direct_hint: No efasa dingunos mesajes privados
keep_media: Manten publikasyones kon atamientos
@@ -1569,8 +1649,11 @@ lad:
'604800': 1 semana
'63113904': 2 anyos
'7889238': 3 mezes
+ min_age_label: Limito de tiempo
min_favs: Manten publikasyones favoritadas a lo manko
+ min_favs_hint: No efasa dinguna de las publikasyones ke plazgan a mas de esta kantita de personas. Desha en blanko para supremir publikasyones sin importar el numero de personas a las ke plazen las publikasyones
min_reblogs: Manten publikasyones repartajadas a lo manko
+ min_reblogs_hint: No efasa dinguna de las publikasyones ke ayan sido repartajadas mas de este numero de vezes. Desha en blanko para supremir publikasyones sin importar el numero de repartajasiones
stream_entries:
sensitive_content: Kontenido sensivle
strikes:
@@ -1635,6 +1718,8 @@ lad:
disable: Ya no puedes uzar tu kuento, ama tu profil i el resto de datos permanesen intactos. Puedes solisitar una kopia de sigurita de tus datos, trokar la konfigurasyon de tu kuento o supremirlo.
mark_statuses_as_sensitive: Algunas de tus publikasyones an sido markados komo sensivles por los moderadores de %{instance}. Esto sinyifika ke la djente tendra ke pulsar los dosyas multimedia en las publikasyones antes de ke se amostre una vista previa. Puedes markar los dosyas multimedia komo sensivles tu mezmo kuando publikes en el avenir.
sensitive: A partir de agora todas los dosyas multimedia ke subas seran markados komo sensivles i eskondidos tras una avertensya.
+ silence: Ainda puedes uzar tu kuento, ama solo las personas ke te estan sigiendo veran tus publikasyones en este sirvidor, i puedes ser eskluido de varias fonksionalitas de diskuvrimiento. Portanto, otros kuentos podran ampesar a segirte manualmente.
+ suspend: Ya no puedes utilizar tu kuento, i tu profil i el resto de datos ya no son aksesivles. Ainda puedes inisyar sesion para solisitar una kopia de sigurita de tus datos, asta ke estos sean supremidos por kompleto en unos 30 diyas, aunke konservaremos algunos datos bazikos para impedir ke evitas la suspensyon.
reason: 'Razon:'
statuses: 'Publikasyones relevantes:'
subject:
@@ -1655,7 +1740,12 @@ lad:
suspend: Kuento suspendido
welcome:
edit_profile_action: Konfigurasyon de profil
+ edit_profile_step: Puedes personalizar tu profil kargando una foto de profil, trokando tu nombre de utilizador i muncho mas. Puedes optar por revizar a los muevos suivantes antes de ke puedan segirte.
+ explanation: Aki ay algunos konsejos para ampesar
final_action: Ampesa a publikar
+ final_step: 'Ampesa a publikar! Inkluzo sin suivantes, tus publikasyones publikas pueden ser vistas por otros, por enshemplo en la linya de tiempo lokal o en etiketas. Tal vez keras aprezentarte kon la etiketa de #introduksiones.'
+ full_handle: Tu sovrenombre kompleto
+ full_handle_hint: Esto es lo ke le dirias a tus haverim para ke eyos puedan embiarte mesajes o segirte dizde otra instansya.
subject: Bienvenido a Mastodon
title: Bienvenido, %{name}!
users:
@@ -1668,10 +1758,12 @@ lad:
webauthn_credentials:
add: Adjusta mueva yave de sigurita
create:
+ error: Uvo un problem al adjustar tu yave de sigurita. Por favor aprova de muevo.
success: Tu yave de sigurita fue adjustada kon sukseso.
delete: Efasa
delete_confirmation: Estas siguro ke keres efasar esta yave de sigurita?
destroy:
+ error: Uvo un problem al efasar tu yave de sigurita. Por favor aprova de muevo.
success: Tu yave de sigurita fue efasada kon sukseso.
invalid_credential: Yave de sigurita no valida
nickname_hint: Introduska el sovrenombre de tu mueva yave de sigurita
diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml
index 5ff495a54023ba..23fbc43b07ec33 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -162,7 +162,7 @@ fa:
defaults:
autofollow: دعوت از دیگران برای عضو شدن و پیگیری حساب شما
avatar: تصویر نمایه
- bot: این حساب یک ربات است
+ bot: این یک حساب خودکار شده است
chosen_languages: جدا کردن زبانها
confirm_new_password: تأیید گذرواژه تازه
confirm_password: تأیید گذرواژه
diff --git a/config/locales/simple_form.ie.yml b/config/locales/simple_form.ie.yml
index 672ff9d0039ba6..bde52e2a783ea0 100644
--- a/config/locales/simple_form.ie.yml
+++ b/config/locales/simple_form.ie.yml
@@ -3,11 +3,21 @@ ie:
simple_form:
hints:
account:
+ discoverable: Tui public postas e profil posse esser recomandat in multiplic areas de Mastodon e tui profil posse esser suggestat a altri usatores.
+ display_name: Tui complet nómine o tui amusant nómine.
+ fields: Tui websitu, pronómines, etá, quocunc quel tu vole.
+ indexable: Tui public postas posse aparir in sercha-resultates sur Mastodon. E in omni casu, tis qui ha interactet con tui postas va posser serchar e trovar les.
+ note: 'Tu posse @mentionar altri persones o #hashtags.'
unlocked: Persones va posser sequer te sin petir aprobation. Desselecte si tu vole manualmen tractar petitiones de sequer e decider ca acceptar o rejecter nov sequitores.
+ account_alias:
+ acct: Specificar li usatornomine@dominia del conto ex quel tu vole translocar
+ account_migration:
+ acct: Specificar li usatornomine@dominia del conto a quel tu vole translocar
account_warning_preset:
text: Tu posse usar posta-sintaxe, quam URLs, hashtags e mentiones
title: Ínobligatori. Ne visibil al recipiente
admin_account_action:
+ include_statuses: Li usator va posser vider quel postas ha causat li moderatori action o admonition
send_email_notification: Li usator va reciver un explication de ti quel evenit con su conto
text_html: Ínobligatori. Tu posse usar posta-sintaxe. Tu posse adjunter preconfigurationes de avises por sparar témpor
type_html: Selecte quo far con %{acct}
@@ -48,32 +58,76 @@ ie:
setting_display_media_default: Celar medie marcat quam sensitiv
setting_display_media_hide_all: Sempre celar medie
setting_display_media_show_all: Sempre monstrar medie
+ featured_tag:
+ name: 'Vi quelc hashtags usat max recentmen de te:'
+ filters:
+ action: Selecter quel action a far quande un posta egala un filtre
+ actions:
+ hide: Celar completmen li contenete filtrat, quam si it ne existe
+ warn: Celar li contenete filtrat detra un avise mentionant li titul del filtre
form_admin_settings:
+ backups_retention_period: Mantener usator-generat archives por li specificat quantitá de dies.
bootstrap_timeline_accounts: Ti-ci contos va esser pinglat al parte superiori del recomandationes por nov usatores.
+ mascot: Substitue li ilustration in li avansat interfacie web.
+ peers_api_enabled: Un liste de nómines de dominia queles ti-ci servitor ha incontrat in li fediverse. Ci null data es includet pri ca tu confedera con un cert servitor o ne; it indica solmen que tui servitor conosse it. Usat per servicies colectent general statisticas pri federation.
+ profile_directory: Li profilarium monstra omni usatores volent esser decovribil.
+ site_contact_email: Qualmen on posse contacter te por inquestes legal o de apoy.
site_contact_username: Qualmen li gente posse atinger te sur Mastodon.
+ site_short_description: Un curt descrition por auxiliar identificar tui servitor. Qui gere it, por qual persones it es?
+ site_title: Quant persones posse aluder a tui servitor ultra su nómine de dominia.
+ status_page_url: URL de un págine monstrant li statu de ti-ci servitor durant un ruptura de servicie
theme: Li dessine quel ínregistrat visitantes e nov usatores vide.
+ thumbnail: Un image de dimensiones circa 2:1 monstrat along tui servitor-information.
timeline_preview: Ínregistrat visitantes va posser vider li max recent public postas disponibil che li servitor.
+ trends: Tendenties monstra quel postas, hashtags e novas es ganiant atention sur tui servitor.
trends_as_landing_page: Monstrar populari contenete a ínregistrat visitantes vice un description del servitor. Besona que tendenties es activisat.
form_challenge:
current_password: Tu nu intra un area secur
ip_block:
+ comment: Facultativ. Ne obliviar pro quo tu adjuntet ti-ci regul.
+ expires_in: IP-adresses es un ressurse finit, quelcvez partit e transferet de manu a manu. Pro to, un índefinit bloccada de IP ne es recomandat.
severities:
+ no_access: Bloccar accesse a omni ressurses
sign_up_block: Nov registrationes ne va esser possibil
sign_up_requires_approval: Nov registrationes va besonar tui aprobation
+ severity: Selecter quo va evenir con demandes ex ti-ci IP
+ rule:
+ text: Descrir un regul o postulation por usatores sur ti-ci servitor. Prova scrir un descrition curt e simplic
+ user:
+ role: Permissiones de usator decidet per su rol
+ user_role:
+ color: Color a usar por li rol tra li UI, quam RGB (rubi-verdi-blu) in formate hex
+ highlighted: Va far li rol publicmen visibil
+ name: Public nómine del rol, si li rol va esser monstrat quam signe
+ permissions_as_keys: Usatores con ti-ci rol va haver accesse a...
webhook:
events: Selecter evenimentes a misser
+ template: Composir tui propri carga JSON usant interpolation de variabiles. Lassa blanc por JSON predefinit.
url: Ad u misser evenimentes
labels:
account:
+ discoverable: Monstrar profil e postas in algoritmes de decovrition
fields:
+ name: Etiquette
value: Contenete
indexable: Includer public postas in resultates de sercha
+ account_alias:
+ acct: Usator-nómine del anteyan conto
+ account_migration:
+ acct: Usator-nómine del nov conto
account_warning_preset:
text: Textu prefigurat
title: Titul
admin_account_action:
send_email_notification: Notificar li usator per e-posta
+ text: Admonition customisat
type: Action
+ types:
+ disable: Gelar
+ none: Misser un admonition
+ sensitive: Sensitiv
+ silence: Limitar
+ suspend: Suspender
warning_preset_id: Usar un prefiguration de avise
announcement:
all_day: Eveniment del tot die
@@ -81,7 +135,12 @@ ie:
scheduled_at: Planar publication
starts_at: Comense del eveniment
text: Proclamation
+ appeal:
+ text: Explicar pro que ti-ci decision mey esser renversat
defaults:
+ autofollow: Invitar a sequer tui conto
+ avatar: Foto de profil
+ bot: Ti-ci conto es automatisat
chosen_languages: Filtrar lingues
confirm_new_password: Confirmar nov passa-parol
confirm_password: Confirmar passa-parol
@@ -91,28 +150,107 @@ ie:
display_name: Nómine a monstrar
email: E-posta
expires_in: Expirar pos
+ fields: Campes aditional
+ header: Cap-image
honeypot: "%{label} (ne plenar)"
+ irreversible: Lassar cader vice celar
locale: Lingue del interfacie
+ max_uses: Max grand númere de usas
new_password: Nov passa-parol
note: Biografie
password: Passa-parol
+ phrase: Clave-parol o frase
+ setting_advanced_layout: Possibilisar web-interfacie avansat
+ setting_always_send_emails: Sempre misser notificationes de e-posta
setting_default_language: Lingue in quel postar
setting_default_privacy: Privatie de postada
setting_default_sensitive: Sempre marcar medie quam sensitiv
setting_display_media_default: Predefinitiones
setting_display_media_hide_all: Celar omno
setting_display_media_show_all: Monstrar omno
+ setting_expand_spoilers: Sempre expander postas marcat con admonitiones de contenete
+ setting_system_font_ui: Usar predefinit fonte de sistema
setting_theme: Tema de situ
setting_trends: Monstrar li hodial tendenties
setting_unfollow_modal: Monstrar dialog de confirmation ante dessequer alquem
setting_use_pending_items: Mode lent
+ severity: Severitá
+ sign_in_token_attempt: Code de securitá
+ title: Titul
+ type: Specie de importation
+ username: Nómine de usator
+ whole_word: Plen parol
+ featured_tag:
+ name: Hashtag
+ filters:
+ actions:
+ hide: Celar completmen
+ warn: Celar con un admonition
form_admin_settings:
+ backups_retention_period: Periode de retener archives de usator
+ bootstrap_timeline_accounts: Sempre recomandar ti-ci contos a nov usatores
+ closed_registrations_message: Customisat missage quande registration ne disponibil
+ custom_css: Custom CSS
+ profile_directory: Possibilisar profilarium
registrations_mode: Qui posse registrar se
+ show_domain_blocks: Vider bloccas de dominia
+ show_domain_blocks_rationale: Monstrar pro quo cert dominias esset bloccat
+ site_contact_email: Contact e-mail adresse
+ site_contact_username: Usator-nómine de contact
+ site_extended_description: Extendet descrition
+ site_title: Nómine de servitor
theme: Predefenit tema
+ trendable_by_default: Possibilisar tendenties sin priori inspection
trends: Possibilisar tendenties
trends_as_landing_page: Usar tendenties quam frontispicie
+ invite:
+ comment: Comentar
+ invite_request:
+ text: Pro quo tu vole adherer?
+ ip_block:
+ comment: Comentar
+ ip: IP
+ severities:
+ no_access: Bloccar accesse
+ sign_up_block: Bloccar usator-registrationes
+ sign_up_requires_approval: Limitar usator-registrationes
+ severity: Regul
notification_emails:
+ favourite: Alqui favoritisat tui posta
+ follow: Alqui sequet te
follow_request: Alqui petit sequer te
+ mention: Alqui mentionat te
+ pending_account: Nov conto besonant inspection
+ report: Nov raporte es submisset
+ software_updates:
+ all: Notificar pri omni nov actualisationes
+ critical: Notificar solmen pri critical actualisationes
+ label: Un nov version de Mastodon es disponibil
trending_tag: Nov tendentie besonant inspection
+ rule:
+ text: Regul
tag:
+ name: Hashtag
trendable: Permisse que ti-ci hashtag apari sub tendenties
+ user:
+ role: Rol
+ time_zone: Zone temporal
+ user_role:
+ color: Color del insignie
+ name: Nómine
+ permissions_as_keys: Permissiones
+ position: Prioritá
+ webhook:
+ events: Evenimentes activisat
+ url: URL de punctu terminal
+ 'no': 'No'
+ not_recommended: Ne recomandat
+ overridden: Substituet
+ recommended: Recomandat
+ required:
+ mark: "*"
+ text: besonat
+ title:
+ sessions:
+ webauthn: Usar un de tui claves de securitá por intrar
+ 'yes': 'Yes'
diff --git a/config/locales/simple_form.lad.yml b/config/locales/simple_form.lad.yml
index aeac5f1c586287..c23960e07d120e 100644
--- a/config/locales/simple_form.lad.yml
+++ b/config/locales/simple_form.lad.yml
@@ -3,10 +3,13 @@ lad:
simple_form:
hints:
account:
+ discoverable: Tus publikasyones publikas i profil pueden ser avaliadas o rekomendadas en varias partes de Mastodon i tu profil puede ser sujerido a otros utilizadores.
display_name: Tu nombre para amostrar.
fields: Tu deskripsyon, pronombres, edad, todo lo ke keras.
+ indexable: Tus publikasyones publikas pueden apareser en rezultados de bushkeda en Mastodon. Personas ke enteraktuaron kon tus publikasyones syempre pueden bushkarlas inkluzo si trokes esta preferensya.
note: 'Puedes @enmentar a otra djente o #etiketas.'
show_collections: Otra djente podra ver tus segidos i suivantes. Personas a las kualas siges siempre podran ver que las estas sigiendo.
+ unlocked: Djente va poder segirte sin solisitar tu achetasyon. Deseleksyona si keres revizar solisitasyones de segimyento i dechidir si keres achetar o refuzar a muevos suivantes.
account_alias:
acct: Espesifika tu nombre de utilizador@domeno del kuento de ande keres migrar
account_migration:
@@ -118,6 +121,7 @@ lad:
otp: 'Introduse el kodiche de autentifikasyon de dos pasos djenerado por tu aplikasyon de telefon o uza uno de tus kodiches de recuperasyon:'
webauthn: Si es una yave USB, asigurete de insertarla y, si es necesario, pulsala.
settings:
+ indexable: Tu pajina de profil puede apareser en rezultados de bushkeda en Google, Bing i otros.
show_application: Tu siempre podras ver dizde kuala aplikasyon publikates tu publikasyon.
tag:
name: Solo se puede trokar la kapitalizasyon de las letras, por enshemplo, para ke sea mas meldable
@@ -132,9 +136,11 @@ lad:
position: Un rolo mas alto deside la rezolusyon de konfliktos en algunas situasyones. Algunas aksyones solo pueden levarse por rolos kon menor priorita
webhook:
events: Eskoje evenimientos para embiar
+ template: Kriya tu propio JSON uzando interpolasyon de las variavlas. Deshalo en blanko para el JSON predeterminado.
url: Ande los evenimientos seran embiados
labels:
account:
+ discoverable: Avalia profil i publikasyones en algoritmos de deskuvrimyento
fields:
name: Etiketa
value: Kontenido
@@ -183,6 +189,9 @@ lad:
expires_in: Kaduka dempues de
fields: Datos adisyonales
header: Imaje de kavesera
+ honeypot: "%{label} (no inche)"
+ inbox_url: URL del kuti de relevo
+ irreversible: Refuza en lugar de eskonder
locale: Lingua de enterfaz
max_uses: Maksimo numero de uzos
new_password: Muevo kod
@@ -190,17 +199,27 @@ lad:
otp_attempt: Kodiche de dos pasos
password: Kod
phrase: Biervo yave o fraza
+ setting_advanced_layout: Kapasita la enterfaz web avanzada
setting_aggregate_reblogs: Agrupa repartajasyones en linyas
setting_always_send_emails: Siempre embia avizos por posta
setting_auto_play_gif: Siempre reproduse los GIFs animados
+ setting_boost_modal: Amostra ventana de konfirmasyon antes de repartajar
setting_default_language: Lingua de publikasyones
setting_default_privacy: Privasita de publikasyones
+ setting_default_sensitive: Syempre marka multimedia komo sensivles
+ setting_delete_modal: Mostra dialogo de konfirmasyon antes de efasar una publikasyon
+ setting_disable_swiping: Inkapasita movimyentos de arresvalamiento
+ setting_display_media: Vizualizasyon de multimedia
setting_display_media_default: Predeterminado
setting_display_media_hide_all: Eskonde todo
setting_display_media_show_all: Amostra todo
+ setting_expand_spoilers: Siempre espande las publikasyones markadas kon avertensyas de kontenido
+ setting_hide_network: Eskonde tu red sosyala
setting_reduce_motion: Reduse el movimyento en animasyones
setting_system_font_ui: Uza el font predeterminado del sistem
+ setting_theme: Tema del sitio
setting_trends: Amostra los trendes de oy
+ setting_unfollow_modal: Mostra dialogo de konfirmasyon antes de desegir a alguno
setting_use_blurhash: Amostra gradientes koloridos para kontenido multimedia eskondido
setting_use_pending_items: Modo lento
severity: Severita
@@ -263,6 +282,8 @@ lad:
sign_up_requires_approval: Limita enrejistrasyones
severity: Regla
notification_emails:
+ appeal: Alguno tiene apelado una dechizyon de moderasyon
+ digest: Embia rezumen de posta elektronika
favourite: A alguno le plaze tu publikasyon
follow: Alguno te ampeso a segir
follow_request: Alguno tiene solisitado segirte
@@ -276,25 +297,38 @@ lad:
label: Mueva version de Mastodon esta desponivle
none: Nunkua avizame de aktualizasyones (no rekomendado)
patch: Avizame de aktualizasyones de yerros
+ trending_tag: Un muevo trend nesesita revizyon
rule:
text: Regla
settings:
indexable: Inkluye la pajina de profil en los bushkadores
+ show_application: Amostra aplikasyon uzada para adjustar publikasyones
tag:
+ listable: Permite ke esta etiketa apareska en bushkedas i sujestyones
name: Etiketa
+ trendable: Permite ke esta etiketa apareska en trendes
+ usable: Permite ke publikasyones uzen esta etiketa
user:
role: Rolo
+ time_zone: Zona de tiempo
user_role:
+ color: Kolor de insinya
+ highlighted: Mostra rolo komo insinya en profiles de utilizadores
name: Nombre
permissions_as_keys: Permisos
position: Priorita
webhook:
events: Evenimientos kapasitados
+ template: Modelo de kontenido
url: URL de Endpoint
'no': 'No'
not_recommended: No rekomendado
+ overridden: Sovreskrive
recommended: Rekomendado
required:
mark: "*"
text: rekerido
+ title:
+ sessions:
+ webauthn: Uza una de tus yaves de sigurita para konektarte
'yes': Si
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index ab2bc5155323b6..feb84ea9845848 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -435,6 +435,7 @@ sk:
delivery:
all: Všetko
failing: Zlyhávajúce
+ stop: Zastav doručenie
unavailable: Nedostupné
delivery_available: Je v dosahu doručovania
empty: Nenájdené žiadne domény.
@@ -573,12 +574,14 @@ sk:
manage_announcements: Spravuj oboznámenia
manage_appeals: Spravuj námietky
manage_blocks: Spravuj blokovania
+ manage_custom_emojis: Spravuj vlastné emotikony
manage_federation: Spravuj federáciu
manage_invites: Spravuj pozvánky
manage_reports: Spravuj hlásenia
manage_roles: Spravuj postavenia
manage_rules: Spravuj pravidlá
manage_settings: Spravuj nastavenia
+ manage_user_access: Spravuj užívateľský prístup
manage_users: Spravuj užívateľov
title: Postavenia
rules:
@@ -621,9 +624,11 @@ sk:
software_updates:
critical_update: Kritické — prosím aktualizuj rýchlo
documentation_link: Zisti viac
+ release_notes: Poznámky k vydaniu
title: Dostupné aktualizácie
types:
major: Hlavné vydanie
+ patch: Opravné vydanie - opravy a jednoducho uplatniteľné zmeny
version: Verzia
statuses:
account: Autor
@@ -692,7 +697,10 @@ sk:
title: Populárne príspevky
tags:
dashboard:
+ tag_accounts_measure: unikátnych použití
+ tag_servers_measure: iné servery
tag_uses_measure: užívateľov celkovo
+ not_usable: Nemôže byť použitý
title: Populárne štítky
trending_rank: 'Populárne #%{rank}'
usable: Môže byť použitý
@@ -708,7 +716,11 @@ sk:
disable: Vypni
disabled: Vypnuté
enable: Povoľ
+ status: Stav
admin_mailer:
+ new_appeal:
+ actions:
+ none: varovanie
new_pending_account:
body: Podrobnosti o novom účte sú uvedené nižšie. Môžeš túto registračnú požiadavku buď prijať, alebo zamietnúť.
subject: Nový účet očakáva preverenie na %{instance} (%{username})
@@ -757,6 +769,9 @@ sk:
apply_for_account: Vyžiadaj si účet
captcha_confirmation:
title: Bezpečnostná kontrola
+ confirmations:
+ login_link: prihlás sa
+ welcome_title: Vitaj, %{name}!
delete_account: Vymaž účet
delete_account_html: Pokiaľ chceš svoj účet odtiaľto vymazať, môžeš tak urobiť tu. Budeš požiadaný/á o potvrdenie tohto kroku.
description:
@@ -786,6 +801,9 @@ sk:
setup:
link_not_received: Nedostal/a si odkaz?
title: Skontroluj svoju schránku
+ sign_in:
+ preamble_html: Prihlás sa so svojimi údajmi pre %{domain}. Pokiaľ je tvoj účet hostovaný na inom serveri, nebudeš sa môcť prihlásiť tu.
+ title: Prihlás sa na %{domain}
status:
account_status: Stav účtu
confirming: Čaká sa na dokončenie potvrdenia emailom.
@@ -841,6 +859,9 @@ sk:
silence: Obmedzenie účtu
domain_validator:
invalid_domain: nieje správny tvar domény
+ edit_profile:
+ basic_information: Základné informácie
+ other: Ostatné
errors:
'400': Požiadavka, ktorú si odoslal/a, bola buď nesprávna, alebo znehodnotená.
'403': Nemáš povolenie pre zobrazenie tejto stránky.
@@ -885,22 +906,28 @@ sk:
public: Verejné osi
thread: Konverzácie
edit:
+ add_keyword: Pridaj kľúčové slovo
+ keywords: Kľúčové slová
title: Uprav triedenie
errors:
invalid_context: Nebola poskytnutá žiadna, alebo ide o neplatnú súvislosť
index:
delete: Vymaž
empty: Nemáš žiadné filtrovanie.
+ expires_on: Expiruje dňa %{date}
title: Triedenia
new:
title: Pridaj nové triedenie
generic:
all: Všetko
+ cancel: Zruš
changes_saved_msg: Zmeny boli úspešne uložené!
+ confirm: Potvrď
copy: Kopíruj
delete: Vymaž
order_by: Zoraď podľa
save_changes: Ulož zmeny
+ today: dnes
validation_errors:
few: Niečo ešte nieje celkom v poriadku! Prosím skontroluj %{count} chýb uvedených nižšie
many: Niečo ešte nieje celkom v poriadku! Prosím skontroluj %{count} chýb uvedených nižšie
@@ -923,6 +950,7 @@ sk:
bookmarks: Záložky
domain_blocking: Zoznam blokovaných domén
following: Zoznam sledovaných
+ lists: Zoznamy
muting: Zoznam ignorovaných
upload: Nahraj
invites:
@@ -1182,6 +1210,7 @@ sk:
keep_pinned: Ponechaj pripnuté príspevky
keep_pinned_hint: Nevymaže žiadne s tvojich pripnutých príspevkov
keep_self_bookmark: Ponechaj príspevky, ktoré sú záložkami
+ keep_self_fav: Ponechať príspevky, ktoré si si obľúbil/a
stream_entries:
sensitive_content: Senzitívny obsah
tags:
diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
index 6476f4b13a740e..1d8d983b3a4b4b 100644
--- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
+++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
@@ -77,90 +77,135 @@ class AdminActionLog < ApplicationRecord
def up
safety_assured do
- AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
- next if log.account.nil?
+ process_logs_for_account
+ process_logs_for_user
+ process_logs_for_report
+ process_logs_for_domain_block
+ process_logs_for_domain_allow
+ process_logs_for_email_domain_block
+ process_logs_for_unavailable_domain
+ process_logs_for_status
+ process_logs_for_account_warning
+ process_logs_for_announcement
+ process_logs_for_ip_block
+ process_logs_for_custom_emoji
+ process_logs_for_canonical_email_block
+ process_logs_for_appeal
+ end
+ end
- log.update_attribute('human_identifier', log.account.acct)
- end
+ def down; end
- AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
- next if log.user.nil?
+ private
- log.update_attribute('human_identifier', log.user.account.acct)
- log.update_attribute('route_param', log.user.account_id)
- end
+ def process_logs_for_account
+ AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
+ next if log.account.nil?
- AdminActionLog.where(target_type: 'Report', human_identifier: nil).in_batches.update_all('human_identifier = target_id::text')
+ log.update_attribute('human_identifier', log.account.acct)
+ end
+ end
- AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
- next if log.domain_block.nil?
+ def process_logs_for_user
+ AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
+ next if log.user.nil?
- log.update_attribute('human_identifier', log.domain_block.domain)
- end
+ log.update_attribute('human_identifier', log.user.account.acct)
+ log.update_attribute('route_param', log.user.account_id)
+ end
+ end
- AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
- next if log.domain_allow.nil?
+ def process_logs_for_report
+ AdminActionLog.where(target_type: 'Report', human_identifier: nil).in_batches.update_all('human_identifier = target_id::text')
+ end
- log.update_attribute('human_identifier', log.domain_allow.domain)
- end
+ def process_logs_for_domain_block
+ AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
+ next if log.domain_block.nil?
- AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
- next if log.email_domain_block.nil?
+ log.update_attribute('human_identifier', log.domain_block.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.email_domain_block.domain)
- end
+ def process_logs_for_domain_allow
+ AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
+ next if log.domain_allow.nil?
- AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
- next if log.unavailable_domain.nil?
+ log.update_attribute('human_identifier', log.domain_allow.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.unavailable_domain.domain)
- end
+ def process_logs_for_email_domain_block
+ AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
+ next if log.email_domain_block.nil?
- AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
- next if log.status.nil?
+ log.update_attribute('human_identifier', log.email_domain_block.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.status.account.acct)
- log.update_attribute('permalink', log.status.uri)
- end
+ def process_logs_for_unavailable_domain
+ AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
+ next if log.unavailable_domain.nil?
- AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
- next if log.account_warning.nil?
+ log.update_attribute('human_identifier', log.unavailable_domain.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.account_warning.account.acct)
- end
+ def process_logs_for_status
+ AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
+ next if log.status.nil?
- AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
- next if log.announcement.nil?
+ log.update_attribute('human_identifier', log.status.account.acct)
+ log.update_attribute('permalink', log.status.uri)
+ end
+ end
- log.update_attribute('human_identifier', log.announcement.text)
- end
+ def process_logs_for_account_warning
+ AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
+ next if log.account_warning.nil?
- AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
- next if log.ip_block.nil?
+ log.update_attribute('human_identifier', log.account_warning.account.acct)
+ end
+ end
- log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
- end
+ def process_logs_for_announcement
+ AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
+ next if log.announcement.nil?
- AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
- next if log.custom_emoji.nil?
+ log.update_attribute('human_identifier', log.announcement.text)
+ end
+ end
- log.update_attribute('human_identifier', log.custom_emoji.shortcode)
- end
+ def process_logs_for_ip_block
+ AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
+ next if log.ip_block.nil?
- AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
- next if log.canonical_email_block.nil?
+ log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
+ end
+ end
- log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
- end
+ def process_logs_for_custom_emoji
+ AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
+ next if log.custom_emoji.nil?
- AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
- next if log.appeal.nil?
+ log.update_attribute('human_identifier', log.custom_emoji.shortcode)
+ end
+ end
- log.update_attribute('human_identifier', log.appeal.account.acct)
- log.update_attribute('route_param', log.appeal.account_warning_id)
- end
+ def process_logs_for_canonical_email_block
+ AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
+ next if log.canonical_email_block.nil?
+
+ log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
end
end
- def down; end
+ def process_logs_for_appeal
+ AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
+ next if log.appeal.nil?
+
+ log.update_attribute('human_identifier', log.appeal.account.acct)
+ log.update_attribute('route_param', log.appeal.account_warning_id)
+ end
+ end
end
diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
index 3c68470a7f3812..c080e77ecfd09a 100644
--- a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
+++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
@@ -77,90 +77,135 @@ class AdminActionLog < ApplicationRecord
def up
safety_assured do
- AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
- next if log.account.nil?
+ process_logs_for_account
+ process_logs_for_user
+ process_logs_for_report
+ process_logs_for_domain_block
+ process_logs_for_domain_allow
+ process_logs_for_email_domain_block
+ process_logs_for_unavailable_domain
+ process_logs_for_status
+ process_logs_for_account_warning
+ process_logs_for_announcement
+ process_logs_for_ip_block
+ process_logs_for_custom_emoji
+ process_logs_for_canonical_email_block
+ process_logs_for_appeal
+ end
+ end
- log.update_attribute('human_identifier', log.account.acct)
- end
+ def down; end
- AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
- next if log.user.nil?
+ private
- log.update_attribute('human_identifier', log.user.account.acct)
- log.update_attribute('route_param', log.user.account_id)
- end
+ def process_logs_for_account
+ AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
+ next if log.account.nil?
- AdminActionLog.where(target_type: 'Report', human_identifier: nil).in_batches.update_all('human_identifier = target_id::text')
+ log.update_attribute('human_identifier', log.account.acct)
+ end
+ end
- AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
- next if log.domain_block.nil?
+ def process_logs_for_user
+ AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
+ next if log.user.nil?
- log.update_attribute('human_identifier', log.domain_block.domain)
- end
+ log.update_attribute('human_identifier', log.user.account.acct)
+ log.update_attribute('route_param', log.user.account_id)
+ end
+ end
- AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
- next if log.domain_allow.nil?
+ def process_logs_for_report
+ AdminActionLog.where(target_type: 'Report', human_identifier: nil).in_batches.update_all('human_identifier = target_id::text')
+ end
- log.update_attribute('human_identifier', log.domain_allow.domain)
- end
+ def process_logs_for_domain_block
+ AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
+ next if log.domain_block.nil?
- AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
- next if log.email_domain_block.nil?
+ log.update_attribute('human_identifier', log.domain_block.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.email_domain_block.domain)
- end
+ def process_logs_for_domain_allow
+ AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
+ next if log.domain_allow.nil?
- AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
- next if log.unavailable_domain.nil?
+ log.update_attribute('human_identifier', log.domain_allow.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.unavailable_domain.domain)
- end
+ def process_logs_for_email_domain_block
+ AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
+ next if log.email_domain_block.nil?
- AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
- next if log.status.nil?
+ log.update_attribute('human_identifier', log.email_domain_block.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.status.account.acct)
- log.update_attribute('permalink', log.status.uri)
- end
+ def process_logs_for_unavailable_domain
+ AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
+ next if log.unavailable_domain.nil?
- AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
- next if log.account_warning.nil?
+ log.update_attribute('human_identifier', log.unavailable_domain.domain)
+ end
+ end
- log.update_attribute('human_identifier', log.account_warning.account.acct)
- end
+ def process_logs_for_status
+ AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
+ next if log.status.nil?
- AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
- next if log.announcement.nil?
+ log.update_attribute('human_identifier', log.status.account.acct)
+ log.update_attribute('permalink', log.status.uri)
+ end
+ end
- log.update_attribute('human_identifier', log.announcement.text)
- end
+ def process_logs_for_account_warning
+ AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
+ next if log.account_warning.nil?
- AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
- next if log.ip_block.nil?
+ log.update_attribute('human_identifier', log.account_warning.account.acct)
+ end
+ end
- log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
- end
+ def process_logs_for_announcement
+ AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
+ next if log.announcement.nil?
- AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
- next if log.custom_emoji.nil?
+ log.update_attribute('human_identifier', log.announcement.text)
+ end
+ end
- log.update_attribute('human_identifier', log.custom_emoji.shortcode)
- end
+ def process_logs_for_ip_block
+ AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
+ next if log.ip_block.nil?
- AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
- next if log.canonical_email_block.nil?
+ log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
+ end
+ end
- log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
- end
+ def process_logs_for_custom_emoji
+ AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
+ next if log.custom_emoji.nil?
- AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
- next if log.appeal.nil?
+ log.update_attribute('human_identifier', log.custom_emoji.shortcode)
+ end
+ end
- log.update_attribute('human_identifier', log.appeal.account.acct)
- log.update_attribute('route_param', log.appeal.account_warning_id)
- end
+ def process_logs_for_canonical_email_block
+ AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
+ next if log.canonical_email_block.nil?
+
+ log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
end
end
- def down; end
+ def process_logs_for_appeal
+ AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
+ next if log.appeal.nil?
+
+ log.update_attribute('human_identifier', log.appeal.account.acct)
+ log.update_attribute('route_param', log.appeal.account_warning_id)
+ end
+ end
end
diff --git a/lib/mastodon/cli/base.rb b/lib/mastodon/cli/base.rb
index 32aff2fcc50451..8c222bbb2b3040 100644
--- a/lib/mastodon/cli/base.rb
+++ b/lib/mastodon/cli/base.rb
@@ -4,6 +4,7 @@
require_relative '../../../config/environment'
require 'thor'
+require 'pastel'
require_relative 'progress_helper'
module Mastodon
diff --git a/lib/mastodon/cli/federation.rb b/lib/mastodon/cli/federation.rb
index 1b4cb467a571bb..4a4dde36868a55 100644
--- a/lib/mastodon/cli/federation.rb
+++ b/lib/mastodon/cli/federation.rb
@@ -1,7 +1,5 @@
# frozen_string_literal: true
-require 'tty-prompt'
-
module Mastodon::CLI
module Federation
extend ActiveSupport::Concern
@@ -30,45 +28,39 @@ module Federation
LONG_DESC
def self_destruct
if SelfDestructHelper.self_destruct?
- prompt.ok('Self-destruct mode is already enabled for this Mastodon server')
+ say('Self-destruct mode is already enabled for this Mastodon server', :green)
pending_accounts = Account.local.without_suspended.count + Account.local.suspended.joins(:deletion_request).count
sidekiq_stats = Sidekiq::Stats.new
if pending_accounts.positive?
- prompt.warn("#{pending_accounts} accounts are still pending deletion.")
+ say("#{pending_accounts} accounts are still pending deletion.", :yellow)
elsif sidekiq_stats.enqueued.positive?
- prompt.warn('Deletion notices are still being processed')
+ say('Deletion notices are still being processed', :yellow)
elsif sidekiq_stats.retry_size.positive?
- prompt.warn('At least one delivery attempt for each deletion notice has been made, but some have failed and are scheduled for retry')
+ say('At least one delivery attempt for each deletion notice has been made, but some have failed and are scheduled for retry', :yellow)
else
- prompt.ok('Every deletion notice has been sent! You can safely delete all data and decomission your servers!')
+ say('Every deletion notice has been sent! You can safely delete all data and decomission your servers!', :green)
end
exit(0)
end
- exit(1) unless prompt.ask('Type in the domain of the server to confirm:', required: true) == Rails.configuration.x.local_domain
+ exit(1) unless ask('Type in the domain of the server to confirm:') == Rails.configuration.x.local_domain
- prompt.warn('This operation WILL NOT be reversible.')
- prompt.warn('While the data won\'t be erased locally, the server will be in a BROKEN STATE afterwards.')
- prompt.warn('The deletion process itself may take a long time, and will be handled by Sidekiq, so do not shut it down until it has finished (you will be able to re-run this command to see the state of the self-destruct process).')
+ say('This operation WILL NOT be reversible.', :yellow)
+ say('While the data won\'t be erased locally, the server will be in a BROKEN STATE afterwards.', :yellow)
+ say('The deletion process itself may take a long time, and will be handled by Sidekiq, so do not shut it down until it has finished (you will be able to re-run this command to see the state of the self-destruct process).', :yellow)
- exit(1) if prompt.no?('Are you sure you want to proceed?')
+ exit(1) if no?('Are you sure you want to proceed?')
self_destruct_value = Rails.application.message_verifier('self-destruct').generate(Rails.configuration.x.local_domain)
- prompt.ok('To switch Mastodon to self-destruct mode, add the following variable to your evironment (e.g. by adding a line to your `.env.production`) and restart all Mastodon processes:')
- prompt.ok(" SELF_DESTRUCT=#{self_destruct_value}")
- prompt.ok("\nYou can re-run this command to see the state of the self-destruct process.")
- rescue TTY::Reader::InputInterrupt
+ say('To switch Mastodon to self-destruct mode, add the following variable to your evironment (e.g. by adding a line to your `.env.production`) and restart all Mastodon processes:', :green)
+ say(" SELF_DESTRUCT=#{self_destruct_value}", :green)
+ say("\nYou can re-run this command to see the state of the self-destruct process.", :green)
+ rescue Interrupt
exit(1)
end
-
- private
-
- def prompt
- @prompt ||= TTY::Prompt.new
- end
end
end
end
diff --git a/lib/mastodon/cli/preview_cards.rb b/lib/mastodon/cli/preview_cards.rb
index 2df3d095da0f2a..9b20a0cbb8662d 100644
--- a/lib/mastodon/cli/preview_cards.rb
+++ b/lib/mastodon/cli/preview_cards.rb
@@ -1,6 +1,5 @@
# frozen_string_literal: true
-require 'tty-prompt'
require_relative 'base'
module Mastodon::CLI
diff --git a/package.json b/package.json
index 39c7b9a34278a9..b791eba465a2d3 100644
--- a/package.json
+++ b/package.json
@@ -68,7 +68,7 @@
"classnames": "^2.3.2",
"cocoon-js-vanilla": "^1.3.0",
"color-blend": "^4.0.0",
- "compression-webpack-plugin": "patch:compression-webpack-plugin@npm%3A6.1.1#~/.yarn/patches/compression-webpack-plugin-npm-6.1.1-3a2a65987e.patch",
+ "compression-webpack-plugin": "^6.1.2",
"core-js": "^3.30.2",
"cross-env": "^7.0.3",
"css-loader": "^5.2.7",
@@ -169,7 +169,7 @@
"@types/react-dom": "^18.2.4",
"@types/react-helmet": "^6.1.6",
"@types/react-immutable-proptypes": "^2.1.0",
- "@types/react-motion": "^0.0.39",
+ "@types/react-motion": "^0.0.40",
"@types/react-overlays": "^3.1.0",
"@types/react-router": "^5.1.20",
"@types/react-router-dom": "^5.3.3",
@@ -184,7 +184,7 @@
"@types/webpack": "^4.41.33",
"@types/yargs": "^17.0.24",
"@typescript-eslint/eslint-plugin": "^6.0.0",
- "@typescript-eslint/parser": "^6.0.0",
+ "@typescript-eslint/parser": "^6.17.0",
"babel-jest": "^29.5.0",
"eslint": "^8.41.0",
"eslint-config-prettier": "^9.0.0",
@@ -192,7 +192,7 @@
"eslint-import-resolver-typescript": "^3.5.5",
"eslint-plugin-formatjs": "^4.10.1",
"eslint-plugin-import": "~2.29.0",
- "eslint-plugin-jsdoc": "^46.1.0",
+ "eslint-plugin-jsdoc": "^48.0.0",
"eslint-plugin-jsx-a11y": "~6.8.0",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-promise": "~6.1.1",
diff --git a/spec/lib/mastodon/cli/main_spec.rb b/spec/lib/mastodon/cli/main_spec.rb
index 59f1fc47841954..081cd2dd47df0a 100644
--- a/spec/lib/mastodon/cli/main_spec.rb
+++ b/spec/lib/mastodon/cli/main_spec.rb
@@ -20,4 +20,157 @@
.to output_results(Mastodon::Version.to_s)
end
end
+
+ describe '#self_destruct' do
+ let(:action) { :self_destruct }
+
+ context 'with self destruct mode enabled' do
+ before do
+ allow(SelfDestructHelper).to receive(:self_destruct?).and_return(true)
+ end
+
+ context 'with pending accounts' do
+ before { Fabricate(:account) }
+
+ it 'reports about pending accounts' do
+ expect { subject }
+ .to output_results(
+ 'already enabled',
+ 'still pending deletion'
+ )
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'with sidekiq notices being processed' do
+ before do
+ Account.delete_all
+ stats_double = instance_double(Sidekiq::Stats, enqueued: 5)
+ allow(Sidekiq::Stats).to receive(:new).and_return(stats_double)
+ end
+
+ it 'reports about notices' do
+ expect { subject }
+ .to output_results(
+ 'already enabled',
+ 'notices are still being'
+ )
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'with sidekiq failed deliveries' do
+ before do
+ Account.delete_all
+ stats_double = instance_double(Sidekiq::Stats, enqueued: 0, retry_size: 10)
+ allow(Sidekiq::Stats).to receive(:new).and_return(stats_double)
+ end
+
+ it 'reports about notices' do
+ expect { subject }
+ .to output_results(
+ 'already enabled',
+ 'some have failed and are scheduled'
+ )
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'with self descruct mode ready' do
+ before do
+ Account.delete_all
+ stats_double = instance_double(Sidekiq::Stats, enqueued: 0, retry_size: 0)
+ allow(Sidekiq::Stats).to receive(:new).and_return(stats_double)
+ end
+
+ it 'reports about notices' do
+ expect { subject }
+ .to output_results(
+ 'already enabled',
+ 'can safely delete all data'
+ )
+ .and raise_error(SystemExit)
+ end
+ end
+ end
+
+ context 'with self destruct mode disabled' do
+ before do
+ allow(SelfDestructHelper).to receive(:self_destruct?).and_return(false)
+ end
+
+ context 'with an incorrect response to hostname' do
+ before do
+ answer_hostname_incorrectly
+ end
+
+ it 'exits silently' do
+ expect { subject }
+ .to raise_error(SystemExit)
+ end
+ end
+
+ context 'with a correct response to hostname but no to proceed' do
+ before do
+ answer_hostname_correctly
+ decline_proceed
+ end
+
+ it 'passes first step but stops before instructions' do
+ expect { subject }
+ .to output_results('operation WILL NOT')
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'with a correct response to hostname and yes to proceed' do
+ before do
+ answer_hostname_correctly
+ accept_proceed
+ end
+
+ it 'instructs to set the appropriate environment variable' do
+ expect { subject }
+ .to output_results(
+ 'operation WILL NOT',
+ 'the following variable'
+ )
+ end
+ end
+
+ private
+
+ def answer_hostname_incorrectly
+ allow(cli.shell)
+ .to receive(:ask)
+ .with('Type in the domain of the server to confirm:')
+ .and_return('wrong.host')
+ .once
+ end
+
+ def answer_hostname_correctly
+ allow(cli.shell)
+ .to receive(:ask)
+ .with('Type in the domain of the server to confirm:')
+ .and_return(Rails.configuration.x.local_domain)
+ .once
+ end
+
+ def decline_proceed
+ allow(cli.shell)
+ .to receive(:no?)
+ .with('Are you sure you want to proceed?')
+ .and_return(true)
+ .once
+ end
+
+ def accept_proceed
+ allow(cli.shell)
+ .to receive(:no?)
+ .with('Are you sure you want to proceed?')
+ .and_return(false)
+ .once
+ end
+ end
+ end
end
diff --git a/spec/lib/mastodon/cli/media_spec.rb b/spec/lib/mastodon/cli/media_spec.rb
index 24e1467a3ca8c9..071bcd9e34a98f 100644
--- a/spec/lib/mastodon/cli/media_spec.rb
+++ b/spec/lib/mastodon/cli/media_spec.rb
@@ -184,4 +184,58 @@
end
end
end
+
+ describe '#remove_orphans' do
+ let(:action) { :remove_orphans }
+
+ before do
+ FileUtils.mkdir_p Rails.public_path.join('system')
+ end
+
+ context 'without any options' do
+ it 'runs without error' do
+ expect { subject }
+ .to output_results('Removed', 'orphans (approx')
+ end
+ end
+
+ context 'when in azure mode' do
+ before do
+ allow(Paperclip::Attachment).to receive(:default_options).and_return(storage: :azure)
+ end
+
+ it 'warns about usage and exits' do
+ expect { subject }
+ .to output_results('azure storage driver is not supported')
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'when in fog mode' do
+ before do
+ allow(Paperclip::Attachment).to receive(:default_options).and_return(storage: :fog)
+ end
+
+ it 'warns about usage and exits' do
+ expect { subject }
+ .to output_results('fog storage driver is not supported')
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'when in filesystem mode' do
+ before do
+ allow(File).to receive(:delete).and_return(true)
+ media_attachment.delete
+ end
+
+ let(:media_attachment) { Fabricate(:media_attachment) }
+
+ it 'removes the unlinked files' do
+ expect { subject }
+ .to output_results('Removed', 'orphans (approx')
+ expect(File).to have_received(:delete).with(media_attachment.file.path)
+ end
+ end
+ end
end
diff --git a/spec/requests/content_security_policy_spec.rb b/spec/requests/content_security_policy_spec.rb
index 7610e698cdf4cd..d4cc40bce5d976 100644
--- a/spec/requests/content_security_policy_spec.rb
+++ b/spec/requests/content_security_policy_spec.rb
@@ -20,7 +20,7 @@
"form-action 'self'",
"child-src 'self' blob: https://cb6e6126.ngrok.io",
"worker-src 'self' blob: https://cb6e6126.ngrok.io",
- "connect-src 'self' data: blob: https://cb6e6126.ngrok.io ws://localhost:4000",
+ "connect-src 'self' data: blob: https://cb6e6126.ngrok.io ws://cb6e6126.ngrok.io:4000",
"script-src 'self' https://cb6e6126.ngrok.io 'wasm-unsafe-eval'"
)
end
diff --git a/spec/requests/signature_verification_spec.rb b/spec/requests/signature_verification_spec.rb
index b753750b840595..401828c4a3c5d1 100644
--- a/spec/requests/signature_verification_spec.rb
+++ b/spec/requests/signature_verification_spec.rb
@@ -94,6 +94,72 @@
end
end
+ context 'with a valid signature on a GET request that has a query string' do
+ let(:signature_header) do
+ 'keyId="https://remote.domain/users/bob#main-key",algorithm="rsa-sha256",headers="date host (request-target)",signature="SDMa4r/DQYMXYxVgYO2yEqGWWUXugKjVuz0I8dniQAk+aunzBaF2aPu+4grBfawAshlx1Xytl8lhb0H2MllEz16/tKY7rUrb70MK0w8ohXgpb0qs3YvQgdj4X24L1x2MnkFfKHR/J+7TBlnivq0HZqXm8EIkPWLv+eQxu8fbowLwHIVvRd/3t6FzvcfsE0UZKkoMEX02542MhwSif6cu7Ec/clsY9qgKahb9JVGOGS1op9Lvg/9y1mc8KCgD83U5IxVygYeYXaVQ6gixA9NgZiTCwEWzHM5ELm7w5hpdLFYxYOHg/3G3fiqJzpzNQAcCD4S4JxfE7hMI0IzVlNLT6A=="' # rubocop:disable Layout/LineLength
+ end
+
+ it 'successfuly verifies signature', :aggregate_failures do
+ expect(signature_header).to eq build_signature_string(actor_keypair, 'https://remote.domain/users/bob#main-key', 'get /activitypub/success?foo=42', { 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT', 'Host' => 'www.example.com' })
+
+ get '/activitypub/success?foo=42', headers: {
+ 'Host' => 'www.example.com',
+ 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT',
+ 'Signature' => signature_header,
+ }
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json).to match(
+ signed_request: true,
+ signature_actor_id: actor.id.to_s
+ )
+ end
+ end
+
+ context 'when the query string is missing from the signature verification (compatibility quirk)' do
+ let(:signature_header) do
+ 'keyId="https://remote.domain/users/bob#main-key",algorithm="rsa-sha256",headers="date host (request-target)",signature="Z8ilar3J7bOwqZkMp7sL8sRs4B1FT+UorbmvWoE+A5UeoOJ3KBcUmbsh+k3wQwbP5gMNUrra9rEWabpasZGphLsbDxfbsWL3Cf0PllAc7c1c7AFEwnewtExI83/qqgEkfWc2z7UDutXc2NfgAx89Ox8DXU/fA2GG0jILjB6UpFyNugkY9rg6oI31UnvfVi3R7sr3/x8Ea3I9thPvqI2byF6cojknSpDAwYzeKdngX3TAQEGzFHz3SDWwyp3jeMWfwvVVbM38FxhvAnSumw7YwWW4L7M7h4M68isLimoT3yfCn2ucBVL5Dz8koBpYf/40w7QidClAwCafZQFC29yDOg=="' # rubocop:disable Layout/LineLength
+ end
+
+ it 'successfuly verifies signature', :aggregate_failures do
+ expect(signature_header).to eq build_signature_string(actor_keypair, 'https://remote.domain/users/bob#main-key', 'get /activitypub/success', { 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT', 'Host' => 'www.example.com' })
+
+ get '/activitypub/success?foo=42', headers: {
+ 'Host' => 'www.example.com',
+ 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT',
+ 'Signature' => signature_header,
+ }
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json).to match(
+ signed_request: true,
+ signature_actor_id: actor.id.to_s
+ )
+ end
+ end
+
+ context 'with mismatching query string' do
+ let(:signature_header) do
+ 'keyId="https://remote.domain/users/bob#main-key",algorithm="rsa-sha256",headers="date host (request-target)",signature="SDMa4r/DQYMXYxVgYO2yEqGWWUXugKjVuz0I8dniQAk+aunzBaF2aPu+4grBfawAshlx1Xytl8lhb0H2MllEz16/tKY7rUrb70MK0w8ohXgpb0qs3YvQgdj4X24L1x2MnkFfKHR/J+7TBlnivq0HZqXm8EIkPWLv+eQxu8fbowLwHIVvRd/3t6FzvcfsE0UZKkoMEX02542MhwSif6cu7Ec/clsY9qgKahb9JVGOGS1op9Lvg/9y1mc8KCgD83U5IxVygYeYXaVQ6gixA9NgZiTCwEWzHM5ELm7w5hpdLFYxYOHg/3G3fiqJzpzNQAcCD4S4JxfE7hMI0IzVlNLT6A=="' # rubocop:disable Layout/LineLength
+ end
+
+ it 'fails to verify signature', :aggregate_failures do
+ expect(signature_header).to eq build_signature_string(actor_keypair, 'https://remote.domain/users/bob#main-key', 'get /activitypub/success?foo=42', { 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT', 'Host' => 'www.example.com' })
+
+ get '/activitypub/success?foo=43', headers: {
+ 'Host' => 'www.example.com',
+ 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT',
+ 'Signature' => signature_header,
+ }
+
+ expect(body_as_json).to match(
+ signed_request: true,
+ signature_actor_id: nil,
+ error: anything
+ )
+ end
+ end
+
context 'with a mismatching path' do
it 'fails to verify signature', :aggregate_failures do
get '/activitypub/alternative-path', headers: {
diff --git a/streaming/Dockerfile b/streaming/Dockerfile
index 6e0a84771c1798..241009fe893899 100644
--- a/streaming/Dockerfile
+++ b/streaming/Dockerfile
@@ -69,6 +69,7 @@ RUN \
ca-certificates \
curl \
tzdata \
+ wget \
;
# Set /opt/mastodon as working directory
@@ -101,4 +102,4 @@ USER mastodon
# Expose default Streaming ports
EXPOSE 4000
# Run streaming when started
-CMD [ node ./streaming/index.js ]
\ No newline at end of file
+CMD [ node ./streaming/index.js ]
diff --git a/yarn.lock b/yarn.lock
index 2f3a53dedbc4ab..42c279cecd4e57 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,10 +12,10 @@ __metadata:
languageName: node
linkType: hard
-"@adobe/css-tools@npm:^4.3.1":
- version: 4.3.1
- resolution: "@adobe/css-tools@npm:4.3.1"
- checksum: 05672719b544cc0c21ae3ed0eb6349bf458e9d09457578eeeb07cf0f696469ac6417e9c9be1b129e5d6a18098a061c1db55b2275591760ef30a79822436fcbfa
+"@adobe/css-tools@npm:^4.3.2":
+ version: 4.3.2
+ resolution: "@adobe/css-tools@npm:4.3.2"
+ checksum: 296a03dd29f227c60500d2da8c7f64991fecf1d8b456ce2b4adb8cec7363d9c08b5b03f1463673fc8cbfe54b538745588e7a13c736d2dd14a80c01a20f127f39
languageName: node
linkType: hard
@@ -60,25 +60,25 @@ __metadata:
linkType: hard
"@babel/core@npm:^7.10.4, @babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.1":
- version: 7.23.6
- resolution: "@babel/core@npm:7.23.6"
+ version: 7.23.7
+ resolution: "@babel/core@npm:7.23.7"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
"@babel/code-frame": "npm:^7.23.5"
"@babel/generator": "npm:^7.23.6"
"@babel/helper-compilation-targets": "npm:^7.23.6"
"@babel/helper-module-transforms": "npm:^7.23.3"
- "@babel/helpers": "npm:^7.23.6"
+ "@babel/helpers": "npm:^7.23.7"
"@babel/parser": "npm:^7.23.6"
"@babel/template": "npm:^7.22.15"
- "@babel/traverse": "npm:^7.23.6"
+ "@babel/traverse": "npm:^7.23.7"
"@babel/types": "npm:^7.23.6"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
- checksum: a02bae7d916029b70706dc301535e1b31e5d216f55d4ee6f64a15825c6b69ee2c14c52a213d1497ec414e925ed4e9d897d41fb0d75df9fea28ed2c0008790e31
+ checksum: 38c9934973d384ed83369712978453eac91dc3f22167404dbdb272b64f602e74728a6f37012c53ee57e521b8ae2da60097f050497d9b6a212d28b59cdfb2cd1d
languageName: node
linkType: hard
@@ -167,9 +167,9 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-define-polyfill-provider@npm:^0.4.3":
- version: 0.4.3
- resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3"
+"@babel/helper-define-polyfill-provider@npm:^0.4.4":
+ version: 0.4.4
+ resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4"
dependencies:
"@babel/helper-compilation-targets": "npm:^7.22.6"
"@babel/helper-plugin-utils": "npm:^7.22.5"
@@ -178,7 +178,7 @@ __metadata:
resolve: "npm:^1.14.2"
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 0007035157e0d32ee9cb4ca319b89d6f3705523383efe52a59eb3d4dfa2ed08c5147e49c10a6e6d69c15221d89c76c8e5875475d6710fb44a5c37b8e69388e40
+ checksum: 60126f5f719b9e2114df62e3bf3ac0797b71d8dc733db60192eb169b004fde72ee309fa5848c5fdfe98b8e8863c46f55e16da5aa8a4e420b4d2670cd0c5dd708
languageName: node
linkType: hard
@@ -342,14 +342,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.23.6":
- version: 7.23.6
- resolution: "@babel/helpers@npm:7.23.6"
+"@babel/helpers@npm:^7.23.7":
+ version: 7.23.7
+ resolution: "@babel/helpers@npm:7.23.7"
dependencies:
"@babel/template": "npm:^7.22.15"
- "@babel/traverse": "npm:^7.23.6"
+ "@babel/traverse": "npm:^7.23.7"
"@babel/types": "npm:^7.23.6"
- checksum: df1cf6607676ad36f52f652ec03536f2732d70aef5e76dba5c964e34d49f3c2d3dcf9fb3740db359f53071d74b64606a833d5ba156f79f437f71bfe06e2e7e19
+ checksum: f74a61ad28a1bc1fdd9133ad571c07787b66d6db017c707b87c203b0cd06879cea8b33e9c6a8585765a4949efa5df3cc9e19b710fe867f11be38ee29fd4a0488
languageName: node
linkType: hard
@@ -397,15 +397,15 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3":
- version: 7.23.3
- resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3"
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7":
+ version: 7.23.7
+ resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7"
dependencies:
"@babel/helper-environment-visitor": "npm:^7.22.20"
"@babel/helper-plugin-utils": "npm:^7.22.5"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 0f43b74741d50e637ba4dcef2786621126fe4da6ccf4ee2e94423ee23f6a04ecd91d458e59764c43e4968be139e5197ee43be8a2fea2c09f0b202a3391e548cc
+ checksum: 355746e21ad7f43e4f4daef54cfe2ef461ecd19446b2afedd53c39df1bf9aa2eeeeaabee2279b1321de89a97c9360e4f76e9ba950fee50ff1676c25f6929d625
languageName: node
linkType: hard
@@ -661,9 +661,9 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-async-generator-functions@npm:^7.23.4":
- version: 7.23.4
- resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4"
+"@babel/plugin-transform-async-generator-functions@npm:^7.23.7":
+ version: 7.23.7
+ resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.7"
dependencies:
"@babel/helper-environment-visitor": "npm:^7.22.20"
"@babel/helper-plugin-utils": "npm:^7.22.5"
@@ -671,7 +671,7 @@ __metadata:
"@babel/plugin-syntax-async-generators": "npm:^7.8.4"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: f2eef4de609975a3f7da7832576b5ffc93e43c80f87e1a99e886b0f8591096cfc4c37e2d5f52fdeaa2a9c09a25a59f3e621159abaca75d3193922a5c0e4cbe0c
+ checksum: 63d314edc9fbeaf2700745ca0e19bf9840e87f2d7d1f6c5638e06d2aec3e7418d0d7493ed09087e2fe369cc15e9d96c113fb2cd367cb5e3ff922e3712c27b7d4
languageName: node
linkType: hard
@@ -1201,18 +1201,18 @@ __metadata:
linkType: hard
"@babel/plugin-transform-runtime@npm:^7.22.4":
- version: 7.23.6
- resolution: "@babel/plugin-transform-runtime@npm:7.23.6"
+ version: 7.23.7
+ resolution: "@babel/plugin-transform-runtime@npm:7.23.7"
dependencies:
"@babel/helper-module-imports": "npm:^7.22.15"
"@babel/helper-plugin-utils": "npm:^7.22.5"
- babel-plugin-polyfill-corejs2: "npm:^0.4.6"
- babel-plugin-polyfill-corejs3: "npm:^0.8.5"
- babel-plugin-polyfill-regenerator: "npm:^0.5.3"
+ babel-plugin-polyfill-corejs2: "npm:^0.4.7"
+ babel-plugin-polyfill-corejs3: "npm:^0.8.7"
+ babel-plugin-polyfill-regenerator: "npm:^0.5.4"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 94a7ee92f073df53fd8bebf9ed391a95553716077da1c6c3a57f10f042358c938495d55e6b09b4b50544c01f03560c4770c17698e1c24817a15d3668e8231249
+ checksum: 0d5038462a5762c3a88d820785f685ce1b659075527a3ad538647fd9ce486052777d5aea3d62e626639d60441a04dd0ded2ed32c86b92cf8afbdbd3d54460c13
languageName: node
linkType: hard
@@ -1334,8 +1334,8 @@ __metadata:
linkType: hard
"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.22.4":
- version: 7.23.6
- resolution: "@babel/preset-env@npm:7.23.6"
+ version: 7.23.7
+ resolution: "@babel/preset-env@npm:7.23.7"
dependencies:
"@babel/compat-data": "npm:^7.23.5"
"@babel/helper-compilation-targets": "npm:^7.23.6"
@@ -1343,7 +1343,7 @@ __metadata:
"@babel/helper-validator-option": "npm:^7.23.5"
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3"
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3"
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.7"
"@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2"
"@babel/plugin-syntax-async-generators": "npm:^7.8.4"
"@babel/plugin-syntax-class-properties": "npm:^7.12.13"
@@ -1364,7 +1364,7 @@ __metadata:
"@babel/plugin-syntax-top-level-await": "npm:^7.14.5"
"@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6"
"@babel/plugin-transform-arrow-functions": "npm:^7.23.3"
- "@babel/plugin-transform-async-generator-functions": "npm:^7.23.4"
+ "@babel/plugin-transform-async-generator-functions": "npm:^7.23.7"
"@babel/plugin-transform-async-to-generator": "npm:^7.23.3"
"@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3"
"@babel/plugin-transform-block-scoping": "npm:^7.23.4"
@@ -1412,14 +1412,14 @@ __metadata:
"@babel/plugin-transform-unicode-regex": "npm:^7.23.3"
"@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3"
"@babel/preset-modules": "npm:0.1.6-no-external-plugins"
- babel-plugin-polyfill-corejs2: "npm:^0.4.6"
- babel-plugin-polyfill-corejs3: "npm:^0.8.5"
- babel-plugin-polyfill-regenerator: "npm:^0.5.3"
+ babel-plugin-polyfill-corejs2: "npm:^0.4.7"
+ babel-plugin-polyfill-corejs3: "npm:^0.8.7"
+ babel-plugin-polyfill-regenerator: "npm:^0.5.4"
core-js-compat: "npm:^3.31.0"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 5b24d179af52f082d04b9b98cc4777e37bf31a97cef5a91d8917e996dbd75f2f743c88c40f80744cb8529355bb674619d150c0260c32d834aa4067e21d0c8962
+ checksum: ac9def873cec52ee02a550bde6e22eced16d1ae331bb8ebc82c03e4c91c12ac17e3e4027647e61612937bcc25ac46e71370aaf99dc2e85dbd11f7777ffeed54e
languageName: node
linkType: hard
@@ -1484,11 +1484,11 @@ __metadata:
linkType: hard
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.22.3, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
- version: 7.23.6
- resolution: "@babel/runtime@npm:7.23.6"
+ version: 7.23.7
+ resolution: "@babel/runtime@npm:7.23.7"
dependencies:
regenerator-runtime: "npm:^0.14.0"
- checksum: d886954e985ef8e421222f7a2848884d96a752e0020d3078b920dd104e672fdf23bcc6f51a44313a048796319f1ac9d09c2c88ec8cbb4e1f09174bcd3335b9ff
+ checksum: 3e304133ee55b0750e03e53cb4efb47fb2bdcdb5795f85bbffa10595196c34b9be60eb65bd6d833c87f49fc827f0365f86f95f51d85b188004d3128bb5129c93
languageName: node
linkType: hard
@@ -1503,9 +1503,9 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:7, @babel/traverse@npm:^7.23.6":
- version: 7.23.6
- resolution: "@babel/traverse@npm:7.23.6"
+"@babel/traverse@npm:7, @babel/traverse@npm:^7.23.7":
+ version: 7.23.7
+ resolution: "@babel/traverse@npm:7.23.7"
dependencies:
"@babel/code-frame": "npm:^7.23.5"
"@babel/generator": "npm:^7.23.6"
@@ -1517,7 +1517,7 @@ __metadata:
"@babel/types": "npm:^7.23.6"
debug: "npm:^4.3.1"
globals: "npm:^11.1.0"
- checksum: 5b4ebb94a00a7e1daf111e4b0b45a7998d5b7598637a14e75e855e88cc1b702789e09a958726b5d599a003be1e9032dbdfde4b88ea6061332228738950d5582d
+ checksum: e32fceb4249beec2bde83968ddffe17444221c1ee5cd18c543a2feaf94e3ca83f2a4dfbc2dcca87cf226e0105973e0fe3717063a21e982a9de9945615ab3f3f5
languageName: node
linkType: hard
@@ -1539,38 +1539,38 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/css-parser-algorithms@npm:^2.3.2":
- version: 2.3.2
- resolution: "@csstools/css-parser-algorithms@npm:2.3.2"
+"@csstools/css-parser-algorithms@npm:^2.4.0":
+ version: 2.5.0
+ resolution: "@csstools/css-parser-algorithms@npm:2.5.0"
peerDependencies:
- "@csstools/css-tokenizer": ^2.2.1
- checksum: ccae373a3ab5c10716418b69ce1f6db10a26d3a2d60b65df5fe69099afe4fb1d3192925f3c0f93c3b17c3ab1964b0f39ad2b0e97312ec4a51caa55d6b6a31672
+ "@csstools/css-tokenizer": ^2.2.3
+ checksum: 31b4a523d956e204af9842183678cca5a88ad76551d54dcb6083f8a6f2dfd8fdec6c09bca5410842af54b90997308bebee7593c17dbc1a4e951453b54bd3f024
languageName: node
linkType: hard
-"@csstools/css-tokenizer@npm:^2.2.1":
- version: 2.2.1
- resolution: "@csstools/css-tokenizer@npm:2.2.1"
- checksum: 0c6901d291e99c567893846a47068057c2a28b3edc4219b6da589a530f55f51ddd4675f906f707b393bfe7a508ab2604bf3f75708f064db857bb277636bd5a44
+"@csstools/css-tokenizer@npm:^2.2.2":
+ version: 2.2.3
+ resolution: "@csstools/css-tokenizer@npm:2.2.3"
+ checksum: 557266ec52e8b36c19008a5bbd7151effba085cdd6d68270c01afebf914981caac698eda754b2a530a8a9947a3dd70e3f3a39a5e037c4170bb2a055a92754acb
languageName: node
linkType: hard
-"@csstools/media-query-list-parser@npm:^2.1.5":
- version: 2.1.5
- resolution: "@csstools/media-query-list-parser@npm:2.1.5"
+"@csstools/media-query-list-parser@npm:^2.1.6":
+ version: 2.1.7
+ resolution: "@csstools/media-query-list-parser@npm:2.1.7"
peerDependencies:
- "@csstools/css-parser-algorithms": ^2.3.2
- "@csstools/css-tokenizer": ^2.2.1
- checksum: ae0692c6f92cdc82053291c7a50028b692094dfed795f0259571c5eb40f4b3fa580182ac3701e56c2834e40a62a122ea6639299e43ae88b3a835ae4c869a1a12
+ "@csstools/css-parser-algorithms": ^2.5.0
+ "@csstools/css-tokenizer": ^2.2.3
+ checksum: 433aef06b00f1d402fd24074a1919b8e2de94245a3b780da6466c8cc9e0f3cc93d2db930f0fce36c7d6908cd50b626cd61e803d3f62dddad79eeb742858028ef
languageName: node
linkType: hard
-"@csstools/selector-specificity@npm:^3.0.0":
- version: 3.0.0
- resolution: "@csstools/selector-specificity@npm:3.0.0"
+"@csstools/selector-specificity@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "@csstools/selector-specificity@npm:3.0.1"
peerDependencies:
postcss-selector-parser: ^6.0.13
- checksum: 6f0e2fa9a3c5dcbc7a446fd827d3eb85ca775cc884f73f0bbb119ab49b4f5f0af8763dd23a37d423f4e7989069c09bb977e7e5f017db296e1417abb1fba75c30
+ checksum: 4280f494726d5e38de74e28dee2ff74ec86244560dff4edeec3ddff3ac73c774c19535bd1bb70cad77949bfb359cf87e977d0ec3264591e3b7260342a20dd84f
languageName: node
linkType: hard
@@ -2323,7 +2323,7 @@ __metadata:
"@types/react-dom": "npm:^18.2.4"
"@types/react-helmet": "npm:^6.1.6"
"@types/react-immutable-proptypes": "npm:^2.1.0"
- "@types/react-motion": "npm:^0.0.39"
+ "@types/react-motion": "npm:^0.0.40"
"@types/react-overlays": "npm:^3.1.0"
"@types/react-router": "npm:^5.1.20"
"@types/react-router-dom": "npm:^5.3.3"
@@ -2338,7 +2338,7 @@ __metadata:
"@types/webpack": "npm:^4.41.33"
"@types/yargs": "npm:^17.0.24"
"@typescript-eslint/eslint-plugin": "npm:^6.0.0"
- "@typescript-eslint/parser": "npm:^6.0.0"
+ "@typescript-eslint/parser": "npm:^6.17.0"
arrow-key-navigation: "npm:^1.2.0"
async-mutex: "npm:^0.4.0"
atrament: "npm:0.2.4"
@@ -2355,7 +2355,7 @@ __metadata:
classnames: "npm:^2.3.2"
cocoon-js-vanilla: "npm:^1.3.0"
color-blend: "npm:^4.0.0"
- compression-webpack-plugin: "patch:compression-webpack-plugin@npm%3A6.1.1#~/.yarn/patches/compression-webpack-plugin-npm-6.1.1-3a2a65987e.patch"
+ compression-webpack-plugin: "npm:^6.1.2"
core-js: "npm:^3.30.2"
cross-env: "npm:^7.0.3"
css-loader: "npm:^5.2.7"
@@ -2369,7 +2369,7 @@ __metadata:
eslint-import-resolver-typescript: "npm:^3.5.5"
eslint-plugin-formatjs: "npm:^4.10.1"
eslint-plugin-import: "npm:~2.29.0"
- eslint-plugin-jsdoc: "npm:^46.1.0"
+ eslint-plugin-jsdoc: "npm:^48.0.0"
eslint-plugin-jsx-a11y: "npm:~6.8.0"
eslint-plugin-prettier: "npm:^5.0.0"
eslint-plugin-promise: "npm:~6.1.1"
@@ -2588,7 +2588,7 @@ __metadata:
languageName: node
linkType: hard
-"@pkgr/utils@npm:^2.3.1":
+"@pkgr/utils@npm:^2.4.2":
version: 2.4.2
resolution: "@pkgr/utils@npm:2.4.2"
dependencies:
@@ -2897,10 +2897,10 @@ __metadata:
linkType: hard
"@testing-library/jest-dom@npm:^6.0.0":
- version: 6.1.5
- resolution: "@testing-library/jest-dom@npm:6.1.5"
+ version: 6.1.6
+ resolution: "@testing-library/jest-dom@npm:6.1.6"
dependencies:
- "@adobe/css-tools": "npm:^4.3.1"
+ "@adobe/css-tools": "npm:^4.3.2"
"@babel/runtime": "npm:^7.9.2"
aria-query: "npm:^5.0.0"
chalk: "npm:^3.0.0"
@@ -2922,7 +2922,7 @@ __metadata:
optional: true
vitest:
optional: true
- checksum: f3643a56fcd970b5c7e8fd10faf3c4817d8ab0e74fb1198d726643bdc5ac675ceaac3b0068c5b4fbad254470e8f98ed50028741de875a29ceaa2f854570979c9
+ checksum: f98f79f3e470517469c86947d0ff1bb83ac2e59fd2a29728ab306eca5fba63c948084ec06b7b531642e6002d1f0211d918c298c628f0d386c0ef63ba881c47ba
languageName: node
linkType: hard
@@ -3382,12 +3382,12 @@ __metadata:
languageName: node
linkType: hard
-"@types/react-motion@npm:^0.0.39":
- version: 0.0.39
- resolution: "@types/react-motion@npm:0.0.39"
+"@types/react-motion@npm:^0.0.40":
+ version: 0.0.40
+ resolution: "@types/react-motion@npm:0.0.40"
dependencies:
"@types/react": "npm:*"
- checksum: 0dfcde777576b3c3289b4dbf2a5085decf71aba6d543697f4c1069d02ed3b543792a253692bd98870af04112c92469328a4fdb93988f93af2e099de8f2c9bc2e
+ checksum: 8a560051be917833fdbe051185b53aeafbe8657968ac8e073ac874b9a55c6f16e3793748b13cfb9bd6d9a3d27aba116d6f8f296ec1950f4175dc94d17c5e8470
languageName: node
linkType: hard
@@ -3485,13 +3485,13 @@ __metadata:
linkType: hard
"@types/react@npm:*, @types/react@npm:16 || 17 || 18, @types/react@npm:>=16.9.11, @types/react@npm:^18.2.7":
- version: 18.2.45
- resolution: "@types/react@npm:18.2.45"
+ version: 18.2.46
+ resolution: "@types/react@npm:18.2.46"
dependencies:
"@types/prop-types": "npm:*"
"@types/scheduler": "npm:*"
csstype: "npm:^3.0.2"
- checksum: 4cc650c47ffb88baac29fb7a74e842e4af4a55f437086ef70250fdc75f0a5f2fcf8adc272d05ab2e00b1de6e14613296881271caee037dadf9130fdeb498c59e
+ checksum: 814cc67107e5e69501d65bfc371cc2c716665d2a3608d395a2f81e24c3a2875db28e2cad717dfb17017eabcffd1d68ee2c9e09ecaba3f7108d5b7fbb9888ebab
languageName: node
linkType: hard
@@ -3672,14 +3672,14 @@ __metadata:
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^6.0.0":
- version: 6.14.0
- resolution: "@typescript-eslint/eslint-plugin@npm:6.14.0"
+ version: 6.16.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:6.16.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.5.1"
- "@typescript-eslint/scope-manager": "npm:6.14.0"
- "@typescript-eslint/type-utils": "npm:6.14.0"
- "@typescript-eslint/utils": "npm:6.14.0"
- "@typescript-eslint/visitor-keys": "npm:6.14.0"
+ "@typescript-eslint/scope-manager": "npm:6.16.0"
+ "@typescript-eslint/type-utils": "npm:6.16.0"
+ "@typescript-eslint/utils": "npm:6.16.0"
+ "@typescript-eslint/visitor-keys": "npm:6.16.0"
debug: "npm:^4.3.4"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.4"
@@ -3692,44 +3692,54 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 6360efb0e142ed91de5e9bddcd041f769feeedd256332733be08f7a74c8ae637cbfb78c6b85d747c73231bbb95cef95ed2d2854ab7d43aebfbedb3a191f447f1
+ checksum: c8a68e0953d8b94f6b85d3a82090e61e670bcb0945cbee4d741321c56db727429ad47c48b8403ad1dab3b0842689bd2d4b85c99b76c51ac4f5be7f5f61c4c314
languageName: node
linkType: hard
-"@typescript-eslint/parser@npm:^6.0.0":
- version: 6.14.0
- resolution: "@typescript-eslint/parser@npm:6.14.0"
+"@typescript-eslint/parser@npm:^6.17.0":
+ version: 6.17.0
+ resolution: "@typescript-eslint/parser@npm:6.17.0"
dependencies:
- "@typescript-eslint/scope-manager": "npm:6.14.0"
- "@typescript-eslint/types": "npm:6.14.0"
- "@typescript-eslint/typescript-estree": "npm:6.14.0"
- "@typescript-eslint/visitor-keys": "npm:6.14.0"
+ "@typescript-eslint/scope-manager": "npm:6.17.0"
+ "@typescript-eslint/types": "npm:6.17.0"
+ "@typescript-eslint/typescript-estree": "npm:6.17.0"
+ "@typescript-eslint/visitor-keys": "npm:6.17.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 0344f7f640374e7e5a5b50e9c90fbd161611b3f455132e541ef9116eef7bd3acf364db64bd38d4b6b4fe148414494620c9df660f8ddce036019c38ae8e146585
+ checksum: 66b53159688083eb48259de5b4daf076f3de284ac3b4d2618bda3f7ab2d8ee27b01ae851b08e8487047e33ff3668424f17d677d66413164cb231f1519dcff82f
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:6.14.0":
- version: 6.14.0
- resolution: "@typescript-eslint/scope-manager@npm:6.14.0"
+"@typescript-eslint/scope-manager@npm:6.16.0":
+ version: 6.16.0
+ resolution: "@typescript-eslint/scope-manager@npm:6.16.0"
dependencies:
- "@typescript-eslint/types": "npm:6.14.0"
- "@typescript-eslint/visitor-keys": "npm:6.14.0"
- checksum: 8c59a215af3d7d24d8d0b21c28a858263de471650829f288a941e0eb8af8a054798da5c7594b7f39370219718270c18464b5edb96f451457e5f080a33ba57c2c
+ "@typescript-eslint/types": "npm:6.16.0"
+ "@typescript-eslint/visitor-keys": "npm:6.16.0"
+ checksum: 3b275e528d19f4f36c4acd6cb872b5f004175512dce30cef0ac7a9121bb23d21e5e0f4b62658dbfea2b15851e7fa930372696f25a6c87492f863171ab56f5364
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@npm:6.14.0":
- version: 6.14.0
- resolution: "@typescript-eslint/type-utils@npm:6.14.0"
+"@typescript-eslint/scope-manager@npm:6.17.0":
+ version: 6.17.0
+ resolution: "@typescript-eslint/scope-manager@npm:6.17.0"
dependencies:
- "@typescript-eslint/typescript-estree": "npm:6.14.0"
- "@typescript-eslint/utils": "npm:6.14.0"
+ "@typescript-eslint/types": "npm:6.17.0"
+ "@typescript-eslint/visitor-keys": "npm:6.17.0"
+ checksum: b7ac7d9c39515c2a1b3844577fab967bf126ec25ccf28076240748b3f42d60ab3e64131bfffee61f66251bdf2d59e50e39f5cb0bee7987c85c49140c75d26b5f
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/type-utils@npm:6.16.0":
+ version: 6.16.0
+ resolution: "@typescript-eslint/type-utils@npm:6.16.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree": "npm:6.16.0"
+ "@typescript-eslint/utils": "npm:6.16.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.0.1"
peerDependencies:
@@ -3737,59 +3747,96 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 836a6e84be5a245b07c76968c98e2f3bae064767dde720080fe8f33e226188510778dbca4199b7e42ef675ec3fd6d0ab522ec1c77d6e2a9b50e8e275fe7c72c9
+ checksum: a5339cc1375d12411fcb242249143b28401fb18890bb2a1cff5275ba946affb4a2066cd8203e83ac383bd9d791a79ea6ee1cbf7a30deed5c832ed002897bbf82
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:6.16.0":
+ version: 6.16.0
+ resolution: "@typescript-eslint/types@npm:6.16.0"
+ checksum: 74d9a8b7fd1b85fd1824295c92bc2f506148e450c9897f65ddaa089091017df4e25676c5b098b75c8f00529b84492f303a6b1870bb0ffee83997081325891d53
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:6.14.0":
- version: 6.14.0
- resolution: "@typescript-eslint/types@npm:6.14.0"
- checksum: d59306a7a441982a4dcee7d775928fd5086aba9331f7a238f915723a0dc785df0e43af562a30a7c2f1b056a1e49fd64863a8d2450d31706193add0ade87334a4
+"@typescript-eslint/types@npm:6.17.0":
+ version: 6.17.0
+ resolution: "@typescript-eslint/types@npm:6.17.0"
+ checksum: c458d985b9ab4f369018536bcb88f0aedafb0c8c4b22ffd376e0c0c768a44e3956475c85ebeef40ae44238841c8df268893477b85873aa2621995c37e738e37e
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:6.14.0":
- version: 6.14.0
- resolution: "@typescript-eslint/typescript-estree@npm:6.14.0"
+"@typescript-eslint/typescript-estree@npm:6.16.0":
+ version: 6.16.0
+ resolution: "@typescript-eslint/typescript-estree@npm:6.16.0"
dependencies:
- "@typescript-eslint/types": "npm:6.14.0"
- "@typescript-eslint/visitor-keys": "npm:6.14.0"
+ "@typescript-eslint/types": "npm:6.16.0"
+ "@typescript-eslint/visitor-keys": "npm:6.16.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
+ minimatch: "npm:9.0.3"
semver: "npm:^7.5.4"
ts-api-utils: "npm:^1.0.1"
peerDependenciesMeta:
typescript:
optional: true
- checksum: 767c3309987b8ad053a2403605a9bd7c4eb3283dece864a741a7531a1c28eea4d85acaa4613141b64e194f9f6c4cbc5bc762c9b9f3a67c6202aa8cbb18b180d2
+ checksum: c7109e90b40b3c8f1042beb7f1a7a97eeba3b6a903acd82df4947900d68bd31d04b530a190c099666c5ca4886efc162de7b42de754a44b189e41237210797d9e
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:6.14.0, @typescript-eslint/utils@npm:^6.5.0":
- version: 6.14.0
- resolution: "@typescript-eslint/utils@npm:6.14.0"
+"@typescript-eslint/typescript-estree@npm:6.17.0":
+ version: 6.17.0
+ resolution: "@typescript-eslint/typescript-estree@npm:6.17.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:6.17.0"
+ "@typescript-eslint/visitor-keys": "npm:6.17.0"
+ debug: "npm:^4.3.4"
+ globby: "npm:^11.1.0"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:9.0.3"
+ semver: "npm:^7.5.4"
+ ts-api-utils: "npm:^1.0.1"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 5a858288bb05f45a2a45b04394115826ff19f85555144bfb67dc281d4e75fc3a1e1aceb3dee68022e86b91f199d1310c15bda3100a4890004b8e474d86afad51
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/utils@npm:6.16.0, @typescript-eslint/utils@npm:^6.5.0":
+ version: 6.16.0
+ resolution: "@typescript-eslint/utils@npm:6.16.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@types/json-schema": "npm:^7.0.12"
"@types/semver": "npm:^7.5.0"
- "@typescript-eslint/scope-manager": "npm:6.14.0"
- "@typescript-eslint/types": "npm:6.14.0"
- "@typescript-eslint/typescript-estree": "npm:6.14.0"
+ "@typescript-eslint/scope-manager": "npm:6.16.0"
+ "@typescript-eslint/types": "npm:6.16.0"
+ "@typescript-eslint/typescript-estree": "npm:6.16.0"
semver: "npm:^7.5.4"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
- checksum: 72689b2897b89e1bd1c71c1c2ae436d0ccfbcfffabf3be4378de74ad8138b2ecdbeeda7c1720e2f1754569e773f2fc7216f704335e1e56c38c7601ee1d190aeb
+ checksum: 586c4c0e1ca249daf9958f0d88df3af010a7592a19db1a7dc198754542b584314896536fe56ea9c93dd0ddd531154e7697002643d46e24a8d3a459721a626e91
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@npm:6.14.0":
- version: 6.14.0
- resolution: "@typescript-eslint/visitor-keys@npm:6.14.0"
+"@typescript-eslint/visitor-keys@npm:6.16.0":
+ version: 6.16.0
+ resolution: "@typescript-eslint/visitor-keys@npm:6.16.0"
dependencies:
- "@typescript-eslint/types": "npm:6.14.0"
+ "@typescript-eslint/types": "npm:6.16.0"
eslint-visitor-keys: "npm:^3.4.1"
- checksum: 0e2363f9f1986ebdb41507c54a666fa1c336eb6beb383dc342a10844d3c42c89067b21c3f158851fa6f0825e1e451a5470b5454fde70a6fc33b4b0259462d954
+ checksum: 13c4d90355e288eac432d2845e37bb2acc03dab6d8568564558c1914a9aa44352f2a7ff29d0f50e0b3e68d66cca5f27b2732af5ff193b82571b4366309842880
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:6.17.0":
+ version: 6.17.0
+ resolution: "@typescript-eslint/visitor-keys@npm:6.17.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:6.17.0"
+ eslint-visitor-keys: "npm:^3.4.1"
+ checksum: 75a48f5810c6a69bc1c082b07d2b840c40895807b1b4ecf9d3ab9eb783176eeb3e7b11eb89d652e8331da79d604f82300f315ffc21cd937819197a8601b48d1d
languageName: node
linkType: hard
@@ -4641,13 +4688,13 @@ __metadata:
linkType: hard
"axios@npm:^1.4.0":
- version: 1.6.2
- resolution: "axios@npm:1.6.2"
+ version: 1.6.3
+ resolution: "axios@npm:1.6.3"
dependencies:
follow-redirects: "npm:^1.15.0"
form-data: "npm:^4.0.0"
proxy-from-env: "npm:^1.1.0"
- checksum: 9b77e030e85e4f9cbcba7bb52fbff67d6ce906c92d213e0bd932346a50140faf83733bf786f55bd58301bd92f9973885c7b87d6348023e10f7eaf286d0791a1d
+ checksum: dcc6d982353db33e6893ef01cdf81d0a0548dbd8fba0cb046dc4aee1a6a16226721faa4c2a13b2673d47130509629cdb93bb991b3a2bd4ef17a5ac27a8bba0da
languageName: node
linkType: hard
@@ -4773,39 +4820,39 @@ __metadata:
languageName: node
linkType: hard
-"babel-plugin-polyfill-corejs2@npm:^0.4.6":
- version: 0.4.6
- resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6"
+"babel-plugin-polyfill-corejs2@npm:^0.4.7":
+ version: 0.4.7
+ resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7"
dependencies:
"@babel/compat-data": "npm:^7.22.6"
- "@babel/helper-define-polyfill-provider": "npm:^0.4.3"
+ "@babel/helper-define-polyfill-provider": "npm:^0.4.4"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 64a98811f343492aa6970ab253760194e389c0417e5b830522f944009c1f0c78e1251975fd1b9869cd48cc4623111b20a3389cf6732a1d10ba0d19de6fa5114f
+ checksum: f80f7284ec72c63e7dd751e0bdf25e9978df195a79e0887470603bfdea13ee518d62573cf360bb1bc01b80819e54915dd5edce9cff14c52d0af5f984aa3d36a3
languageName: node
linkType: hard
-"babel-plugin-polyfill-corejs3@npm:^0.8.5":
- version: 0.8.5
- resolution: "babel-plugin-polyfill-corejs3@npm:0.8.5"
+"babel-plugin-polyfill-corejs3@npm:^0.8.7":
+ version: 0.8.7
+ resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7"
dependencies:
- "@babel/helper-define-polyfill-provider": "npm:^0.4.3"
- core-js-compat: "npm:^3.32.2"
+ "@babel/helper-define-polyfill-provider": "npm:^0.4.4"
+ core-js-compat: "npm:^3.33.1"
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 577a072971bda2929a87655c816ad14b6a8f7276e6914851b98a6465bdb56f7f2e3db6136c8b8607bd6ba4cde3cd9cbde21f0078250cd93aee3df977c0a731d0
+ checksum: 094e40f4ab9f131408202063964d63740609fd4fdb70a5b6332b371761921b540ffbcee7a434c0199b8317dfb2ba4675eef674867215fd3b85e24054607c1501
languageName: node
linkType: hard
-"babel-plugin-polyfill-regenerator@npm:^0.5.3":
- version: 0.5.3
- resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3"
+"babel-plugin-polyfill-regenerator@npm:^0.5.4":
+ version: 0.5.4
+ resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4"
dependencies:
- "@babel/helper-define-polyfill-provider": "npm:^0.4.3"
+ "@babel/helper-define-polyfill-provider": "npm:^0.4.4"
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: cc32313b9ebbf1d7bedc33524a861136b9e5d3b6e9be317ac360a1c2a59ae5ed1b465a6c68b2715cdefb089780ddfb0c11f4a148e49827a947beee76e43da598
+ checksum: 0b903f5fe2f8c487b4260935dfe60bd9a95bcaee7ae63958f063045093b16d4e8288c232199d411261300aa21f6b106a3cb83c42cc996de013b337f5825a79fe
languageName: node
linkType: hard
@@ -5160,7 +5207,7 @@ __metadata:
languageName: node
linkType: hard
-"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2":
+"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2":
version: 4.22.2
resolution: "browserslist@npm:4.22.2"
dependencies:
@@ -5540,9 +5587,9 @@ __metadata:
linkType: hard
"classnames@npm:^2.2.5, classnames@npm:^2.3.2":
- version: 2.3.2
- resolution: "classnames@npm:2.3.2"
- checksum: cd50ead57b4f97436aaa9f9885c6926323efc7c2bea8e3d4eb10e4e972aa6a1cfca1c7a0e06f8a199ca7498d4339e30bb6002e589e61c9f21248cbf3e8b0b18d
+ version: 2.5.1
+ resolution: "classnames@npm:2.5.1"
+ checksum: afff4f77e62cea2d79c39962980bf316bacb0d7c49e13a21adaadb9221e1c6b9d3cdb829d8bb1b23c406f4e740507f37e1dcf506f7e3b7113d17c5bab787aa69
languageName: node
linkType: hard
@@ -5790,9 +5837,9 @@ __metadata:
languageName: node
linkType: hard
-"compression-webpack-plugin@npm:6.1.1":
- version: 6.1.1
- resolution: "compression-webpack-plugin@npm:6.1.1"
+"compression-webpack-plugin@npm:^6.1.2":
+ version: 6.1.2
+ resolution: "compression-webpack-plugin@npm:6.1.2"
dependencies:
cacache: "npm:^15.0.5"
find-cache-dir: "npm:^3.3.1"
@@ -5801,22 +5848,7 @@ __metadata:
webpack-sources: "npm:^1.4.3"
peerDependencies:
webpack: ^4.0.0 || ^5.0.0
- checksum: 2f2ac6ba8f3cf48b523efc5d8e50e0172f4676f47bf5d62f2365185a6d37e96c2dc090e74f5f30ddf4be092e2400c5c7e1fb34301f3f939acf4c9944e1356525
- languageName: node
- linkType: hard
-
-"compression-webpack-plugin@patch:compression-webpack-plugin@npm%3A6.1.1#~/.yarn/patches/compression-webpack-plugin-npm-6.1.1-3a2a65987e.patch":
- version: 6.1.1
- resolution: "compression-webpack-plugin@patch:compression-webpack-plugin@npm%3A6.1.1#~/.yarn/patches/compression-webpack-plugin-npm-6.1.1-3a2a65987e.patch::version=6.1.1&hash=129d4d"
- dependencies:
- cacache: "npm:^15.0.5"
- find-cache-dir: "npm:^3.3.1"
- schema-utils: "npm:^3.0.0"
- serialize-javascript: "npm:^5.0.1"
- webpack-sources: "npm:^1.4.3"
- peerDependencies:
- webpack: ^4.0.0 || ^5.0.0
- checksum: 68d130bcf7dcc3fd13a286dc57426640732593db4a2f326a4b159c7c32e856e2752e4d43e5f44dc42d07a0e477ad08c08d9aba029a958ad57e71f06deb42784f
+ checksum: 966b1417bbeaa55af8d4b7911cf4435a187adbaaff34d3e9f2ef2b7ff747877469ff965d5b653a2211eaecfd0ce8b3c834d3a8f5519aa15dd79e68bbfea0b69e
languageName: node
linkType: hard
@@ -5921,12 +5953,12 @@ __metadata:
languageName: node
linkType: hard
-"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2":
- version: 3.33.1
- resolution: "core-js-compat@npm:3.33.1"
+"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1":
+ version: 3.35.0
+ resolution: "core-js-compat@npm:3.35.0"
dependencies:
- browserslist: "npm:^4.22.1"
- checksum: 9c7361b370eac30756e6ec52469988d62c6110759efa1c85edd15e6b30f05ace8319a9cc0671bf596a98e7e81c67ad693ceaab2691b85cb62c636da1afe8feb9
+ browserslist: "npm:^4.22.2"
+ checksum: 8c4379240b8decb94b21e81d5ba6f768418721061923b28c9dfc97574680c35d778d39c010207402fc7c8308a68a4cf6d5e02bcbcb96e931c52e6e0dce29a68c
languageName: node
linkType: hard
@@ -5938,9 +5970,9 @@ __metadata:
linkType: hard
"core-js@npm:^3.30.2":
- version: 3.34.0
- resolution: "core-js@npm:3.34.0"
- checksum: 408a77898abe03bf3e5dec2a451c36f4745081cca9022f8bdf9b817d57bb6d3a534d555f47a4b95e1daa5e21dbc79122eac2402e25720d425f5925127e55dcd8
+ version: 3.35.0
+ resolution: "core-js@npm:3.35.0"
+ checksum: 1d545ff4406f2afa5e681f44b45ed5f7f119d158b380234d5aa7787ce7e47fc7a635b98b74c28c766ba8191e3db8c2316ad6ab4ff1ddecbc3fd618413a52c29c
languageName: node
linkType: hard
@@ -7385,9 +7417,9 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-jsdoc@npm:^46.1.0":
- version: 46.9.1
- resolution: "eslint-plugin-jsdoc@npm:46.9.1"
+"eslint-plugin-jsdoc@npm:^48.0.0":
+ version: 48.0.1
+ resolution: "eslint-plugin-jsdoc@npm:48.0.1"
dependencies:
"@es-joy/jsdoccomment": "npm:~0.41.0"
are-docs-informative: "npm:^0.0.2"
@@ -7399,8 +7431,8 @@ __metadata:
semver: "npm:^7.5.4"
spdx-expression-parse: "npm:^4.0.0"
peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- checksum: d15d68797e85bb7b6fdcfc1170653683c16ab1d62c2e9c537101e774cb3231913e2bc4781f2bb808d074adce5699e5b545e450c6801b637c6434587d226ad6ac
+ eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
+ checksum: 9b211cfb2e07e076dad12681cd2045c65766dd24fe9399fd0adeaf6f8785f9a4dd58608f1183195f63d3c6c91013aa1cf9edc9101580cff9cb60e1e688f456f9
languageName: node
linkType: hard
@@ -7431,21 +7463,22 @@ __metadata:
linkType: hard
"eslint-plugin-prettier@npm:^5.0.0":
- version: 5.0.1
- resolution: "eslint-plugin-prettier@npm:5.0.1"
+ version: 5.1.2
+ resolution: "eslint-plugin-prettier@npm:5.1.2"
dependencies:
prettier-linter-helpers: "npm:^1.0.0"
- synckit: "npm:^0.8.5"
+ synckit: "npm:^0.8.6"
peerDependencies:
"@types/eslint": ">=8.0.0"
eslint: ">=8.0.0"
+ eslint-config-prettier: "*"
prettier: ">=3.0.0"
peerDependenciesMeta:
"@types/eslint":
optional: true
eslint-config-prettier:
optional: true
- checksum: 08e2c7bed93d9f7c86e9aa0bd4f5cc51f65233a446ddfda11e821f12819e1e4be62cfbc2a4e17169c76fded1c4de7371e37e5f2525e81695decaf6c652a41fb0
+ checksum: e16c9fbb0e9f8da45bdbb1cf6e4a190266235c3686deede3815196d2604bbe2bac531d1fc9adc3c0b9a03d88b55bd3bfaa4f9d85e34e73dc040d545a1931fab9
languageName: node
linkType: hard
@@ -7977,12 +8010,12 @@ __metadata:
languageName: node
linkType: hard
-"file-entry-cache@npm:^7.0.2":
- version: 7.0.2
- resolution: "file-entry-cache@npm:7.0.2"
+"file-entry-cache@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "file-entry-cache@npm:8.0.0"
dependencies:
- flat-cache: "npm:^3.2.0"
- checksum: 822664e35c3e295e6a8ca7ec490d8d8077017607f41f94b29922f1f49c6dd07025048e3ed528e2909a1439eba66d60f802c0774aa612cf6ee053ee4ecc16c8c5
+ flat-cache: "npm:^4.0.0"
+ checksum: 9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638
languageName: node
linkType: hard
@@ -8116,7 +8149,7 @@ __metadata:
languageName: node
linkType: hard
-"flat-cache@npm:^3.0.4, flat-cache@npm:^3.2.0":
+"flat-cache@npm:^3.0.4":
version: 3.2.0
resolution: "flat-cache@npm:3.2.0"
dependencies:
@@ -8127,6 +8160,17 @@ __metadata:
languageName: node
linkType: hard
+"flat-cache@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "flat-cache@npm:4.0.0"
+ dependencies:
+ flatted: "npm:^3.2.9"
+ keyv: "npm:^4.5.4"
+ rimraf: "npm:^5.0.5"
+ checksum: 8f99e27bb3de94e91e7b4ca5120488cdc2b7f8cd952a538f1a566101963057eb42ca318e9fac0d36987dcca34316ff04b61c1dc3dcc8084f6f5e801a52a8e547
+ languageName: node
+ linkType: hard
+
"flat@npm:^5.0.2":
version: 5.0.2
resolution: "flat@npm:5.0.2"
@@ -10774,7 +10818,7 @@ __metadata:
languageName: node
linkType: hard
-"keyv@npm:^4.5.3":
+"keyv@npm:^4.5.3, keyv@npm:^4.5.4":
version: 4.5.4
resolution: "keyv@npm:4.5.4"
dependencies:
@@ -11302,10 +11346,10 @@ __metadata:
languageName: node
linkType: hard
-"meow@npm:^12.1.1":
- version: 12.1.1
- resolution: "meow@npm:12.1.1"
- checksum: a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088
+"meow@npm:^13.0.0":
+ version: 13.0.0
+ resolution: "meow@npm:13.0.0"
+ checksum: fab0f91578154c048e792a81704f3f28099ffff900f364df8a85f6e770a57e1c124859a25e186186e149dad30692c7893af0dfd71517bea343bfe5d749b1fa04
languageName: node
linkType: hard
@@ -11462,6 +11506,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:9.0.3, minimatch@npm:^9.0.1":
+ version: 9.0.3
+ resolution: "minimatch@npm:9.0.3"
+ dependencies:
+ brace-expansion: "npm:^2.0.1"
+ checksum: 85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac
+ languageName: node
+ linkType: hard
+
"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
@@ -11480,15 +11533,6 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.1":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
- dependencies:
- brace-expansion: "npm:^2.0.1"
- checksum: 85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac
- languageName: node
- linkType: hard
-
"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
@@ -13653,8 +13697,8 @@ __metadata:
linkType: hard
"react-redux-loading-bar@npm:^5.0.4":
- version: 5.0.5
- resolution: "react-redux-loading-bar@npm:5.0.5"
+ version: 5.0.7
+ resolution: "react-redux-loading-bar@npm:5.0.7"
dependencies:
prop-types: "npm:^15.7.2"
react-lifecycles-compat: "npm:^3.0.4"
@@ -13663,7 +13707,7 @@ __metadata:
react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-redux: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
redux: ^3.0.0 || ^4.0.0 || ^5.0.0
- checksum: 0dbac046c5b8b6bd209ccfc25ccc55dc9158cd737b42b68fd1900dfe46a59c9c7e2b0082d8901b749e7cf2d7e23074590aae74f350a814f205105f47895a6214
+ checksum: 45333093e7d28df923a657ad89ffe4673d7bd135ef57c0143fb4d868f21b57aeb9044691f553f7d2afbcc9080a1f8cd3cec5b274c80cb57faf0e87a70f7a2cce
languageName: node
linkType: hard
@@ -14381,7 +14425,7 @@ __metadata:
languageName: node
linkType: hard
-"rimraf@npm:^5.0.1":
+"rimraf@npm:^5.0.1, rimraf@npm:^5.0.5":
version: 5.0.5
resolution: "rimraf@npm:5.0.5"
dependencies:
@@ -14534,15 +14578,15 @@ __metadata:
linkType: hard
"sass@npm:^1.62.1":
- version: 1.69.5
- resolution: "sass@npm:1.69.5"
+ version: 1.69.7
+ resolution: "sass@npm:1.69.7"
dependencies:
chokidar: "npm:>=3.0.0 <4.0.0"
immutable: "npm:^4.0.0"
source-map-js: "npm:>=0.6.2 <2.0.0"
bin:
sass: sass.js
- checksum: a9003a9482f2e467fc412cfe58ba4fa14fb78bef7e1283ce5d64a065f8a31114ec3bbf5d4e724f94eb8512c32c768a6f91f228c7f16a26a300bbf4db293b5608
+ checksum: 773d0938e7d4ff3972d3fda3132f34fe98a2f712e028a58e28fecd615434795eff3266eddc38d5e13f03b90c0d6360d0e737b30bff2949a47280c64a18e0fb18
languageName: node
linkType: hard
@@ -15646,13 +15690,13 @@ __metadata:
linkType: hard
"stylelint@npm:^16.0.2":
- version: 16.0.2
- resolution: "stylelint@npm:16.0.2"
+ version: 16.1.0
+ resolution: "stylelint@npm:16.1.0"
dependencies:
- "@csstools/css-parser-algorithms": "npm:^2.3.2"
- "@csstools/css-tokenizer": "npm:^2.2.1"
- "@csstools/media-query-list-parser": "npm:^2.1.5"
- "@csstools/selector-specificity": "npm:^3.0.0"
+ "@csstools/css-parser-algorithms": "npm:^2.4.0"
+ "@csstools/css-tokenizer": "npm:^2.2.2"
+ "@csstools/media-query-list-parser": "npm:^2.1.6"
+ "@csstools/selector-specificity": "npm:^3.0.1"
balanced-match: "npm:^2.0.0"
colord: "npm:^2.9.3"
cosmiconfig: "npm:^9.0.0"
@@ -15661,7 +15705,7 @@ __metadata:
debug: "npm:^4.3.4"
fast-glob: "npm:^3.3.2"
fastest-levenshtein: "npm:^1.0.16"
- file-entry-cache: "npm:^7.0.2"
+ file-entry-cache: "npm:^8.0.0"
global-modules: "npm:^2.0.0"
globby: "npm:^11.1.0"
globjoin: "npm:^0.1.4"
@@ -15671,7 +15715,7 @@ __metadata:
is-plain-object: "npm:^5.0.0"
known-css-properties: "npm:^0.29.0"
mathml-tag-names: "npm:^2.1.3"
- meow: "npm:^12.1.1"
+ meow: "npm:^13.0.0"
micromatch: "npm:^4.0.5"
normalize-path: "npm:^3.0.0"
picocolors: "npm:^1.0.0"
@@ -15689,7 +15733,7 @@ __metadata:
write-file-atomic: "npm:^5.0.1"
bin:
stylelint: bin/stylelint.mjs
- checksum: 5ec755e209beb1877ff40d50f18c1ebb05bf251925da1f98f28fb3911e4031195eb86adaf641ac5cdb01ba973f4c999bc0c6b0270d08c1d5c070adbdd9e734cf
+ checksum: 765eea0b07319d1e7989502c07b8b5794938e5a8542bec00990b09ec10c3f7006891689930099e948d06c9ef9982066edb98b1ea64a435138a6b0f0905eb2b87
languageName: node
linkType: hard
@@ -15821,13 +15865,13 @@ __metadata:
languageName: node
linkType: hard
-"synckit@npm:^0.8.5":
- version: 0.8.5
- resolution: "synckit@npm:0.8.5"
+"synckit@npm:^0.8.6":
+ version: 0.8.6
+ resolution: "synckit@npm:0.8.6"
dependencies:
- "@pkgr/utils": "npm:^2.3.1"
- tslib: "npm:^2.5.0"
- checksum: 9827f828cabc404b3a147c38f824c8d5b846eb6f65189d965aa0b71ea8ecda5048f8f50b4bdfd8813148844175233cff56c6bc8d87a7118cf10707df870519f4
+ "@pkgr/utils": "npm:^2.4.2"
+ tslib: "npm:^2.6.2"
+ checksum: 200528062e3915a0190a4c6b1e01436fcfdf812e2e8d977746746f3998bb4182d758af760e51b06a64f8323e705735aff7b4b3efc4a0ab5f75eaccc044a8cfcc
languageName: node
linkType: hard
@@ -16165,7 +16209,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:2.6.2, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0":
+"tslib@npm:2.6.2, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2":
version: 2.6.2
resolution: "tslib@npm:2.6.2"
checksum: e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb
@@ -17533,8 +17577,8 @@ __metadata:
linkType: hard
"ws@npm:^8.11.0, ws@npm:^8.12.1, ws@npm:^8.14.2":
- version: 8.15.1
- resolution: "ws@npm:8.15.1"
+ version: 8.16.0
+ resolution: "ws@npm:8.16.0"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
@@ -17543,7 +17587,7 @@ __metadata:
optional: true
utf-8-validate:
optional: true
- checksum: 9964360dd5ab35c7376bd7c4295a3c8bd44ea0838c9413742548a6fb3ec371fc6c18552d5b8e76bdc21536db1909765612815bae072674b5ec69971605395a96
+ checksum: a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a
languageName: node
linkType: hard