Compare commits

...

25 commits

Author SHA1 Message Date
0105d08422 Merge remote-tracking branch 'upstream/main'
All checks were successful
continuous-integration/drone/push Build is passing
2024-10-01 11:25:05 +02:00
Matt Jankowski
f811fcb2b2
Improve alignment of icons on admin roles list (#32153) 2024-10-01 09:08:29 +00:00
Matt Jankowski
675d3ea5c1
Extract dashboard partial for admin instance page (#32189) 2024-10-01 08:36:41 +00:00
Renaud Chaput
497e8d00b9
Bump main version 4.4.0-alpha.1 (#32180) 2024-10-01 08:36:22 +00:00
renovate[bot]
d9973f3b70
Update peter-evans/create-pull-request action to v7.0.5 (#32164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 08:28:50 +00:00
Matt Jankowski
685067efd1
Avoid id duplication conflict with main navigation from settings profile link (#32181) 2024-10-01 08:23:05 +00:00
Renaud Chaput
1be55ce244
Fix follow notifications from streaming being grouped (#32179) 2024-10-01 08:22:14 +00:00
github-actions[bot]
5839ee434b
New Crowdin Translations (automated) (#32195)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-10-01 08:21:17 +00:00
Matt Jankowski
0b6d217b9e
Use account display name for pretend blog example in attribution area (#32188) 2024-10-01 08:19:53 +00:00
Claire
07cd1fd1ef
Support translation branches in Crowdin (#32174) 2024-09-30 17:32:23 +00:00
Claire
03210085b7
Bump version to 4.3.0-rc.1 (#32124) 2024-09-30 10:42:59 +00:00
Claire
0c872beed4
Merge commit from fork
This should not change the set of words matched by `USERNAME_RE` but does
change the one matched by `MENTION_RE`. Indeed, the previous regexp allowed
a domain part to start with `.` or `-`, which the new regexp does not allow.
2024-09-30 12:25:54 +02:00
Claire
e22eff8900
Remove regexp timeout feature (#32169) 2024-09-30 09:41:06 +00:00
renovate[bot]
431b382563
Update dependency sass to v1.79.4 (#32139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 08:55:18 +00:00
renovate[bot]
bf7cfba48e
Update DefinitelyTyped types (non-major) (#32163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 08:53:52 +00:00
github-actions[bot]
f477dc399e
New Crowdin Translations (automated) (#32140)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-30 08:53:29 +00:00
renovate[bot]
6037714f76
Update dependency propshaft to v1.0.1 (#32158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 08:47:57 +00:00
Eugen Rochko
c352ce6f45
Fix missing permission on new embeds making them unclickable (#32135) 2024-09-30 08:20:20 +00:00
Christian Schmidt
9d664f87a0
Mailer layout fixes (#32132) 2024-09-27 19:41:41 +00:00
Matt Jankowski
24d3ce7bab
Add no-toolbar state for "nothing here" batch table views (#32128) 2024-09-27 19:38:44 +00:00
Eugen Rochko
11a12e56b3
Change media reordering design in the compose form in web UI (#32093) 2024-09-27 15:09:39 +00:00
Matt Jankowski
cdd7526531
Remove completed TODO note in tags request spec (#32108) 2024-09-27 08:22:40 +00:00
Matt Jankowski
e02e88bff4
Use previously extracted model constants in form maxlength attributes (#32113) 2024-09-27 08:21:27 +00:00
Matt Jankowski
04dd3a9eb6
Wrap webhook event label with samp tag (#32115) 2024-09-27 08:20:21 +00:00
Matt Jankowski
675ec1a0ad
Only show recently used tags hint when they are present (#32120) 2024-09-27 08:18:42 +00:00
103 changed files with 1041 additions and 373 deletions

View file

@ -0,0 +1,69 @@
name: Crowdin / Download translations (stable branches)
on:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
download-translations-stable:
runs-on: ubuntu-latest
if: github.repository == 'mastodon/mastodon'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Increase Git http.postBuffer
# This is needed due to a bug in Ubuntu's cURL version?
# See https://github.com/orgs/community/discussions/55820
run: |
git config --global http.version HTTP/1.1
git config --global http.postBuffer 157286400
# Download the translation files from Crowdin
- name: crowdin action
uses: crowdin/github-action@v2
with:
upload_sources: false
upload_translations: false
download_translations: true
crowdin_branch_name: ${{ github.base_ref || github.ref_name }}
push_translations: false
create_pull_request: false
env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# As the files are extracted from a Docker container, they belong to root:root
# We need to fix this before the next steps
- name: Fix file permissions
run: sudo chown -R runner:docker .
# This is needed to run the normalize step
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Run i18n normalize task
run: bundle exec i18n-tasks normalize
# Create or update the pull request
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.5
with:
commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations for ${{ github.base_ref || github.ref_name }} (automated)'
author: 'GitHub Actions <noreply@github.com>'
body: |
New Crowdin translations, automated with GitHub Actions
See `.github/workflows/crowdin-download.yml`
This PR will be updated every day with new translations.
Due to a limitation in GitHub Actions, checks are not running on this PR without manual action.
If you want to run the checks, then close and re-open it.
branch: i18n/crowdin/translations-${{ github.base_ref || github.ref_name }}
base: ${{ github.base_ref || github.ref_name }}
labels: i18n

View file

@ -52,7 +52,7 @@ jobs:
# Create or update the pull request # Create or update the pull request
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.1 uses: peter-evans/create-pull-request@v7.0.5
with: with:
commit-message: 'New Crowdin translations' commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations (automated)' title: 'New Crowdin Translations (automated)'

View file

@ -31,7 +31,7 @@ jobs:
upload_sources: true upload_sources: true
upload_translations: false upload_translations: false
download_translations: false download_translations: false
crowdin_branch_name: main crowdin_branch_name: ${{ github.base_ref || github.ref_name }}
env: env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }} CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}

View file

@ -10,12 +10,13 @@ The following changelog entries focus on changes visible to users, administrator
- **Add confirmation interstitial instead of silently redirecting logged-out visitors to remote resources** (#27792, #28902, and #30651 by @ClearlyClaire and @Gargron)\ - **Add confirmation interstitial instead of silently redirecting logged-out visitors to remote resources** (#27792, #28902, and #30651 by @ClearlyClaire and @Gargron)\
This fixes a longstanding open redirect in Mastodon, at the cost of added friction when local links to remote resources are shared. This fixes a longstanding open redirect in Mastodon, at the cost of added friction when local links to remote resources are shared.
- Fix ReDoS vulnerability on some Ruby versions ([GHSA-jpxp-r43f-rhvx](https://github.com/mastodon/mastodon/security/advisories/GHSA-jpxp-r43f-rhvx))
- Change `form-action` Content-Security-Policy directive to be more restrictive (#26897 by @ClearlyClaire) - Change `form-action` Content-Security-Policy directive to be more restrictive (#26897 by @ClearlyClaire)
- Update dependencies - Update dependencies
### Added ### Added
- **Add server-side notification grouping** (#29889, #30576, #30685, #30688, #30707, #30776, #30779, #30781, #30440, #31062, #31098, #31076, #31111, #31123, #31223, #31214, #31224, #31299, #31325, #31347, #31304, #31326, #31384, #31403, #31433, #31509, #31486, #31513, #31592, #31594, #31638, #31746, #31652, #31709, #31725, #31745, #31613, #31657, #31840, #31610 and #31929 by @ClearlyClaire, @Gargron, @mgmn, and @renchap)\ - **Add server-side notification grouping** (#29889, #30576, #30685, #30688, #30707, #30776, #30779, #30781, #30440, #31062, #31098, #31076, #31111, #31123, #31223, #31214, #31224, #31299, #31325, #31347, #31304, #31326, #31384, #31403, #31433, #31509, #31486, #31513, #31592, #31594, #31638, #31746, #31652, #31709, #31725, #31745, #31613, #31657, #31840, #31610, #31929, #32089 and #32085 by @ClearlyClaire, @Gargron, @mgmn, and @renchap)\
Group notifications of the same type for the same target, so that your notifications no longer get cluttered by boost and favorite notifications as soon as a couple of your posts get traction.\ Group notifications of the same type for the same target, so that your notifications no longer get cluttered by boost and favorite notifications as soon as a couple of your posts get traction.\
This is done server-side so that clients can efficiently get relevant groups without having to go through numerous pages of individual notifications.\ This is done server-side so that clients can efficiently get relevant groups without having to go through numerous pages of individual notifications.\
As part of this, the visual design of the entire notifications feature has been revamped.\ As part of this, the visual design of the entire notifications feature has been revamped.\
@ -27,7 +28,7 @@ The following changelog entries focus on changes visible to users, administrator
- `GET /api/v2/notifications/:group_key/accounts`: https://docs.joinmastodon.org/methods/grouped_notifications/#get-group-accounts - `GET /api/v2/notifications/:group_key/accounts`: https://docs.joinmastodon.org/methods/grouped_notifications/#get-group-accounts
- `POST /api/v2/notifications/:group_key/dimsiss`: https://docs.joinmastodon.org/methods/grouped_notifications/#dismiss-group - `POST /api/v2/notifications/:group_key/dimsiss`: https://docs.joinmastodon.org/methods/grouped_notifications/#dismiss-group
- `GET /api/v2/notifications/:unread_count`: https://docs.joinmastodon.org/methods/grouped_notifications/#unread-group-count - `GET /api/v2/notifications/:unread_count`: https://docs.joinmastodon.org/methods/grouped_notifications/#unread-group-count
- **Add notification policies, filtered notifications and notification requests** (#29366, #29529, #29433, #29565, #29567, #29572, #29575, #29588, #29646, #29652, #29658, #29666, #29693, #29699, #29737, #29706, #29570, #29752, #29810, #29826, #30114, #30251, #30559, #29868, #31008, #31011, #30996, #31149, #31220, #31222, #31225, #31242, #31262, #31250, #31273, #31310, #31316, #31322, #31329, #31324, #31331, #31343, #31342, #31309, #31358, #31378, #31406, #31256, #31456, #31419, #31457, #31508, #31540, #31541, and #31723 by @ClearlyClaire, @Gargron, @TheEssem, @mgmn, @oneiros, and @renchap)\ - **Add notification policies, filtered notifications and notification requests** (#29366, #29529, #29433, #29565, #29567, #29572, #29575, #29588, #29646, #29652, #29658, #29666, #29693, #29699, #29737, #29706, #29570, #29752, #29810, #29826, #30114, #30251, #30559, #29868, #31008, #31011, #30996, #31149, #31220, #31222, #31225, #31242, #31262, #31250, #31273, #31310, #31316, #31322, #31329, #31324, #31331, #31343, #31342, #31309, #31358, #31378, #31406, #31256, #31456, #31419, #31457, #31508, #31540, #31541, #31723 and #32062 by @ClearlyClaire, @Gargron, @TheEssem, @mgmn, @oneiros, and @renchap)\
The old “Block notifications from non-followers”, “Block notifications from people you don't follow” and “Block direct messages from people you don't follow” notification settings have been replaced by a new set of settings found directly in the notification column.\ The old “Block notifications from non-followers”, “Block notifications from people you don't follow” and “Block direct messages from people you don't follow” notification settings have been replaced by a new set of settings found directly in the notification column.\
You can now separately filter or drop notifications from people you don't follow, people who don't follow you, accounts created within the past 30 days, as well as unsolicited private mentions, and accounts limited by the moderation.\ You can now separately filter or drop notifications from people you don't follow, people who don't follow you, accounts created within the past 30 days, as well as unsolicited private mentions, and accounts limited by the moderation.\
Instead of being outright dropped, notifications that you chose to filter are put in a separate “Filtered notifications” box that you can review separately without it clogging your main notifications.\ Instead of being outright dropped, notifications that you chose to filter are put in a separate “Filtered notifications” box that you can review separately without it clogging your main notifications.\
@ -76,7 +77,11 @@ The following changelog entries focus on changes visible to users, administrator
Clicking the domain of a user in their profile will now open a tooltip with a short explanation about servers and federation. Clicking the domain of a user in their profile will now open a tooltip with a short explanation about servers and federation.
- **Add support for Redis sentinel** (#31694, #31623, #31744, #31767, and #31768 by @ThisIsMissEm and @oneiros)\ - **Add support for Redis sentinel** (#31694, #31623, #31744, #31767, and #31768 by @ThisIsMissEm and @oneiros)\
See https://docs.joinmastodon.org/admin/scaling/#redis-sentinel See https://docs.joinmastodon.org/admin/scaling/#redis-sentinel
- Add ability to reorder uploaded media before posting in web UI (#28456 by @Gargron) - **Add ability to reorder uploaded media before posting in web UI** (#28456 and #32093 by @Gargron)
- Add “A Mastodon update is available.” message on admin dashboard for non-bugfix updates (#32106 by @ClearlyClaire)
- Add ability to view alt text by clicking the ALT badge in web UI (#32058 by @Gargron)
- Add preview of followers removed in domain block modal in web UI (#32032 and #32105 by @ClearlyClaire and @Gargron)
- Add reblogs and favourites counts to statuses in ActivityPub (#32007 by @Gargron)
- Add moderation interface for searching hashtags (#30880 by @ThisIsMissEm) - Add moderation interface for searching hashtags (#30880 by @ThisIsMissEm)
- Add ability for admins to configure instance favicon and logo (#30040, #30208, #30259, #30375, #30734, #31016, and #30205 by @ClearlyClaire, @FawazFarid, @JasonPunyon, @mgmn, and @renchap)\ - Add ability for admins to configure instance favicon and logo (#30040, #30208, #30259, #30375, #30734, #31016, and #30205 by @ClearlyClaire, @FawazFarid, @JasonPunyon, @mgmn, and @renchap)\
This is also exposed through the REST API: https://docs.joinmastodon.org/entities/Instance/#icon This is also exposed through the REST API: https://docs.joinmastodon.org/entities/Instance/#icon
@ -122,14 +127,14 @@ The following changelog entries focus on changes visible to users, administrator
- Add Interlingue and Interlingua to interface languages (#28630 and #30828 by @Dhghomon and @renchap) - Add Interlingue and Interlingua to interface languages (#28630 and #30828 by @Dhghomon and @renchap)
- Add Kashubian, Pennsylvania Dutch, Vai, Jawi Malay, Mohawk and Low German to posting languages (#26024, #26634, #27136, #29098, #27115, and #27434 by @EngineerDali, @HelgeKrueger, and @gunchleoc) - Add Kashubian, Pennsylvania Dutch, Vai, Jawi Malay, Mohawk and Low German to posting languages (#26024, #26634, #27136, #29098, #27115, and #27434 by @EngineerDali, @HelgeKrueger, and @gunchleoc)
- Add option to use native Ruby driver for Redis through `REDIS_DRIVER=ruby` (#30717 by @vmstan) - Add option to use native Ruby driver for Redis through `REDIS_DRIVER=ruby` (#30717 by @vmstan)
- Add support for libvips in addition to ImageMagick (#30090, #30590, #30597, #30632, #30857, #30869, and #30858 by @ClearlyClaire, @Gargron, and @mjankowski)\ - Add support for libvips in addition to ImageMagick (#30090, #30590, #30597, #30632, #30857, #30869, #30858 and #32104 by @ClearlyClaire, @Gargron, and @mjankowski)\
Server admins can now use libvips as a faster and lighter alternative to ImageMagick for processing user-uploaded images.\ Server admins can now use libvips as a faster and lighter alternative to ImageMagick for processing user-uploaded images.\
This requires libvips 8.13 or newer, and needs to be enabled with `MASTODON_USE_LIBVIPS=true`.\ This requires libvips 8.13 or newer, and needs to be enabled with `MASTODON_USE_LIBVIPS=true`.\
This is enabled by default in the official Docker images, and is intended to completely replace ImageMagick in the future. This is enabled by default in the official Docker images, and is intended to completely replace ImageMagick in the future.
- Add validations to `Web::PushSubscription` (#30540 and #30542 by @ThisIsMissEm) - Add validations to `Web::PushSubscription` (#30540 and #30542 by @ThisIsMissEm)
- Add anchors to each authorized application in `/oauth/authorized_applications` (#31677 by @fowl2) - Add anchors to each authorized application in `/oauth/authorized_applications` (#31677 by @fowl2)
- Add active animation to header settings button (#30221, #30307, and #30388 by @daudix) - Add active animation to header settings button (#30221, #30307, and #30388 by @daudix)
- Add OpenTelemetry instrumentation (#30130, #30322, #30353, and #30350 by @julianocosta89, @renchap, and @robbkidd)\ - Add OpenTelemetry instrumentation (#30130, #30322, #30353, #30350 and #31998 by @julianocosta89, @renchap, @robbkidd and @timetinytim)\
See https://docs.joinmastodon.org/admin/config/#otel for documentation See https://docs.joinmastodon.org/admin/config/#otel for documentation
- Add API to get multiple accounts and statuses (#27871 and #30465 by @ClearlyClaire)\ - Add API to get multiple accounts and statuses (#27871 and #30465 by @ClearlyClaire)\
This adds `GET /api/v1/accounts` and `GET /api/v1/statuses` to the REST API, see https://docs.joinmastodon.org/methods/accounts/#index and https://docs.joinmastodon.org/methods/statuses/#index This adds `GET /api/v1/accounts` and `GET /api/v1/statuses` to the REST API, see https://docs.joinmastodon.org/methods/accounts/#index and https://docs.joinmastodon.org/methods/statuses/#index
@ -138,7 +143,6 @@ The following changelog entries focus on changes visible to users, administrator
- Add RFC8414 OAuth 2.0 server metadata (#29191 by @ThisIsMissEm) - Add RFC8414 OAuth 2.0 server metadata (#29191 by @ThisIsMissEm)
- Add loading indicator and empty result message to advanced interface search (#30085 by @ClearlyClaire) - Add loading indicator and empty result message to advanced interface search (#30085 by @ClearlyClaire)
- Add `profile` OAuth 2.0 scope, allowing more limited access to user data (#29087 and #30357 by @ThisIsMissEm) - Add `profile` OAuth 2.0 scope, allowing more limited access to user data (#29087 and #30357 by @ThisIsMissEm)
- Add global Regexp timeout (#31928 by @ClearlyClaire)
- Add the role ID to the badge component (#29707 by @renchap) - Add the role ID to the badge component (#29707 by @renchap)
- Add diagnostic message for failure during CLI search deploy (#29462 by @mjankowski) - Add diagnostic message for failure during CLI search deploy (#29462 by @mjankowski)
- Add pagination `Link` headers on API accounts/statuses when pinned true (#29442 by @mjankowski) - Add pagination `Link` headers on API accounts/statuses when pinned true (#29442 by @mjankowski)
@ -167,15 +171,15 @@ The following changelog entries focus on changes visible to users, administrator
- **Change icons throughout the web interface** (#27385, #27539, #27555, #27579, #27700, #27817, #28519, #28709, #28064, #28775, #28780, #27924, #29294, #29395, #29537, #29569, #29610, #29612, #29649, #29844, #27780, #30974, #30963, #30962, #30961, #31362, #31363, #31359, #31371, #31360, #31512, #31511, and #31525 by @ClearlyClaire, @Gargron, @arbolitoloco1, @mjankowski, @nclm, @renchap, @ronilaukkarinen, and @zunda)\ - **Change icons throughout the web interface** (#27385, #27539, #27555, #27579, #27700, #27817, #28519, #28709, #28064, #28775, #28780, #27924, #29294, #29395, #29537, #29569, #29610, #29612, #29649, #29844, #27780, #30974, #30963, #30962, #30961, #31362, #31363, #31359, #31371, #31360, #31512, #31511, and #31525 by @ClearlyClaire, @Gargron, @arbolitoloco1, @mjankowski, @nclm, @renchap, @ronilaukkarinen, and @zunda)\
This changes all the interface icons from FontAwesome to Material Symbols for a more modern look, consistent with the official Mastodon Android app.\ This changes all the interface icons from FontAwesome to Material Symbols for a more modern look, consistent with the official Mastodon Android app.\
In addition, better care is given to pixel alignment, and icon variants are used to better highlight active/inactive state. In addition, better care is given to pixel alignment, and icon variants are used to better highlight active/inactive state.
- **Change design of compose form in web UI** (#28119, #29059, #29248, #29372, #29384, #29417, #29456, #29406, #29651, #29659, and #31889 by @ClearlyClaire, @Gargron, @eai04191, @hinaloe, and @ronilaukkarinen)\ - **Change design of compose form in web UI** (#28119, #29059, #29248, #29372, #29384, #29417, #29456, #29406, #29651, #29659, #31889 and #32033 by @ClearlyClaire, @Gargron, @eai04191, @hinaloe, and @ronilaukkarinen)\
The compose form has been completely redesigned for a more modern and consistent look, as well as spelling out the chosen privacy setting and language name at all times.\ The compose form has been completely redesigned for a more modern and consistent look, as well as spelling out the chosen privacy setting and language name at all times.\
As part of this, the “Unlisted” privacy setting has been renamed to “Quiet public”. As part of this, the “Unlisted” privacy setting has been renamed to “Quiet public”.
- **Change design of modals in the web UI** (#29576, #29614, #29640, #29644, #30131, #30884, #31399, #31555, #31752, #31801, #31883, #31844, #31864, and #31943 by @ClearlyClaire, @Gargron, @tribela and @vmstan)\ - **Change design of modals in the web UI** (#29576, #29614, #29640, #29644, #30131, #30884, #31399, #31555, #31752, #31801, #31883, #31844, #31864, and #31943 by @ClearlyClaire, @Gargron, @tribela and @vmstan)\
The mute, block, and domain block confirmation modals have been completely redesigned to be clearer and include more detailed information on the action to be performed.\ The mute, block, and domain block confirmation modals have been completely redesigned to be clearer and include more detailed information on the action to be performed.\
They also have a more modern and consistent design, along with other confirmation modals in the application. They also have a more modern and consistent design, along with other confirmation modals in the application.
- **Change colors throughout the web UI** (#29522, #29584, #29653, #29779, #29803, #29809, #29808, #29828, #31034, #31168, #31266, #31348, #31349, #31361, and #31510 by @ClearlyClaire, @Gargron, @renchap, and @vmstan) - **Change colors throughout the web UI** (#29522, #29584, #29653, #29779, #29803, #29809, #29808, #29828, #31034, #31168, #31266, #31348, #31349, #31361, #31510 and #32128 by @ClearlyClaire, @Gargron, @mjankowski, @renchap, and @vmstan)
- **Change onboarding prompt to follow suggestions carousel in web UI** (#28878, #29272, and #31912 by @Gargron) - **Change onboarding prompt to follow suggestions carousel in web UI** (#28878, #29272, and #31912 by @Gargron)
- **Change email templates** (#28416, #28755, #28814, #29064, #28883, #29470, #29607, #29761, #29760, and #29879 by @ClearlyClaire, @Gargron, @hteumeuleu, and @mjankowski)\ - **Change email templates** (#28416, #28755, #28814, #29064, #28883, #29470, #29607, #29761, #29760, #29879, #32073 and #32132 by @c960657, @ClearlyClaire, @Gargron, @hteumeuleu, and @mjankowski)\
All emails to end-users have been completely redesigned with a fresh new look, providing more information while making them easier to read and keeping maximum compatibility across mail clients. All emails to end-users have been completely redesigned with a fresh new look, providing more information while making them easier to read and keeping maximum compatibility across mail clients.
- **Change follow recommendations algorithm** (#28314, #28433, #29017, #29108, #29306, #29550, #29619, and #31474 by @ClearlyClaire, @Gargron, @kernal053, @mjankowski, and @wheatear-dev)\ - **Change follow recommendations algorithm** (#28314, #28433, #29017, #29108, #29306, #29550, #29619, and #31474 by @ClearlyClaire, @Gargron, @kernal053, @mjankowski, and @wheatear-dev)\
This replaces the “past interactions” recommendation algorithm with a “friends of friends” algorithm that suggests accounts followed by people you follow, and a “similar profiles” algorithm that suggests accounts with a profile similar to your most recent follows.\ This replaces the “past interactions” recommendation algorithm with a “friends of friends” algorithm that suggests accounts followed by people you follow, and a “similar profiles” algorithm that suggests accounts with a profile similar to your most recent follows.\
@ -188,10 +192,17 @@ The following changelog entries focus on changes visible to users, administrator
Administrators may need to update their setup accordingly. Administrators may need to update their setup accordingly.
- Change how content warnings and filters are displayed in web UI (#31365, and #31761 by @Gargron) - Change how content warnings and filters are displayed in web UI (#31365, and #31761 by @Gargron)
- Change preview card processing to ignore `undefined` as canonical url (#31882 by @oneiros) - Change preview card processing to ignore `undefined` as canonical url (#31882 by @oneiros)
- Change embedded posts to use web UI (#31766 by @Gargron) - Change embedded posts to use web UI (#31766 and #32135 by @Gargron)
- Change inner borders in media galleries in web UI (#31852 by @Gargron) - Change inner borders in media galleries in web UI (#31852 by @Gargron)
- Change design of hide media button in web UI (#31807 by @Gargron) - Change design of media attachments and profile media tab in web UI (#31807, #32048, and #31967 by @Gargron)
- Change labels on thread indicators in web UI (#31806 by @Gargron) - Change labels on thread indicators in web UI (#31806 by @Gargron)
- Change label of "Data export" menu item in settings interface (#32099 by @c960657)
- Change responsive break points on navigation panel in web UI (#32034 by @Gargron)
- Change cursor to `not-allowed` on disabled buttons (#32076 by @mjankowski)
- Change OAuth authorization prompt to not refer to apps as “third-party” (#32005 by @Gargron)
- Change Mastodon to issue correct HTTP signatures by default (#31994 by @ClearlyClaire)
- Change zoom icon in web UI (#29683 by @Gargron)
- Change directory page to use URL query strings for options (#31980, #31977 and #31984 by @ClearlyClaire and @renchap)
- Change report action buttons to be disabled when action has already been taken (#31773, #31822, and #31899 by @ClearlyClaire and @ThisIsMissEm) - Change report action buttons to be disabled when action has already been taken (#31773, #31822, and #31899 by @ClearlyClaire and @ThisIsMissEm)
- Change width of columns in advanced web UI (#31762 by @Gargron) - Change width of columns in advanced web UI (#31762 by @Gargron)
- Change design of unread conversations in web UI (#31763 by @Gargron) - Change design of unread conversations in web UI (#31763 by @Gargron)
@ -254,6 +265,7 @@ The following changelog entries focus on changes visible to users, administrator
### Removed ### Removed
- Remove unused E2EE messaging code and related `crypto` OAuth scope (#31193, #31945, #31963, and #31964 by @ClearlyClaire and @mjankowski)
- Remove StatsD integration (replaced by OpenTelemetry) (#30240 by @mjankowski) - Remove StatsD integration (replaced by OpenTelemetry) (#30240 by @mjankowski)
- Remove `CacheBuster` default options (#30718 by @mjankowski) - Remove `CacheBuster` default options (#30718 by @mjankowski)
- Remove home marker updates from the Web UI (#22721 by @davbeck)\ - Remove home marker updates from the Web UI (#22721 by @davbeck)\
@ -269,9 +281,21 @@ The following changelog entries focus on changes visible to users, administrator
- Fix log out from user menu not working on Safari (#31402 by @renchap) - Fix log out from user menu not working on Safari (#31402 by @renchap)
- Fix various issues when in link preview card generation (#28748, #30017, #30362, #30173, #30853, #30929, #30933, #30957, #30987, and #31144 by @adamniedzielski, @oneiros, @phocks, @timothyjrogers, and @tribela) - Fix various issues when in link preview card generation (#28748, #30017, #30362, #30173, #30853, #30929, #30933, #30957, #30987, and #31144 by @adamniedzielski, @oneiros, @phocks, @timothyjrogers, and @tribela)
- Fix handling of missing links in Webfinger responses (#31030 by @adamniedzielski) - Fix handling of missing links in Webfinger responses (#31030 by @adamniedzielski)
- Fix error when accepting an appeal for sensitive posts deleted in the meantime (#32037 by @ClearlyClaire)
- Fix error when encountering reblog of deleted post in feed rebuild (#32001 by @ClearlyClaire)
- Fix Safari browser glitch related to horizontal scrolling (#31960 by @Gargron)
- Fix too many requests caused by relationship look-ups in web UI (#32042 by @Gargron)
- Fix links for reblogs in moderation interface (#31979 by @ClearlyClaire)
- Fix the appearance of avatars when they do not load (#31966 by @renchap)
- Fix spurious error notifications for aborted requests in web UI (#31952 by @c960657)
- Fix HTTP 500 error in `/api/v1/polls/:id/votes` when required `choices` parameter is missing (#25598 by @danielmbrasil) - Fix HTTP 500 error in `/api/v1/polls/:id/votes` when required `choices` parameter is missing (#25598 by @danielmbrasil)
- Fix security context sometimes not being added in LD-Signed activities (#31871 by @ClearlyClaire) - Fix security context sometimes not being added in LD-Signed activities (#31871 by @ClearlyClaire)
- Fix cross-origin loading of `inert.css` polyfill (#30687 by @louis77) - Fix cross-origin loading of `inert.css` polyfill (#30687 by @louis77)
- Fix wrapping in dashboard quick access buttons (#32043 by @renchap)
- Fix recently used tags hint being displayed in profile edition page when there is none (#32120 by @mjankowski)
- Fix checkbox lists on narrow screens in the settings interface (#32112 by @mjankowski)
- Fix the position of status action buttons being affected by interaction counters (#32084 by @renchap)
- Fix the summary of converted ActivityPub object types to be treated as HTML (#28629 by @Menrath)
- Fix cutoff of instance name in sign-up form (#30598 by @oneiros) - Fix cutoff of instance name in sign-up form (#30598 by @oneiros)
- Fix invalid date searches returning 503 errors (#31526 by @notchairmk) - Fix invalid date searches returning 503 errors (#31526 by @notchairmk)
- Fix invalid `visibility` values in `POST /api/v1/statuses` returning 500 errors (#31571 by @c960657) - Fix invalid `visibility` values in `POST /api/v1/statuses` returning 500 errors (#31571 by @c960657)
@ -285,7 +309,7 @@ The following changelog entries focus on changes visible to users, administrator
- Fix “Redirect URI” field not being marked as required in “New application” form (#30311 by @ThisIsMissEm) - Fix “Redirect URI” field not being marked as required in “New application” form (#30311 by @ThisIsMissEm)
- Fix right-to-left text in preview cards (#30930 by @ClearlyClaire) - Fix right-to-left text in preview cards (#30930 by @ClearlyClaire)
- Fix rack attack `match_type` value typo in logging config (#30514 by @mjankowski) - Fix rack attack `match_type` value typo in logging config (#30514 by @mjankowski)
- Fix various cases of duplicate, missing, or inconsistent borders or scrollbar styles (#31068, #31286, #31268, #31275, #31284, #31305, #31346, #31372, #31373, #31389, #31432, #31391, and #31445 by @valtlai and @vmstan) - Fix various cases of duplicate, missing, or inconsistent borders or scrollbar styles (#31068, #31286, #31268, #31275, #31284, #31305, #31346, #31372, #31373, #31389, #31432, #31391, #31445 and #32091 by @ClearlyClaire, @valtlai and @vmstan)
- Fix race condition in `POST /api/v1/push/subscription` (#30166 by @ClearlyClaire) - Fix race condition in `POST /api/v1/push/subscription` (#30166 by @ClearlyClaire)
- Fix post deletion not being delayed when those are part of an account warning (#30163 by @ClearlyClaire) - Fix post deletion not being delayed when those are part of an account warning (#30163 by @ClearlyClaire)
- Fix rendering error on `/start` when not logged in (#30023 by @timothyjrogers) - Fix rendering error on `/start` when not logged in (#30023 by @timothyjrogers)

View file

@ -347,7 +347,7 @@ GEM
activesupport (>= 3.0) activesupport (>= 3.0)
nokogiri (>= 1.6) nokogiri (>= 1.6)
io-console (0.7.2) io-console (0.7.2)
irb (1.14.0) irb (1.14.1)
rdoc (>= 4.0.0) rdoc (>= 4.0.0)
reline (>= 0.4.2) reline (>= 0.4.2)
jmespath (1.6.2) jmespath (1.6.2)
@ -601,7 +601,7 @@ GEM
actionmailer (>= 3) actionmailer (>= 3)
net-smtp net-smtp
premailer (~> 1.7, >= 1.7.9) premailer (~> 1.7, >= 1.7.9)
propshaft (1.0.0) propshaft (1.0.1)
actionpack (>= 7.0.0) actionpack (>= 7.0.0)
activesupport (>= 7.0.0) activesupport (>= 7.0.0)
rack rack

View file

@ -10,6 +10,7 @@ module SettingsHelper
end end
def featured_tags_hint(recently_used_tags) def featured_tags_hint(recently_used_tags)
recently_used_tags.present? &&
safe_join( safe_join(
[ [
t('simple_form.hints.featured_tag.name'), t('simple_form.hints.featured_tag.name'),

View file

@ -70,6 +70,10 @@ function dispatchAssociatedRecords(
const supportedGroupedNotificationTypes = ['favourite', 'reblog']; const supportedGroupedNotificationTypes = ['favourite', 'reblog'];
export function shouldGroupNotificationType(type: string) {
return supportedGroupedNotificationTypes.includes(type);
}
export const fetchNotifications = createDataLoadingThunk( export const fetchNotifications = createDataLoadingThunk(
'notificationGroups/fetch', 'notificationGroups/fetch',
async (_params, { getState }) => async (_params, { getState }) =>

View file

@ -1,81 +0,0 @@
import PropTypes from 'prop-types';
import { useCallback } from 'react';
import { FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import { useDispatch, useSelector } from 'react-redux';
import spring from 'react-motion/lib/spring';
import CloseIcon from '@/material-icons/400-20px/close.svg?react';
import EditIcon from '@/material-icons/400-24px/edit.svg?react';
import WarningIcon from '@/material-icons/400-24px/warning.svg?react';
import { undoUploadCompose, initMediaEditModal } from 'mastodon/actions/compose';
import { Blurhash } from 'mastodon/components/blurhash';
import { Icon } from 'mastodon/components/icon';
import Motion from 'mastodon/features/ui/util/optional_motion';
export const Upload = ({ id, onDragStart, onDragEnter, onDragEnd }) => {
const dispatch = useDispatch();
const media = useSelector(state => state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id));
const sensitive = useSelector(state => state.getIn(['compose', 'spoiler']));
const handleUndoClick = useCallback(() => {
dispatch(undoUploadCompose(id));
}, [dispatch, id]);
const handleFocalPointClick = useCallback(() => {
dispatch(initMediaEditModal(id));
}, [dispatch, id]);
const handleDragStart = useCallback(() => {
onDragStart(id);
}, [onDragStart, id]);
const handleDragEnter = useCallback(() => {
onDragEnter(id);
}, [onDragEnter, id]);
if (!media) {
return null;
}
const focusX = media.getIn(['meta', 'focus', 'x']);
const focusY = media.getIn(['meta', 'focus', 'y']);
const x = ((focusX / 2) + .5) * 100;
const y = ((focusY / -2) + .5) * 100;
const missingDescription = (media.get('description') || '').length === 0;
return (
<div className='compose-form__upload' draggable onDragStart={handleDragStart} onDragEnter={handleDragEnter} onDragEnd={onDragEnd}>
<Motion defaultStyle={{ scale: 0.8 }} style={{ scale: spring(1, { stiffness: 180, damping: 12 }) }}>
{({ scale }) => (
<div className='compose-form__upload__thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: !sensitive ? `url(${media.get('preview_url')})` : null, backgroundPosition: `${x}% ${y}%` }}>
{sensitive && <Blurhash
hash={media.get('blurhash')}
className='compose-form__upload__preview'
/>}
<div className='compose-form__upload__actions'>
<button type='button' className='icon-button compose-form__upload__delete' onClick={handleUndoClick}><Icon icon={CloseIcon} /></button>
<button type='button' className='icon-button' onClick={handleFocalPointClick}><Icon icon={EditIcon} /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>
</div>
<div className='compose-form__upload__warning'>
<button type='button' className={classNames('icon-button', { active: missingDescription })} onClick={handleFocalPointClick}>{missingDescription && <Icon icon={WarningIcon} />} ALT</button>
</div>
</div>
)}
</Motion>
</div>
);
};
Upload.propTypes = {
id: PropTypes.string,
onDragEnter: PropTypes.func,
onDragStart: PropTypes.func,
onDragEnd: PropTypes.func,
};

View file

@ -0,0 +1,130 @@
import { useCallback } from 'react';
import { FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import { useSortable } from '@dnd-kit/sortable';
import { CSS } from '@dnd-kit/utilities';
import CloseIcon from '@/material-icons/400-20px/close.svg?react';
import EditIcon from '@/material-icons/400-24px/edit.svg?react';
import WarningIcon from '@/material-icons/400-24px/warning.svg?react';
import {
undoUploadCompose,
initMediaEditModal,
} from 'mastodon/actions/compose';
import { Blurhash } from 'mastodon/components/blurhash';
import { Icon } from 'mastodon/components/icon';
import type { MediaAttachment } from 'mastodon/models/media_attachment';
import { useAppDispatch, useAppSelector } from 'mastodon/store';
export const Upload: React.FC<{
id: string;
dragging?: boolean;
overlay?: boolean;
tall?: boolean;
wide?: boolean;
}> = ({ id, dragging, overlay, tall, wide }) => {
const dispatch = useAppDispatch();
const media = useAppSelector(
(state) =>
state.compose // eslint-disable-line @typescript-eslint/no-unsafe-call
.get('media_attachments') // eslint-disable-line @typescript-eslint/no-unsafe-member-access
.find((item: MediaAttachment) => item.get('id') === id) as // eslint-disable-line @typescript-eslint/no-unsafe-member-access
| MediaAttachment
| undefined,
);
const sensitive = useAppSelector(
(state) => state.compose.get('spoiler') as boolean, // eslint-disable-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
);
const handleUndoClick = useCallback(() => {
dispatch(undoUploadCompose(id));
}, [dispatch, id]);
const handleFocalPointClick = useCallback(() => {
dispatch(initMediaEditModal(id));
}, [dispatch, id]);
const { attributes, listeners, setNodeRef, transform, transition } =
useSortable({ id });
if (!media) {
return null;
}
const focusX = media.getIn(['meta', 'focus', 'x']) as number;
const focusY = media.getIn(['meta', 'focus', 'y']) as number;
const x = (focusX / 2 + 0.5) * 100;
const y = (focusY / -2 + 0.5) * 100;
const missingDescription =
((media.get('description') as string | undefined) ?? '').length === 0;
const style = {
transform: CSS.Transform.toString(transform),
transition,
};
return (
<div
className={classNames('compose-form__upload media-gallery__item', {
dragging,
overlay,
'media-gallery__item--tall': tall,
'media-gallery__item--wide': wide,
})}
ref={setNodeRef}
style={style}
{...attributes}
{...listeners}
>
<div
className='compose-form__upload__thumbnail'
style={{
backgroundImage: !sensitive
? `url(${media.get('preview_url') as string})`
: undefined,
backgroundPosition: `${x}% ${y}%`,
}}
>
{sensitive && (
<Blurhash
hash={media.get('blurhash') as string}
className='compose-form__upload__preview'
/>
)}
<div className='compose-form__upload__actions'>
<button
type='button'
className='icon-button compose-form__upload__delete'
onClick={handleUndoClick}
>
<Icon id='close' icon={CloseIcon} />
</button>
<button
type='button'
className='icon-button'
onClick={handleFocalPointClick}
>
<Icon id='edit' icon={EditIcon} />{' '}
<FormattedMessage id='upload_form.edit' defaultMessage='Edit' />
</button>
</div>
<div className='compose-form__upload__warning'>
<button
type='button'
className={classNames('icon-button', {
active: missingDescription,
})}
onClick={handleFocalPointClick}
>
{missingDescription && <Icon id='warning' icon={WarningIcon} />} ALT
</button>
</div>
</div>
</div>
);
};

View file

@ -1,53 +0,0 @@
import { useRef, useCallback } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { changeMediaOrder } from 'mastodon/actions/compose';
import { Upload } from './upload';
import { UploadProgress } from './upload_progress';
export const UploadForm = () => {
const dispatch = useDispatch();
const mediaIds = useSelector(state => state.getIn(['compose', 'media_attachments']).map(item => item.get('id')));
const active = useSelector(state => state.getIn(['compose', 'is_uploading']));
const progress = useSelector(state => state.getIn(['compose', 'progress']));
const isProcessing = useSelector(state => state.getIn(['compose', 'is_processing']));
const dragItem = useRef();
const dragOverItem = useRef();
const handleDragStart = useCallback(id => {
dragItem.current = id;
}, [dragItem]);
const handleDragEnter = useCallback(id => {
dragOverItem.current = id;
}, [dragOverItem]);
const handleDragEnd = useCallback(() => {
dispatch(changeMediaOrder(dragItem.current, dragOverItem.current));
dragItem.current = null;
dragOverItem.current = null;
}, [dispatch, dragItem, dragOverItem]);
return (
<>
<UploadProgress active={active} progress={progress} isProcessing={isProcessing} />
{mediaIds.size > 0 && (
<div className='compose-form__uploads'>
{mediaIds.map(id => (
<Upload
key={id}
id={id}
onDragStart={handleDragStart}
onDragEnter={handleDragEnter}
onDragEnd={handleDragEnd}
/>
))}
</div>
)}
</>
);
};

View file

@ -0,0 +1,185 @@
import { useState, useCallback, useMemo } from 'react';
import { useIntl, defineMessages } from 'react-intl';
import type { List } from 'immutable';
import type {
DragStartEvent,
DragEndEvent,
UniqueIdentifier,
Announcements,
ScreenReaderInstructions,
} from '@dnd-kit/core';
import {
DndContext,
closestCenter,
KeyboardSensor,
PointerSensor,
useSensor,
useSensors,
DragOverlay,
} from '@dnd-kit/core';
import {
SortableContext,
sortableKeyboardCoordinates,
rectSortingStrategy,
} from '@dnd-kit/sortable';
import { changeMediaOrder } from 'mastodon/actions/compose';
import type { MediaAttachment } from 'mastodon/models/media_attachment';
import { useAppSelector, useAppDispatch } from 'mastodon/store';
import { Upload } from './upload';
import { UploadProgress } from './upload_progress';
const messages = defineMessages({
screenReaderInstructions: {
id: 'upload_form.drag_and_drop.instructions',
defaultMessage:
'To pick up a media attachment, press space or enter. While dragging, use the arrow keys to move the media attachment in any given direction. Press space or enter again to drop the media attachment in its new position, or press escape to cancel.',
},
onDragStart: {
id: 'upload_form.drag_and_drop.on_drag_start',
defaultMessage: 'Picked up media attachment {item}.',
},
onDragOver: {
id: 'upload_form.drag_and_drop.on_drag_over',
defaultMessage: 'Media attachment {item} was moved.',
},
onDragEnd: {
id: 'upload_form.drag_and_drop.on_drag_end',
defaultMessage: 'Media attachment {item} was dropped.',
},
onDragCancel: {
id: 'upload_form.drag_and_drop.on_drag_cancel',
defaultMessage:
'Dragging was cancelled. Media attachment {item} was dropped.',
},
});
export const UploadForm: React.FC = () => {
const dispatch = useAppDispatch();
const intl = useIntl();
const mediaIds = useAppSelector(
(state) =>
state.compose // eslint-disable-line @typescript-eslint/no-unsafe-call
.get('media_attachments') // eslint-disable-line @typescript-eslint/no-unsafe-member-access
.map((item: MediaAttachment) => item.get('id')) as List<string>, // eslint-disable-line @typescript-eslint/no-unsafe-member-access
);
const active = useAppSelector(
(state) => state.compose.get('is_uploading') as boolean, // eslint-disable-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
);
const progress = useAppSelector(
(state) => state.compose.get('progress') as number, // eslint-disable-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
);
const isProcessing = useAppSelector(
(state) => state.compose.get('is_processing') as boolean, // eslint-disable-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
);
const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);
const sensors = useSensors(
useSensor(PointerSensor, {
activationConstraint: {
distance: 5,
},
}),
useSensor(KeyboardSensor, {
coordinateGetter: sortableKeyboardCoordinates,
}),
);
const handleDragStart = useCallback(
(e: DragStartEvent) => {
const { active } = e;
setActiveId(active.id);
},
[setActiveId],
);
const handleDragEnd = useCallback(
(e: DragEndEvent) => {
const { active, over } = e;
if (over && active.id !== over.id) {
dispatch(changeMediaOrder(active.id, over.id));
}
setActiveId(null);
},
[dispatch, setActiveId],
);
const accessibility: {
screenReaderInstructions: ScreenReaderInstructions;
announcements: Announcements;
} = useMemo(
() => ({
screenReaderInstructions: {
draggable: intl.formatMessage(messages.screenReaderInstructions),
},
announcements: {
onDragStart({ active }) {
return intl.formatMessage(messages.onDragStart, { item: active.id });
},
onDragOver({ active }) {
return intl.formatMessage(messages.onDragOver, { item: active.id });
},
onDragEnd({ active }) {
return intl.formatMessage(messages.onDragEnd, { item: active.id });
},
onDragCancel({ active }) {
return intl.formatMessage(messages.onDragCancel, { item: active.id });
},
},
}),
[intl],
);
return (
<>
<UploadProgress
active={active}
progress={progress}
isProcessing={isProcessing}
/>
{mediaIds.size > 0 && (
<div
className={`compose-form__uploads media-gallery media-gallery--layout-${mediaIds.size}`}
>
<DndContext
sensors={sensors}
collisionDetection={closestCenter}
onDragStart={handleDragStart}
onDragEnd={handleDragEnd}
accessibility={accessibility}
>
<SortableContext
items={mediaIds.toArray()}
strategy={rectSortingStrategy}
>
{mediaIds.map((id, idx) => (
<Upload
key={id}
id={id}
dragging={id === activeId}
tall={mediaIds.size < 3 || (mediaIds.size === 3 && idx === 0)}
wide={mediaIds.size === 1}
/>
))}
</SortableContext>
<DragOverlay>
{activeId ? <Upload id={activeId as string} overlay /> : null}
</DragOverlay>
</DndContext>
</div>
)}
</>
);
};

View file

@ -84,6 +84,7 @@
"alert.rate_limited.title": "معدل الطلبات محدود", "alert.rate_limited.title": "معدل الطلبات محدود",
"alert.unexpected.message": "لقد طرأ خطأ غير متوقّع.", "alert.unexpected.message": "لقد طرأ خطأ غير متوقّع.",
"alert.unexpected.title": "المعذرة!", "alert.unexpected.title": "المعذرة!",
"alt_text_badge.title": "نص بديل",
"announcement.announcement": "إعلان", "announcement.announcement": "إعلان",
"attachments_list.unprocessed": "(غير معالَج)", "attachments_list.unprocessed": "(غير معالَج)",
"audio.hide": "إخفاء المقطع الصوتي", "audio.hide": "إخفاء المقطع الصوتي",
@ -758,7 +759,7 @@
"status.history.edited": "عدله {name} {date}", "status.history.edited": "عدله {name} {date}",
"status.load_more": "حمّل المزيد", "status.load_more": "حمّل المزيد",
"status.media.open": "اضغط للفتح", "status.media.open": "اضغط للفتح",
"status.media.show": "اضغط لإظهاره", "status.media.show": "اضغط لإظهارها",
"status.media_hidden": "وسائط مخفية", "status.media_hidden": "وسائط مخفية",
"status.mention": "أذكُر @{name}", "status.mention": "أذكُر @{name}",
"status.more": "المزيد", "status.more": "المزيد",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Скоростта е ограничена", "alert.rate_limited.title": "Скоростта е ограничена",
"alert.unexpected.message": "Възникна неочаквана грешка.", "alert.unexpected.message": "Възникна неочаквана грешка.",
"alert.unexpected.title": "Опаа!", "alert.unexpected.title": "Опаа!",
"alt_text_badge.title": "Алтернативен текст",
"announcement.announcement": "Оповестяване", "announcement.announcement": "Оповестяване",
"attachments_list.unprocessed": "(необработено)", "attachments_list.unprocessed": "(необработено)",
"audio.hide": "Скриване на звука", "audio.hide": "Скриване на звука",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "No es permet carregar fitxers a les enquestes.", "upload_error.poll": "No es permet carregar fitxers a les enquestes.",
"upload_form.audio_description": "Descriu-ho per a persones amb problemes d'audició", "upload_form.audio_description": "Descriu-ho per a persones amb problemes d'audició",
"upload_form.description": "Descriu-ho per a persones amb problemes de visió", "upload_form.description": "Descriu-ho per a persones amb problemes de visió",
"upload_form.drag_and_drop.instructions": "Per a agafar un fitxer multimèdia adjunt, premeu l'espai o la tecla Enter. Mentre l'arrossegueu, utilitzeu les fletxes per a moure l'adjunt en qualsevol direcció. Premeu espai o Enter un altre cop per a deixar-lo anar a la seva nova posició, o premeu la tecla d'escapament per cancel·lar.",
"upload_form.drag_and_drop.on_drag_cancel": "S'ha cancel·lat l'arrossegament. S'ha deixat anar l'adjunt multimèdia {item}.",
"upload_form.drag_and_drop.on_drag_end": "S'ha deixat anar l'adjunt multimèdia {item}.",
"upload_form.drag_and_drop.on_drag_over": "S'ha mogut l'adjunt multimèdia {item}.",
"upload_form.drag_and_drop.on_drag_start": "S'ha agafat l'adjunt multimèdia {item}.",
"upload_form.edit": "Edita", "upload_form.edit": "Edita",
"upload_form.thumbnail": "Canvia la miniatura", "upload_form.thumbnail": "Canvia la miniatura",
"upload_form.video_description": "Descriu-ho per a persones amb problemes de visió o audició", "upload_form.video_description": "Descriu-ho per a persones amb problemes de visió o audició",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "Filupload ikke tilladt for afstemninger.", "upload_error.poll": "Filupload ikke tilladt for afstemninger.",
"upload_form.audio_description": "Beskrivelse til hørehæmmede", "upload_form.audio_description": "Beskrivelse til hørehæmmede",
"upload_form.description": "Beskrivelse til svagtseende", "upload_form.description": "Beskrivelse til svagtseende",
"upload_form.drag_and_drop.instructions": "For at opsamle en medievedhæftning, tryk på Mellemrum eller Retur. Mens der trækkes, benyt piletasterne til at flytte medievedhæftningen i en given retning. Tryk på Mellemrum eller Retur igen for at slippe medievedhæftningen på den nye position, eller tryk på Escape for at afbryde.",
"upload_form.drag_and_drop.on_drag_cancel": "Træk blev afbrudt. Medievedhæftningen {item} blev sluppet.",
"upload_form.drag_and_drop.on_drag_end": "Medievedhæftningen {item} er sluppet.",
"upload_form.drag_and_drop.on_drag_over": "Medievedhæftningen {item} er flyttet.",
"upload_form.drag_and_drop.on_drag_start": "Opsamlede medievedhæftningen {item}.",
"upload_form.edit": "Redigér", "upload_form.edit": "Redigér",
"upload_form.thumbnail": "Skift miniature", "upload_form.thumbnail": "Skift miniature",
"upload_form.video_description": "Beskrivelse for hørehæmmede eller synshandicappede personer", "upload_form.video_description": "Beskrivelse for hørehæmmede eller synshandicappede personer",

View file

@ -229,14 +229,14 @@
"domain_pill.activitypub_like_language": "ActivityPub ist sozusagen die Sprache, die Mastodon mit anderen sozialen Netzwerken spricht.", "domain_pill.activitypub_like_language": "ActivityPub ist sozusagen die Sprache, die Mastodon mit anderen sozialen Netzwerken spricht.",
"domain_pill.server": "Server", "domain_pill.server": "Server",
"domain_pill.their_handle": "Deren Adresse:", "domain_pill.their_handle": "Deren Adresse:",
"domain_pill.their_server": "Deren digitales Zuhause. Hier „leben“ alle Beiträge von diesem Profil.", "domain_pill.their_server": "Deren digitale Heimat. Hier „leben“ alle Beiträge von diesem Profil.",
"domain_pill.their_username": "Deren eindeutigen Identität auf dem betreffenden Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.", "domain_pill.their_username": "Deren eindeutigen Identität auf dem betreffenden Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.",
"domain_pill.username": "Profilname", "domain_pill.username": "Profilname",
"domain_pill.whats_in_a_handle": "Was ist Teil der Adresse?", "domain_pill.whats_in_a_handle": "Was ist Teil der Adresse?",
"domain_pill.who_they_are": "Adressen teilen mit, wer jemand ist und wo sich jemand aufhält. Daher kannst du mit Leuten im gesamten Social Web interagieren, wenn es eine durch <button>ActivityPub angetriebene Plattform</button> ist.", "domain_pill.who_they_are": "Adressen teilen mit, wer jemand ist und wo sich jemand aufhält. Daher kannst du mit Leuten im gesamten Social Web interagieren, wenn es eine durch <button>ActivityPub angetriebene Plattform</button> ist.",
"domain_pill.who_you_are": "Deine Adresse teilt mit, wer du bist und wo du dich aufhältst. Daher können andere Leute im gesamten Social Web mit dir interagieren, wenn es eine durch <button>ActivityPub angetriebene Plattform</button> ist.", "domain_pill.who_you_are": "Deine Adresse teilt mit, wer du bist und wo du dich aufhältst. Daher können andere Leute im gesamten Social Web mit dir interagieren, wenn es eine durch <button>ActivityPub angetriebene Plattform</button> ist.",
"domain_pill.your_handle": "Deine Adresse:", "domain_pill.your_handle": "Deine Adresse:",
"domain_pill.your_server": "Dein digitales Zuhause. Hier „leben“ alle Beiträge von dir. Dir gefällt es hier nicht? Du kannst jederzeit den Server wechseln und ebenso deine Follower übertragen.", "domain_pill.your_server": "Deine digitale Heimat. Hier „leben“ alle Beiträge von dir. Falls es dir hier nicht gefällt, kannst du jederzeit den Server wechseln und ebenso deine Follower übertragen.",
"domain_pill.your_username": "Deine eindeutige Identität auf diesem Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.", "domain_pill.your_username": "Deine eindeutige Identität auf diesem Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.",
"embed.instructions": "Du kannst diesen Beitrag auf deiner Website einbetten, indem du den nachfolgenden Code kopierst.", "embed.instructions": "Du kannst diesen Beitrag auf deiner Website einbetten, indem du den nachfolgenden Code kopierst.",
"embed.preview": "Vorschau:", "embed.preview": "Vorschau:",
@ -852,6 +852,11 @@
"upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.", "upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.",
"upload_form.audio_description": "Beschreibe für Menschen mit Hörbehinderung", "upload_form.audio_description": "Beschreibe für Menschen mit Hörbehinderung",
"upload_form.description": "Beschreibe für Menschen mit Sehbehinderung", "upload_form.description": "Beschreibe für Menschen mit Sehbehinderung",
"upload_form.drag_and_drop.instructions": "Drücke zum Aufnehmen eines Medienanhangs die Eingabe- oder Leertaste. Verwende beim Ziehen die Pfeiltasten, um den Medienanhang zur gewünschten Position zu bewegen. Drücke erneut die Eingabe- oder Leertaste, um den Medienanhang an der gewünschten Position abzulegen. Mit der Escape-Taste kannst du den Vorgang abbrechen.",
"upload_form.drag_and_drop.on_drag_cancel": "Das Ziehen wurde abgebrochen und der Medienanhang {item} wurde abgelegt.",
"upload_form.drag_and_drop.on_drag_end": "Der Medienanhang {item} wurde abgelegt.",
"upload_form.drag_and_drop.on_drag_over": "Der Medienanhang {item} wurde bewegt.",
"upload_form.drag_and_drop.on_drag_start": "Der Medienanhang {item} wurde aufgenommen.",
"upload_form.edit": "Bearbeiten", "upload_form.edit": "Bearbeiten",
"upload_form.thumbnail": "Vorschaubild ändern", "upload_form.thumbnail": "Vorschaubild ändern",
"upload_form.video_description": "Beschreibe für Menschen mit einer Hör- oder Sehbehinderung", "upload_form.video_description": "Beschreibe für Menschen mit einer Hör- oder Sehbehinderung",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Περιορισμός συχνότητας", "alert.rate_limited.title": "Περιορισμός συχνότητας",
"alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.", "alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.",
"alert.unexpected.title": "Ουπς!", "alert.unexpected.title": "Ουπς!",
"alt_text_badge.title": "Εναλλακτικό κείμενο",
"announcement.announcement": "Ανακοίνωση", "announcement.announcement": "Ανακοίνωση",
"attachments_list.unprocessed": "(μη επεξεργασμένο)", "attachments_list.unprocessed": "(μη επεξεργασμένο)",
"audio.hide": "Απόκρυψη αρχείου ήχου", "audio.hide": "Απόκρυψη αρχείου ήχου",
@ -221,6 +222,8 @@
"domain_block_modal.they_cant_follow": "Κανείς από αυτόν τον διακομιστή δεν μπορεί να σε ακολουθήσει.", "domain_block_modal.they_cant_follow": "Κανείς από αυτόν τον διακομιστή δεν μπορεί να σε ακολουθήσει.",
"domain_block_modal.they_wont_know": "Δεν θα ξέρουν ότι έχουν αποκλειστεί.", "domain_block_modal.they_wont_know": "Δεν θα ξέρουν ότι έχουν αποκλειστεί.",
"domain_block_modal.title": "Αποκλεισμός τομέα;", "domain_block_modal.title": "Αποκλεισμός τομέα;",
"domain_block_modal.you_will_lose_num_followers": "Θα χάσετε {followersCount, plural, one {{followersCountDisplay} ακόλουθο} other {{followersCountDisplay} ακόλουθους}} και {followingCount, plural, one {{followingCountDisplay} άτομο που ακολουθείτε} other {{followingCountDisplay} άτομα που ακολουθείτε}}.",
"domain_block_modal.you_will_lose_relationships": "Θα χάσετε όλους τους ακόλουθους και τα άτομα που ακολουθείτε από αυτόν τον διακομιστή.",
"domain_block_modal.you_wont_see_posts": "Δεν θα βλέπεις αναρτήσεις ή ειδοποιήσεις από χρήστες σε αυτόν το διακομιστή.", "domain_block_modal.you_wont_see_posts": "Δεν θα βλέπεις αναρτήσεις ή ειδοποιήσεις από χρήστες σε αυτόν το διακομιστή.",
"domain_pill.activitypub_lets_connect": "Σού επιτρέπει να συνδεθείς και να αλληλεπιδράσεις με τους ανθρώπους όχι μόνο στο Mastodon, αλλά και σε διαφορετικές κοινωνικές εφαρμογές.", "domain_pill.activitypub_lets_connect": "Σού επιτρέπει να συνδεθείς και να αλληλεπιδράσεις με τους ανθρώπους όχι μόνο στο Mastodon, αλλά και σε διαφορετικές κοινωνικές εφαρμογές.",
"domain_pill.activitypub_like_language": "Το ActivityPub είναι σαν τη γλώσσα Mastodon μιλάει με άλλα κοινωνικά δίκτυα.", "domain_pill.activitypub_like_language": "Το ActivityPub είναι σαν τη γλώσσα Mastodon μιλάει με άλλα κοινωνικά δίκτυα.",
@ -849,6 +852,11 @@
"upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.", "upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
"upload_form.audio_description": "Περιγραφή για άτομα με προβλήματα ακοής", "upload_form.audio_description": "Περιγραφή για άτομα με προβλήματα ακοής",
"upload_form.description": "Περιγραφή για άτομα με προβλήματα όρασης", "upload_form.description": "Περιγραφή για άτομα με προβλήματα όρασης",
"upload_form.drag_and_drop.instructions": "Για να επιλέξετε ένα συνημμένο αρχείο πολυμέσων, πατήστε το Space ή το Enter. Ενώ το σέρνετε, χρησιμοποιήστε τα πλήκτρα βέλους για να μετακινήσετε το συνημμένο αρχείο πολυμέσων προς οποιαδήποτε κατεύθυνση. Πατήστε ξανά το Space ή το Enter για να αποθέσετε το συνημμένο αρχείο πολυμέσων στη νέα του θέση ή πατήστε το Escape για ακύρωση.",
"upload_form.drag_and_drop.on_drag_cancel": "Η μετακίνηση ακυρώθηκε. Έγινε απόθεση του συνημμένου αρχείου πολυμέσων «{item}».",
"upload_form.drag_and_drop.on_drag_end": "Έγινε απόθεση του συνημμένου αρχείου πολυμέσων «{item}».",
"upload_form.drag_and_drop.on_drag_over": "Έγινε μετακίνηση του συνημμένου αρχείου πολυμέσων «{item}».",
"upload_form.drag_and_drop.on_drag_start": "Έγινε επιλογή του συνημμένου αρχείου πολυμέσων «{item}».",
"upload_form.edit": "Επεξεργασία", "upload_form.edit": "Επεξεργασία",
"upload_form.thumbnail": "Αλλαγή μικρογραφίας", "upload_form.thumbnail": "Αλλαγή μικρογραφίας",
"upload_form.video_description": "Περιγραφή για άτομα με προβλήματα ακοής ή όρασης", "upload_form.video_description": "Περιγραφή για άτομα με προβλήματα ακοής ή όρασης",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "File upload not allowed with polls.", "upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people who are deaf or hard of hearing", "upload_form.audio_description": "Describe for people who are deaf or hard of hearing",
"upload_form.description": "Describe for people who are blind or have low vision", "upload_form.description": "Describe for people who are blind or have low vision",
"upload_form.drag_and_drop.instructions": "To pick up a media attachment, press space or enter. While dragging, use the arrow keys to move the media attachment in any given direction. Press space or enter again to drop the media attachment in its new position, or press escape to cancel.",
"upload_form.drag_and_drop.on_drag_cancel": "Dragging was cancelled. Media attachment {item} was dropped.",
"upload_form.drag_and_drop.on_drag_end": "Media attachment {item} was dropped.",
"upload_form.drag_and_drop.on_drag_over": "Media attachment {item} was moved.",
"upload_form.drag_and_drop.on_drag_start": "Picked up media attachment {item}.",
"upload_form.edit": "Edit", "upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail", "upload_form.thumbnail": "Change thumbnail",
"upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.", "upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.",
"upload_form.audio_description": "Priskribi por homoj kiuj malfacile aŭdi", "upload_form.audio_description": "Priskribi por homoj kiuj malfacile aŭdi",
"upload_form.description": "Priskribi por personoj, kiuj estas blindaj aŭ havas vidmalsufiĉon", "upload_form.description": "Priskribi por personoj, kiuj estas blindaj aŭ havas vidmalsufiĉon",
"upload_form.drag_and_drop.instructions": "Por preni amaskomunikilaron aldonaĵon, premu spacoklavon aŭ enen-klavon. Dum trenado, uzu la sagoklavojn por movi la amaskomunikilaron aldonaĵon en iu ajn direkto. Premu spacoklavon aŭ enen-klavon denove por faligi la amaskomunikilaron aldonaĵon en ĝia nova pozicio, aŭ premu eskapan klavon por nuligi.",
"upload_form.drag_and_drop.on_drag_cancel": "Trenado estis nuligita. Amaskomunikila aldonaĵo {item} estis forigita.",
"upload_form.drag_and_drop.on_drag_end": "Amaskomunikila aldonaĵo {item} estis forigita.",
"upload_form.drag_and_drop.on_drag_over": "Amaskomunikila aldonaĵo {item} estis movita.",
"upload_form.drag_and_drop.on_drag_start": "Prenis amaskomunikilan aldonaĵon {item}.",
"upload_form.edit": "Redakti", "upload_form.edit": "Redakti",
"upload_form.thumbnail": "Ŝanĝi etigita bildo", "upload_form.thumbnail": "Ŝanĝi etigita bildo",
"upload_form.video_description": "Priskribi por homoj kiuj malfacile aŭdi aŭ vidi", "upload_form.video_description": "Priskribi por homoj kiuj malfacile aŭdi aŭ vidi",

View file

@ -222,8 +222,8 @@
"domain_block_modal.they_cant_follow": "Nadie de este servidor puede seguirte.", "domain_block_modal.they_cant_follow": "Nadie de este servidor puede seguirte.",
"domain_block_modal.they_wont_know": "No sabrán que fueron bloqueados.", "domain_block_modal.they_wont_know": "No sabrán que fueron bloqueados.",
"domain_block_modal.title": "¿Bloquear dominio?", "domain_block_modal.title": "¿Bloquear dominio?",
"domain_block_modal.you_will_lose_num_followers": "Perderás {followersCount, plural, one {{followersCountDisplay} seguidor} other {{followersCountDisplay} seguidores}} y {followingCount, plural, one {{followingCountDisplay} persona a la que sigues} other {{followingCountDisplay} personas a las que sigues}}.", "domain_block_modal.you_will_lose_num_followers": "Perderás {followersCount, plural, one {{followersCountDisplay} seguidor} other {{followersCountDisplay} seguidores}} y {followingCount, plural, one {{followingCountDisplay} cuenta que seguís} other {{followingCountDisplay} cuentas que seguís}}.",
"domain_block_modal.you_will_lose_relationships": "Perderás a todos los seguidores y gente a la que sigas de este servidor.", "domain_block_modal.you_will_lose_relationships": "Perderás a todos los seguidores y cuentas a las que seguís de este servidor.",
"domain_block_modal.you_wont_see_posts": "No verás mensajes ni notificaciones de usuarios en este servidor.", "domain_block_modal.you_wont_see_posts": "No verás mensajes ni notificaciones de usuarios en este servidor.",
"domain_pill.activitypub_lets_connect": "Te permite conectar e interactuar con cuentas no solo en Mastodon, sino también a través de diferentes aplicaciones sociales.", "domain_pill.activitypub_lets_connect": "Te permite conectar e interactuar con cuentas no solo en Mastodon, sino también a través de diferentes aplicaciones sociales.",
"domain_pill.activitypub_like_language": "ActivityPub es como el idioma que Mastodon habla con otras redes sociales.", "domain_pill.activitypub_like_language": "ActivityPub es como el idioma que Mastodon habla con otras redes sociales.",
@ -852,6 +852,11 @@
"upload_error.poll": "No se permite la subida de archivos en encuestas.", "upload_error.poll": "No se permite la subida de archivos en encuestas.",
"upload_form.audio_description": "Agregá una descripción para personas con dificultades auditivas", "upload_form.audio_description": "Agregá una descripción para personas con dificultades auditivas",
"upload_form.description": "Agregá una descripción para personas con dificultades visuales", "upload_form.description": "Agregá una descripción para personas con dificultades visuales",
"upload_form.drag_and_drop.instructions": "Para recoger un archivo multimedia, pulsá la barra espaciadora o la tecla Enter. Mientras arrastrás, usá las teclas de flecha para mover el archivo multimedia en cualquier dirección. Volvé a pulsar la barra espaciadora o la tecla Enter para soltar el archivo multimedia en su nueva posición, o pulsá la tecla Escape para cancelar.",
"upload_form.drag_and_drop.on_drag_cancel": "Se canceló el arrastre. Se eliminó el archivo adjunto {item}.",
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} ha sido eliminado.",
"upload_form.drag_and_drop.on_drag_over": "El archivo adjunto {item} fue movido.",
"upload_form.drag_and_drop.on_drag_start": "Se ha recogido el archivo adjunto {item}.",
"upload_form.edit": "Editar", "upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura", "upload_form.thumbnail": "Cambiar miniatura",
"upload_form.video_description": "Agregá una descripción para personas con dificultades auditivas o visuales", "upload_form.video_description": "Agregá una descripción para personas con dificultades auditivas o visuales",

View file

@ -95,7 +95,7 @@
"block_modal.they_cant_mention": "No pueden mencionarte ni seguirte.", "block_modal.they_cant_mention": "No pueden mencionarte ni seguirte.",
"block_modal.they_cant_see_posts": "No pueden ver tus publicaciones y tú no verás las de ellos.", "block_modal.they_cant_see_posts": "No pueden ver tus publicaciones y tú no verás las de ellos.",
"block_modal.they_will_know": "Pueden ver que están bloqueados.", "block_modal.they_will_know": "Pueden ver que están bloqueados.",
"block_modal.title": "¿Bloquear usuario?", "block_modal.title": "¿Deseas bloquear al usuario?",
"block_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.", "block_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
"boost_modal.reblog": "¿Deseas impulsar la publicación?", "boost_modal.reblog": "¿Deseas impulsar la publicación?",
@ -173,9 +173,9 @@
"confirmations.block.confirm": "Bloquear", "confirmations.block.confirm": "Bloquear",
"confirmations.delete.confirm": "Eliminar", "confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "¿Estás seguro de que quieres borrar esta publicación?", "confirmations.delete.message": "¿Estás seguro de que quieres borrar esta publicación?",
"confirmations.delete.title": "¿Eliminar publicación?", "confirmations.delete.title": "¿Deseas eliminar la publicación?",
"confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.delete_list.message": "¿Estás seguro de que quieres eliminar esta lista de forma permanente?",
"confirmations.delete_list.title": "¿Deseas eliminar la lista?", "confirmations.delete_list.title": "¿Deseas eliminar la lista?",
"confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo, ¿deseas descartarlos de cualquier manera?", "confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo, ¿deseas descartarlos de cualquier manera?",
@ -191,7 +191,7 @@
"confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?", "confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?",
"confirmations.reply.confirm": "Responder", "confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?", "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
"confirmations.reply.title": "¿Sobreescribir publicación?", "confirmations.reply.title": "¿Deseas sobreescribir la publicación?",
"confirmations.unfollow.confirm": "Dejar de seguir", "confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?", "confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?", "confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@ -221,7 +221,7 @@
"domain_block_modal.they_can_interact_with_old_posts": "Las personas de este servidor pueden interactuar con tus publicaciones antiguas.", "domain_block_modal.they_can_interact_with_old_posts": "Las personas de este servidor pueden interactuar con tus publicaciones antiguas.",
"domain_block_modal.they_cant_follow": "Nadie de este servidor puede seguirte.", "domain_block_modal.they_cant_follow": "Nadie de este servidor puede seguirte.",
"domain_block_modal.they_wont_know": "No sabrán que han sido bloqueados.", "domain_block_modal.they_wont_know": "No sabrán que han sido bloqueados.",
"domain_block_modal.title": "¿Bloquear dominio?", "domain_block_modal.title": "¿Deseas bloquear el dominio?",
"domain_block_modal.you_will_lose_num_followers": "Vas a perder {followersCount, plural, one {{followersCountDisplay} seguidor} other {{followersCountDisplay} seguidores}} y {followingCount, plural, one {{followingCountDisplay} persona a la que sigues} other {{followingCountDisplay} personas a las que sigas}}.", "domain_block_modal.you_will_lose_num_followers": "Vas a perder {followersCount, plural, one {{followersCountDisplay} seguidor} other {{followersCountDisplay} seguidores}} y {followingCount, plural, one {{followingCountDisplay} persona a la que sigues} other {{followingCountDisplay} personas a las que sigas}}.",
"domain_block_modal.you_will_lose_relationships": "Perderás todos los seguidores y las personas que sigues de este servidor.", "domain_block_modal.you_will_lose_relationships": "Perderás todos los seguidores y las personas que sigues de este servidor.",
"domain_block_modal.you_wont_see_posts": "No verás publicaciones ni notificaciones de usuarios en este servidor.", "domain_block_modal.you_wont_see_posts": "No verás publicaciones ni notificaciones de usuarios en este servidor.",
@ -467,7 +467,7 @@
"mute_modal.show_options": "Mostrar opciones", "mute_modal.show_options": "Mostrar opciones",
"mute_modal.they_can_mention_and_follow": "Pueden mencionarte y seguirte, pero no verás nada de ellos.", "mute_modal.they_can_mention_and_follow": "Pueden mencionarte y seguirte, pero no verás nada de ellos.",
"mute_modal.they_wont_know": "No sabrán que han sido silenciados.", "mute_modal.they_wont_know": "No sabrán que han sido silenciados.",
"mute_modal.title": "¿Silenciar usuario?", "mute_modal.title": "¿Deseas silenciar el usuario?",
"mute_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.", "mute_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.",
"mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las de ellos.", "mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las de ellos.",
"navigation_bar.about": "Acerca de", "navigation_bar.about": "Acerca de",
@ -852,6 +852,11 @@
"upload_error.poll": "Subida de archivos no permitida con encuestas.", "upload_error.poll": "Subida de archivos no permitida con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos", "upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para los usuarios con dificultad visual", "upload_form.description": "Describir para los usuarios con dificultad visual",
"upload_form.drag_and_drop.instructions": "Para recoger un archivo multimedia, pulsa la barra espaciadora o la tecla Enter. Mientras arrastras, utiliza las teclas de flecha para mover el archivo multimedia en cualquier dirección. Vuelve a pulsar la barra espaciadora o la tecla Enter para soltar el archivo multimedia en su nueva posición, o pulsa Escape para cancelar.",
"upload_form.drag_and_drop.on_drag_cancel": "Se canceló el arrastre. Se eliminó el archivo adjunto {item}.",
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} ha sido eliminado.",
"upload_form.drag_and_drop.on_drag_over": "El archivo adjunto {item} se ha movido.",
"upload_form.drag_and_drop.on_drag_start": "Se ha recogido el archivo adjunto {item}.",
"upload_form.edit": "Editar", "upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura", "upload_form.thumbnail": "Cambiar miniatura",
"upload_form.video_description": "Describir para personas con problemas auditivos o visuales", "upload_form.video_description": "Describir para personas con problemas auditivos o visuales",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "No se permite la subida de archivos con encuestas.", "upload_error.poll": "No se permite la subida de archivos con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos", "upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para personas con discapacidad visual", "upload_form.description": "Describir para personas con discapacidad visual",
"upload_form.drag_and_drop.instructions": "Para recoger un archivo multimedia, pulsa la barra espaciadora o la tecla Enter. Mientras arrastras, utiliza las teclas de flecha para mover el archivo multimedia en cualquier dirección. Vuelve a pulsar la barra espaciadora o la tecla Enter para soltar el archivo multimedia en su nueva posición, o pulsa Escape para cancelar.",
"upload_form.drag_and_drop.on_drag_cancel": "Se canceló el arrastre. Se eliminó el archivo adjunto {item}.",
"upload_form.drag_and_drop.on_drag_end": "El archivo adjunto {item} ha sido eliminado.",
"upload_form.drag_and_drop.on_drag_over": "El archivo adjunto {item} se ha movido.",
"upload_form.drag_and_drop.on_drag_start": "Se ha recogido el archivo adjunto {item}.",
"upload_form.edit": "Editar", "upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura", "upload_form.thumbnail": "Cambiar miniatura",
"upload_form.video_description": "Describir para personas con problemas auditivos o visuales", "upload_form.video_description": "Describir para personas con problemas auditivos o visuales",

View file

@ -797,7 +797,7 @@
"status.history.edited": "{name} muokkasi {date}", "status.history.edited": "{name} muokkasi {date}",
"status.load_more": "Lataa lisää", "status.load_more": "Lataa lisää",
"status.media.open": "Avaa napsauttamalla", "status.media.open": "Avaa napsauttamalla",
"status.media.show": "Napsauta näyttääksesi", "status.media.show": "Näytä napsauttamalla",
"status.media_hidden": "Media piilotettu", "status.media_hidden": "Media piilotettu",
"status.mention": "Mainitse @{name}", "status.mention": "Mainitse @{name}",
"status.more": "Enemmän", "status.more": "Enemmän",
@ -852,6 +852,11 @@
"upload_error.poll": "Tiedostojen lisääminen äänestysten oheen ei ole sallittua.", "upload_error.poll": "Tiedostojen lisääminen äänestysten oheen ei ole sallittua.",
"upload_form.audio_description": "Kuvaile sisältöä kuuroille ja kuulorajoitteisille", "upload_form.audio_description": "Kuvaile sisältöä kuuroille ja kuulorajoitteisille",
"upload_form.description": "Kuvaile sisältöä sokeille ja näkörajoitteisille", "upload_form.description": "Kuvaile sisältöä sokeille ja näkörajoitteisille",
"upload_form.drag_and_drop.instructions": "Valitse medialiite painamalla välilyöntiä tai enteriä. Vetäessäsi käytä nuolinäppäimiä siirtääksesi medialiitettä vastaavaan suuntaan. Paina välilyöntiä tai enteriä uudelleen pudottaaksesi medialiitteen uuteen kohtaansa, tai peru siirto painamalla escape-näppäintä.",
"upload_form.drag_and_drop.on_drag_cancel": "Veto peruttiin. Medialiitettä {item} ei siirretty.",
"upload_form.drag_and_drop.on_drag_end": "Medialiite {item} pudotettiin.",
"upload_form.drag_and_drop.on_drag_over": "Medialiitettä {item} siirrettiin.",
"upload_form.drag_and_drop.on_drag_start": "Valittiin medialiite {item}.",
"upload_form.edit": "Muokkaa", "upload_form.edit": "Muokkaa",
"upload_form.thumbnail": "Vaihda pienoiskuva", "upload_form.thumbnail": "Vaihda pienoiskuva",
"upload_form.video_description": "Kuvaile sisältöä kuuroille, kuulorajoitteisille, sokeille tai näkörajoitteisille", "upload_form.video_description": "Kuvaile sisältöä kuuroille, kuulorajoitteisille, sokeille tai näkörajoitteisille",

View file

@ -3,9 +3,15 @@
"about.contact": "Kontak:", "about.contact": "Kontak:",
"about.disclaimer": "Ang Mastodon ay software na malaya at bukas-na-pinagmulan, at isang tatak-pangkalakal ng Mastodon gGmbH.", "about.disclaimer": "Ang Mastodon ay software na malaya at bukas-na-pinagmulan, at isang tatak-pangkalakal ng Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Hindi makuha ang dahilan", "about.domain_blocks.no_reason_available": "Hindi makuha ang dahilan",
"about.domain_blocks.preamble": "Sa kadalasan, hinahayaan ka ng Mastodon na makita ang mga content sa, at makipag-interact sa users ng, ibang servers sa fediverse. Narito ang exceptions na ginawa sa partikular na server na ito.",
"about.domain_blocks.silenced.explanation": "Sa kadalasan, hindi mo makikita ang profiles at content mula sa server na ito, maliban na lang kung sasadyain mo silang hanapin o piliing magawa ito sa pamamagitan ng mga sumusunod.",
"about.domain_blocks.silenced.title": "Limitado", "about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Walang data mula sa server na ito ang mapoproseso, maiimbak o maipagpapaplitan. Sa gayon. imposibleng magawa ang interaksiyon o komunikasyon sa ibang users sa server na ito.",
"about.domain_blocks.suspended.title": "Suspendido", "about.domain_blocks.suspended.title": "Suspendido",
"about.not_available": "Hindi available ang impormasyong ito.",
"about.powered_by": "Decentralisadong social media na pinapagana ng {mastodon}",
"about.rules": "Mga alituntunin ng server", "about.rules": "Mga alituntunin ng server",
"account.account_note_header": "Note na personal",
"account.add_or_remove_from_list": "I-dagdag o tanggalin mula sa mga listahan", "account.add_or_remove_from_list": "I-dagdag o tanggalin mula sa mga listahan",
"account.badges.bot": "Pakusa", "account.badges.bot": "Pakusa",
"account.badges.group": "Pangkat", "account.badges.group": "Pangkat",
@ -216,7 +222,7 @@
"link_preview.author": "Ni/ng {name}", "link_preview.author": "Ni/ng {name}",
"lists.account.add": "Idagdag sa talaan", "lists.account.add": "Idagdag sa talaan",
"lists.account.remove": "Tanggalin mula sa talaan", "lists.account.remove": "Tanggalin mula sa talaan",
"lists.delete": "Burahin ang talaan", "lists.delete": "Burahin ang listahan",
"lists.new.create": "Idagdag sa talaan", "lists.new.create": "Idagdag sa talaan",
"lists.new.title_placeholder": "Bagong pangalan ng talaan", "lists.new.title_placeholder": "Bagong pangalan ng talaan",
"lists.replies_policy.title": "Ipakita ang mga tugon sa:", "lists.replies_policy.title": "Ipakita ang mga tugon sa:",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "Ikki loyvt at leggja fílur upp í spurnarkanningum.", "upload_error.poll": "Ikki loyvt at leggja fílur upp í spurnarkanningum.",
"upload_form.audio_description": "Lýs fyri teimum, sum eru deyv ella hava ringa hoyrn", "upload_form.audio_description": "Lýs fyri teimum, sum eru deyv ella hava ringa hoyrn",
"upload_form.description": "Lýs fyri teimum, sum eru blind ella eru sjónveik", "upload_form.description": "Lýs fyri teimum, sum eru blind ella eru sjónveik",
"upload_form.drag_and_drop.instructions": "Fyri at heinta eitt miðlaviðfesti, trýst á millumrúm ella returknapp. Meðan tú dregur, brúka pílarnar fyri at flyta miðaviðfesti í einhvønn rætning. Trýst á millumrúm ella returknapp aftur fyri at sleppa miðlaviðfestinum í nýggja staðnum ella trýst á esc-knappin fyri at angra.",
"upload_form.drag_and_drop.on_drag_cancel": "Draging varð steðgað. Miðlaviðfestið {item} varð slept.",
"upload_form.drag_and_drop.on_drag_end": "Miðlaviðfestið {item} var slept.",
"upload_form.drag_and_drop.on_drag_over": "Miðlaviðfestið {item} var flutt.",
"upload_form.drag_and_drop.on_drag_start": "Heintaði miðlaviðfestið {item}.",
"upload_form.edit": "Rætta", "upload_form.edit": "Rætta",
"upload_form.thumbnail": "Broyt smámynd", "upload_form.thumbnail": "Broyt smámynd",
"upload_form.video_description": "Lýs fyri teimum, sum eru deyv, hava ringa hoyrn, eru blind ella eru sjónveik", "upload_form.video_description": "Lýs fyri teimum, sum eru deyv, hava ringa hoyrn, eru blind ella eru sjónveik",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Débit limité", "alert.rate_limited.title": "Débit limité",
"alert.unexpected.message": "Une erreur inattendue sest produite.", "alert.unexpected.message": "Une erreur inattendue sest produite.",
"alert.unexpected.title": "Oups!", "alert.unexpected.title": "Oups!",
"alt_text_badge.title": "Texte Alt",
"announcement.announcement": "Annonce", "announcement.announcement": "Annonce",
"attachments_list.unprocessed": "(non traité)", "attachments_list.unprocessed": "(non traité)",
"audio.hide": "Masquer l'audio", "audio.hide": "Masquer l'audio",
@ -221,6 +222,8 @@
"domain_block_modal.they_cant_follow": "Personne de ce serveur ne peut vous suivre.", "domain_block_modal.they_cant_follow": "Personne de ce serveur ne peut vous suivre.",
"domain_block_modal.they_wont_know": "Il ne saura pas qu'il a été bloqué.", "domain_block_modal.they_wont_know": "Il ne saura pas qu'il a été bloqué.",
"domain_block_modal.title": "Bloquer le domaine ?", "domain_block_modal.title": "Bloquer le domaine ?",
"domain_block_modal.you_will_lose_num_followers": "Vous allez perdre {followersCount, plural, one {{followersCountDisplay} abonné·e} other {{followersCountDisplay} abonné·e·s}} et {followingCount, plural, one {{followingCountDisplay} personne que vous suivez} other {{followingCountDisplay} personnes que vous suivez}}.",
"domain_block_modal.you_will_lose_relationships": "Vous allez perdre tous les abonné·e·s et les personnes que vous suivez sur ce serveur.",
"domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les publications ou les notifications des utilisateurs de ce serveur.", "domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les publications ou les notifications des utilisateurs de ce serveur.",
"domain_pill.activitypub_lets_connect": "Cela vous permet de vous connecter et d'interagir avec les autres non seulement sur Mastodon, mais également sur d'autres applications de réseaux sociaux.", "domain_pill.activitypub_lets_connect": "Cela vous permet de vous connecter et d'interagir avec les autres non seulement sur Mastodon, mais également sur d'autres applications de réseaux sociaux.",
"domain_pill.activitypub_like_language": "ActivityPub est comme une langue que Mastodon utilise pour communiquer avec les autres réseaux sociaux.", "domain_pill.activitypub_like_language": "ActivityPub est comme une langue que Mastodon utilise pour communiquer avec les autres réseaux sociaux.",
@ -433,6 +436,8 @@
"lightbox.close": "Fermer", "lightbox.close": "Fermer",
"lightbox.next": "Suivant", "lightbox.next": "Suivant",
"lightbox.previous": "Précédent", "lightbox.previous": "Précédent",
"lightbox.zoom_in": "Zoomer sur la taille réelle",
"lightbox.zoom_out": "Zoomer pour adapter",
"limited_account_hint.action": "Afficher le profil quand même", "limited_account_hint.action": "Afficher le profil quand même",
"limited_account_hint.title": "Ce profil a été masqué par la modération de {domain}.", "limited_account_hint.title": "Ce profil a été masqué par la modération de {domain}.",
"link_preview.author": "Par {name}", "link_preview.author": "Par {name}",
@ -847,6 +852,7 @@
"upload_error.poll": "Lenvoi de fichiers nest pas autorisé avec les sondages.", "upload_error.poll": "Lenvoi de fichiers nest pas autorisé avec les sondages.",
"upload_form.audio_description": "Décrire pour les personnes ayant des difficultés daudition", "upload_form.audio_description": "Décrire pour les personnes ayant des difficultés daudition",
"upload_form.description": "Décrire pour les malvoyants", "upload_form.description": "Décrire pour les malvoyants",
"upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.",
"upload_form.edit": "Modifier", "upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette", "upload_form.thumbnail": "Changer la vignette",
"upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition", "upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Nombre de requêtes limité", "alert.rate_limited.title": "Nombre de requêtes limité",
"alert.unexpected.message": "Une erreur inattendue sest produite.", "alert.unexpected.message": "Une erreur inattendue sest produite.",
"alert.unexpected.title": "Oups!", "alert.unexpected.title": "Oups!",
"alt_text_badge.title": "Texte Alt",
"announcement.announcement": "Annonce", "announcement.announcement": "Annonce",
"attachments_list.unprocessed": "(non traité)", "attachments_list.unprocessed": "(non traité)",
"audio.hide": "Masquer l'audio", "audio.hide": "Masquer l'audio",
@ -221,6 +222,8 @@
"domain_block_modal.they_cant_follow": "Personne de ce serveur ne peut vous suivre.", "domain_block_modal.they_cant_follow": "Personne de ce serveur ne peut vous suivre.",
"domain_block_modal.they_wont_know": "Il ne saura pas qu'il a été bloqué.", "domain_block_modal.they_wont_know": "Il ne saura pas qu'il a été bloqué.",
"domain_block_modal.title": "Bloquer le domaine ?", "domain_block_modal.title": "Bloquer le domaine ?",
"domain_block_modal.you_will_lose_num_followers": "Vous allez perdre {followersCount, plural, one {{followersCountDisplay} abonné·e} other {{followersCountDisplay} abonné·e·s}} et {followingCount, plural, one {{followingCountDisplay} personne que vous suivez} other {{followingCountDisplay} personnes que vous suivez}}.",
"domain_block_modal.you_will_lose_relationships": "Vous allez perdre tous les abonné·e·s et les personnes que vous suivez sur ce serveur.",
"domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les publications ou les notifications des utilisateurs de ce serveur.", "domain_block_modal.you_wont_see_posts": "Vous ne verrez plus les publications ou les notifications des utilisateurs de ce serveur.",
"domain_pill.activitypub_lets_connect": "Cela vous permet de vous connecter et d'interagir avec les autres non seulement sur Mastodon, mais également sur d'autres applications de réseaux sociaux.", "domain_pill.activitypub_lets_connect": "Cela vous permet de vous connecter et d'interagir avec les autres non seulement sur Mastodon, mais également sur d'autres applications de réseaux sociaux.",
"domain_pill.activitypub_like_language": "ActivityPub est comme une langue que Mastodon utilise pour communiquer avec les autres réseaux sociaux.", "domain_pill.activitypub_like_language": "ActivityPub est comme une langue que Mastodon utilise pour communiquer avec les autres réseaux sociaux.",
@ -433,6 +436,8 @@
"lightbox.close": "Fermer", "lightbox.close": "Fermer",
"lightbox.next": "Suivant", "lightbox.next": "Suivant",
"lightbox.previous": "Précédent", "lightbox.previous": "Précédent",
"lightbox.zoom_in": "Zoomer sur la taille réelle",
"lightbox.zoom_out": "Zoomer pour adapter",
"limited_account_hint.action": "Afficher le profil quand même", "limited_account_hint.action": "Afficher le profil quand même",
"limited_account_hint.title": "Ce profil a été masqué par la modération de {domain}.", "limited_account_hint.title": "Ce profil a été masqué par la modération de {domain}.",
"link_preview.author": "Par {name}", "link_preview.author": "Par {name}",
@ -847,6 +852,7 @@
"upload_error.poll": "Lenvoi de fichiers nest pas autorisé avec les sondages.", "upload_error.poll": "Lenvoi de fichiers nest pas autorisé avec les sondages.",
"upload_form.audio_description": "Décrire pour les personnes ayant des difficultés daudition", "upload_form.audio_description": "Décrire pour les personnes ayant des difficultés daudition",
"upload_form.description": "Décrire pour les malvoyant·e·s", "upload_form.description": "Décrire pour les malvoyant·e·s",
"upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.",
"upload_form.edit": "Modifier", "upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette", "upload_form.thumbnail": "Changer la vignette",
"upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition", "upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Rátatheoranta", "alert.rate_limited.title": "Rátatheoranta",
"alert.unexpected.message": "Tharla earráid gan choinne.", "alert.unexpected.message": "Tharla earráid gan choinne.",
"alert.unexpected.title": "Hiúps!", "alert.unexpected.title": "Hiúps!",
"alt_text_badge.title": "Téacs alt",
"announcement.announcement": "Fógra", "announcement.announcement": "Fógra",
"attachments_list.unprocessed": "(neamhphróiseáilte)", "attachments_list.unprocessed": "(neamhphróiseáilte)",
"audio.hide": "Cuir fuaim i bhfolach", "audio.hide": "Cuir fuaim i bhfolach",
@ -222,6 +223,7 @@
"domain_block_modal.they_wont_know": "Ní bheidh a fhios acu go bhfuil bac orthu.", "domain_block_modal.they_wont_know": "Ní bheidh a fhios acu go bhfuil bac orthu.",
"domain_block_modal.title": "Blocáil fearann?", "domain_block_modal.title": "Blocáil fearann?",
"domain_block_modal.you_will_lose_num_followers": "Caillfidh tú {followersCount, plural, one {{followersCountDisplay} leantóir} two {{followersCountDisplay} leantóirí} few {{followersCountDisplay} leantóirí} many {{followersCountDisplay} leantóirí} other {{followersCountDisplay} leantóirí}} agus {followingCount, plural, one {{followingCountDisplay} duine atá á leanúint agat} two {{followingCountDisplay} daoine atá á leanúint agat} few {{followingCountDisplay} daoine atá á leanúint agat} many {{followingCountDisplay} daoine atá á leanúint agat} other {{followingCountDisplay} daoine atá á leanúint agat}}.", "domain_block_modal.you_will_lose_num_followers": "Caillfidh tú {followersCount, plural, one {{followersCountDisplay} leantóir} two {{followersCountDisplay} leantóirí} few {{followersCountDisplay} leantóirí} many {{followersCountDisplay} leantóirí} other {{followersCountDisplay} leantóirí}} agus {followingCount, plural, one {{followingCountDisplay} duine atá á leanúint agat} two {{followingCountDisplay} daoine atá á leanúint agat} few {{followingCountDisplay} daoine atá á leanúint agat} many {{followingCountDisplay} daoine atá á leanúint agat} other {{followingCountDisplay} daoine atá á leanúint agat}}.",
"domain_block_modal.you_will_lose_relationships": "Caillfidh tú gach leantóir agus duine a leanann tú ón bhfreastalaí seo.",
"domain_block_modal.you_wont_see_posts": "Ní fheicfidh tú postálacha nó fógraí ó úsáideoirí ar an bhfreastalaí seo.", "domain_block_modal.you_wont_see_posts": "Ní fheicfidh tú postálacha nó fógraí ó úsáideoirí ar an bhfreastalaí seo.",
"domain_pill.activitypub_lets_connect": "Ligeann sé duit ceangal agus idirghníomhú le daoine, ní hamháin ar Mastodon, ach thar aipeanna sóisialta éagsúla freisin.", "domain_pill.activitypub_lets_connect": "Ligeann sé duit ceangal agus idirghníomhú le daoine, ní hamháin ar Mastodon, ach thar aipeanna sóisialta éagsúla freisin.",
"domain_pill.activitypub_like_language": "Tá GníomhaíochtPub cosúil leis an teanga a labhraíonn Mastodon le líonraí sóisialta eile.", "domain_pill.activitypub_like_language": "Tá GníomhaíochtPub cosúil leis an teanga a labhraíonn Mastodon le líonraí sóisialta eile.",
@ -850,6 +852,11 @@
"upload_error.poll": "Ní cheadaítear uaslódáil comhad le pobalbhreith.", "upload_error.poll": "Ní cheadaítear uaslódáil comhad le pobalbhreith.",
"upload_form.audio_description": "Déan cur síos ar dhaoine bodhra nó lagéisteachta", "upload_form.audio_description": "Déan cur síos ar dhaoine bodhra nó lagéisteachta",
"upload_form.description": "Describe for the visually impaired", "upload_form.description": "Describe for the visually impaired",
"upload_form.drag_and_drop.instructions": "Chun ceangaltán meán a phiocadh suas, brúigh spás nó cuir isteach. Agus tú ag tarraingt, bain úsáid as na heochracha saigheada chun an ceangaltán meán a bhogadh i dtreo ar bith. Brúigh spás nó cuir isteach arís chun an ceangaltán meán a scaoileadh ina phost nua, nó brúigh éalú chun cealú.",
"upload_form.drag_and_drop.on_drag_cancel": "Cuireadh an tarraingt ar ceal. Scaoileadh ceangaltán meán {item}.",
"upload_form.drag_and_drop.on_drag_end": "Scaoileadh ceangaltán meán {item}.",
"upload_form.drag_and_drop.on_drag_over": "Bogadh ceangaltán meán {item}.",
"upload_form.drag_and_drop.on_drag_start": "Roghnaíodh ceangaltán meán {item}.",
"upload_form.edit": "Cuir in eagar", "upload_form.edit": "Cuir in eagar",
"upload_form.thumbnail": "Athraigh mionsamhail", "upload_form.thumbnail": "Athraigh mionsamhail",
"upload_form.video_description": "Déan cur síos ar dhaoine atá bodhar, lagéisteachta, dall nó lagamhairc", "upload_form.video_description": "Déan cur síos ar dhaoine atá bodhar, lagéisteachta, dall nó lagamhairc",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Cuingeachadh ùine", "alert.rate_limited.title": "Cuingeachadh ùine",
"alert.unexpected.message": "Thachair mearachd ris nach robh dùil.", "alert.unexpected.message": "Thachair mearachd ris nach robh dùil.",
"alert.unexpected.title": "Oich!", "alert.unexpected.title": "Oich!",
"alt_text_badge.title": "Roghainn teacsa",
"announcement.announcement": "Brath-fios", "announcement.announcement": "Brath-fios",
"attachments_list.unprocessed": "(gun phròiseasadh)", "attachments_list.unprocessed": "(gun phròiseasadh)",
"audio.hide": "Falaich an fhuaim", "audio.hide": "Falaich an fhuaim",
@ -221,6 +222,8 @@
"domain_block_modal.they_cant_follow": "Chan urrainn do neach sam bith a th air an fhrithealaiche seo do leantainn.", "domain_block_modal.they_cant_follow": "Chan urrainn do neach sam bith a th air an fhrithealaiche seo do leantainn.",
"domain_block_modal.they_wont_know": "Cha bhi fios aca gun deach am bacadh.", "domain_block_modal.they_wont_know": "Cha bhi fios aca gun deach am bacadh.",
"domain_block_modal.title": "A bheil thu airson an àrainn a bhacadh?", "domain_block_modal.title": "A bheil thu airson an àrainn a bhacadh?",
"domain_block_modal.you_will_lose_num_followers": "Caillidh tu {followersCount, plural, one {{followersCountDisplay} neach-leantainn} two {{followersCountDisplay} luchd-leantainn} few {{followersCountDisplay} luchd-leantainn} other {{followersCountDisplay} luchd-leantainn}} s {followingCount, plural, one {{followingCountDisplay} neach a tha thu a leantainn} two {{followingCountDisplay} daoine a tha thu a leantainn} few {{followingCountDisplay} daoine a tha thu a leantainn} other {{followingCountDisplay} daoine a tha thu a leantainn}}.",
"domain_block_modal.you_will_lose_relationships": "Caillidh tu a h-uile luchd-leantainn s neach a leanas tu air an fhrithealaiche seo.",
"domain_block_modal.you_wont_see_posts": "Chan fhaic thu postaichean no brathan o chleachdaichean a th air an fhrithealaiche seo.", "domain_block_modal.you_wont_see_posts": "Chan fhaic thu postaichean no brathan o chleachdaichean a th air an fhrithealaiche seo.",
"domain_pill.activitypub_lets_connect": "Leigidh e leat ceangal a dhèanamh ri daoine chan ann air Mastodon a-mhàin ach air feadh aplacaidean sòisealta eile cuideachd agus conaltradh leotha.", "domain_pill.activitypub_lets_connect": "Leigidh e leat ceangal a dhèanamh ri daoine chan ann air Mastodon a-mhàin ach air feadh aplacaidean sòisealta eile cuideachd agus conaltradh leotha.",
"domain_pill.activitypub_like_language": "Tha ActivityPub coltach ri cànan a bhruidhneas Mastodon ri lìonraidhean sòisealta eile.", "domain_pill.activitypub_like_language": "Tha ActivityPub coltach ri cànan a bhruidhneas Mastodon ri lìonraidhean sòisealta eile.",
@ -330,7 +333,7 @@
"footer.about": "Mu dhèidhinn", "footer.about": "Mu dhèidhinn",
"footer.directory": "Eòlaire nam pròifil", "footer.directory": "Eòlaire nam pròifil",
"footer.get_app": "Faigh an aplacaid", "footer.get_app": "Faigh an aplacaid",
"footer.invite": "Thoir cuireadh do dhaoine", "footer.invite": "Thoir cuireadh",
"footer.keyboard_shortcuts": "Ath-ghoiridean a mheur-chlàir", "footer.keyboard_shortcuts": "Ath-ghoiridean a mheur-chlàir",
"footer.privacy_policy": "Poileasaidh prìobhaideachd", "footer.privacy_policy": "Poileasaidh prìobhaideachd",
"footer.source_code": "Seall am bun-tùs", "footer.source_code": "Seall am bun-tùs",
@ -849,6 +852,11 @@
"upload_error.poll": "Chan fhaod thu faidhle a luchdadh suas an cois cunntais-bheachd.", "upload_error.poll": "Chan fhaod thu faidhle a luchdadh suas an cois cunntais-bheachd.",
"upload_form.audio_description": "Mìnich e dhan fheadhainn le èisteachd bheag", "upload_form.audio_description": "Mìnich e dhan fheadhainn le èisteachd bheag",
"upload_form.description": "Mìnich e dhan fheadhainn le cion-lèirsinne", "upload_form.description": "Mìnich e dhan fheadhainn le cion-lèirsinne",
"upload_form.drag_and_drop.instructions": "Airson ceanglachan meadhain a thogail, brùth air space no enter. Fhad a bhios tu ga shlaodadh, cleachd na h-iuchraichean-saighde airson an ceanglachan meadhain a ghluasad gu comhair sam bith. Brùth air space no enter a-rithist airson an ceanglachen meadhain a leigeil às air an ionad ùr aige no brùth air escape airson sgur dheth.",
"upload_form.drag_and_drop.on_drag_cancel": "Chaidh sgur dhen t-slaodadh. Chaidh an ceanglachan meadhain {item} a leigeil às.",
"upload_form.drag_and_drop.on_drag_end": "Chaidh an ceanglachan meadhain {item} a leigeil às.",
"upload_form.drag_and_drop.on_drag_over": "Chaidh an ceanglachan meadhain {item} a ghluasad.",
"upload_form.drag_and_drop.on_drag_start": "Chaidh an ceanglachan meadhain {item} a thogail.",
"upload_form.edit": "Deasaich", "upload_form.edit": "Deasaich",
"upload_form.thumbnail": "Atharraich an dealbhag", "upload_form.thumbnail": "Atharraich an dealbhag",
"upload_form.video_description": "Mìnich e dhan fheadhainn le èisteachd bheag no cion-lèirsinne", "upload_form.video_description": "Mìnich e dhan fheadhainn le èisteachd bheag no cion-lèirsinne",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "Non se poden subir ficheiros nas enquisas.", "upload_error.poll": "Non se poden subir ficheiros nas enquisas.",
"upload_form.audio_description": "Describir para persoas con problemas auditivos", "upload_form.audio_description": "Describir para persoas con problemas auditivos",
"upload_form.description": "Describir para persoas cegas ou con problemas visuais", "upload_form.description": "Describir para persoas cegas ou con problemas visuais",
"upload_form.drag_and_drop.instructions": "Preme en Espazo ou Enter para escoller un anexo multimedia. Ao arrastrar usa as teclas de frecha para mover o anexo en todas direccións.Preme Espazo ou Enter outra vez para soltalo na súa nova posición, ou preme Escape para desbotar.",
"upload_form.drag_and_drop.on_drag_cancel": "Cancelouse o movemento. O anexo {item} soltouse.",
"upload_form.drag_and_drop.on_drag_end": "Soltouse o anexo multimedia {item}.",
"upload_form.drag_and_drop.on_drag_over": "Moveuse o anexo multimedia {item}.",
"upload_form.drag_and_drop.on_drag_start": "Escolleuse o anexo multimedia {item}.",
"upload_form.edit": "Editar", "upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar a miniatura", "upload_form.thumbnail": "Cambiar a miniatura",
"upload_form.video_description": "Describe para persoas con problemas visuais ou auditivos", "upload_form.video_description": "Describe para persoas con problemas visuais ou auditivos",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Adatforgalom korlátozva", "alert.rate_limited.title": "Adatforgalom korlátozva",
"alert.unexpected.message": "Váratlan hiba történt.", "alert.unexpected.message": "Váratlan hiba történt.",
"alert.unexpected.title": "Hoppá!", "alert.unexpected.title": "Hoppá!",
"alt_text_badge.title": "Helyettesítő szöveg",
"announcement.announcement": "Közlemény", "announcement.announcement": "Közlemény",
"attachments_list.unprocessed": "(feldolgozatlan)", "attachments_list.unprocessed": "(feldolgozatlan)",
"audio.hide": "Hang elrejtése", "audio.hide": "Hang elrejtése",
@ -851,6 +852,11 @@
"upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.", "upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
"upload_form.audio_description": "Leírás siket vagy hallássérült emberek számára", "upload_form.audio_description": "Leírás siket vagy hallássérült emberek számára",
"upload_form.description": "Leírás vak vagy gyengénlátó emberek számára", "upload_form.description": "Leírás vak vagy gyengénlátó emberek számára",
"upload_form.drag_and_drop.instructions": "Egy médiamelléklet kiválasztásához nyomjon Szóközt vagy Entert. Húzás közben használja a nyílgombokat a médiamelléklet adott irányba történő mozgatásához. A médiamelléklet új pozícióba helyezéséhez nyomja meg a Szóközt vagy az Entert, vagy a megszakításhoz nyomja meg az Esc gombot.",
"upload_form.drag_and_drop.on_drag_cancel": "Az áthúzást megszakította. A(z) {item} médiamelléklet el lett dobva.",
"upload_form.drag_and_drop.on_drag_end": "A(z) {item} médiamelléklet el lett dobva.",
"upload_form.drag_and_drop.on_drag_over": "A(z) {item} médiamelléklet át lett helyezve.",
"upload_form.drag_and_drop.on_drag_start": "A(z) {item} médiamelléklet fel lett véve.",
"upload_form.edit": "Szerkesztés", "upload_form.edit": "Szerkesztés",
"upload_form.thumbnail": "Bélyegkép megváltoztatása", "upload_form.thumbnail": "Bélyegkép megváltoztatása",
"upload_form.video_description": "Leírás siket, hallássérült, vak vagy gyengénlátó emberek számára", "upload_form.video_description": "Leírás siket, hallássérült, vak vagy gyengénlátó emberek számára",

View file

@ -99,7 +99,7 @@
"block_modal.you_wont_see_mentions": "Vu ne vidos mesaji qua mencionas oli.", "block_modal.you_wont_see_mentions": "Vu ne vidos mesaji qua mencionas oli.",
"boost_modal.combo": "Vu povas pulsar {combo} por omisar co venontafoye", "boost_modal.combo": "Vu povas pulsar {combo} por omisar co venontafoye",
"boost_modal.reblog": "Ka repetar posto?", "boost_modal.reblog": "Ka repetar posto?",
"boost_modal.undo_reblog": "Ka retrorepetar posto?", "boost_modal.undo_reblog": "Ka desrepetar posto?",
"bundle_column_error.copy_stacktrace": "Kopierorraporto", "bundle_column_error.copy_stacktrace": "Kopierorraporto",
"bundle_column_error.error.body": "La demandita pagino ne povas strukturigesar. Forsan ol esas eroro en kodexo hike o vidilkoncilieblesproblemo.", "bundle_column_error.error.body": "La demandita pagino ne povas strukturigesar. Forsan ol esas eroro en kodexo hike o vidilkoncilieblesproblemo.",
"bundle_column_error.error.title": "Ach!", "bundle_column_error.error.title": "Ach!",
@ -194,7 +194,7 @@
"confirmations.reply.title": "Ka remplasar posto?", "confirmations.reply.title": "Ka remplasar posto?",
"confirmations.unfollow.confirm": "Desequez", "confirmations.unfollow.confirm": "Desequez",
"confirmations.unfollow.message": "Ka vu certe volas desequar {name}?", "confirmations.unfollow.message": "Ka vu certe volas desequar {name}?",
"confirmations.unfollow.title": "Ka retrosequar uzanto?", "confirmations.unfollow.title": "Ka dessequar uzanto?",
"content_warning.hide": "Celez posto", "content_warning.hide": "Celez posto",
"content_warning.show": "Montrez nur", "content_warning.show": "Montrez nur",
"conversation.delete": "Efacez konverso", "conversation.delete": "Efacez konverso",
@ -463,7 +463,7 @@
"moved_to_account_banner.text": "Vua konto {disabledAccount} es nune desaktiva pro ke vu movis a {movedToAccount}.", "moved_to_account_banner.text": "Vua konto {disabledAccount} es nune desaktiva pro ke vu movis a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Celez de savigi", "mute_modal.hide_from_notifications": "Celez de savigi",
"mute_modal.hide_options": "Celez preferaji", "mute_modal.hide_options": "Celez preferaji",
"mute_modal.indefinite": "Til me retrosilencigas lu", "mute_modal.indefinite": "Til me dessilencigas lu",
"mute_modal.show_options": "Montrez preferaji", "mute_modal.show_options": "Montrez preferaji",
"mute_modal.they_can_mention_and_follow": "Lu povas mencionar e sequar vu, ma vu ne vidos lu.", "mute_modal.they_can_mention_and_follow": "Lu povas mencionar e sequar vu, ma vu ne vidos lu.",
"mute_modal.they_wont_know": "Lu ne savos ke lu silencigesis.", "mute_modal.they_wont_know": "Lu ne savos ke lu silencigesis.",
@ -852,6 +852,11 @@
"upload_error.poll": "Failadchargo ne permisesas kun votposti.", "upload_error.poll": "Failadchargo ne permisesas kun votposti.",
"upload_form.audio_description": "Deskriptez por personi kun audnekapableso", "upload_form.audio_description": "Deskriptez por personi kun audnekapableso",
"upload_form.description": "Deskriptez por personi kun vidnekapableso", "upload_form.description": "Deskriptez por personi kun vidnekapableso",
"upload_form.drag_and_drop.instructions": "Por tenar mediatachajo, presez spaco o eniro. Presez spaco o eniro itere por destenar la mediatachajo en olua nova loko, o presez eskapo por anular.",
"upload_form.drag_and_drop.on_drag_cancel": "Tiro anulesis. Mediatachajo {item} destenesis.",
"upload_form.drag_and_drop.on_drag_end": "Mediatachajo {item} destenesis.",
"upload_form.drag_and_drop.on_drag_over": "Mediatachajo {item} movigesis.",
"upload_form.drag_and_drop.on_drag_start": "Tenis mediatachajo {item}.",
"upload_form.edit": "Modifikez", "upload_form.edit": "Modifikez",
"upload_form.thumbnail": "Chanjez imajeto", "upload_form.thumbnail": "Chanjez imajeto",
"upload_form.video_description": "Deskriptez por personi kun audnekapableso o vidnekapableso", "upload_form.video_description": "Deskriptez por personi kun audnekapableso o vidnekapableso",

View file

@ -1,5 +1,5 @@
{ {
"about.blocks": "Ulac agbur", "about.blocks": "Iqeddacen yettwaɛassen",
"about.contact": "Anermis:", "about.contact": "Anermis:",
"about.disclaimer": "Mastodon d aseɣẓan ilelli, d aseɣẓan n uɣbalu yeldin, d tnezzut n Mastodon gGmbH.", "about.disclaimer": "Mastodon d aseɣẓan ilelli, d aseɣẓan n uɣbalu yeldin, d tnezzut n Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Ulac taɣẓint", "about.domain_blocks.no_reason_available": "Ulac taɣẓint",
@ -73,6 +73,7 @@
"alert.rate_limited.title": "Aktum s talast", "alert.rate_limited.title": "Aktum s talast",
"alert.unexpected.message": "Yeḍra-d unezri ur netturaǧu ara.", "alert.unexpected.message": "Yeḍra-d unezri ur netturaǧu ara.",
"alert.unexpected.title": "Ayhuh!", "alert.unexpected.title": "Ayhuh!",
"alt_text_badge.title": "Aḍris asegzan",
"announcement.announcement": "Ulɣu", "announcement.announcement": "Ulɣu",
"audio.hide": "Ffer amesli", "audio.hide": "Ffer amesli",
"block_modal.show_less": "Ssken-d drus", "block_modal.show_less": "Ssken-d drus",
@ -549,6 +550,7 @@
"report_notification.attached_statuses": "{count, plural, one {{count} n tsuffeɣt} other {{count} n tsuffiɣin}} ttwaqnent", "report_notification.attached_statuses": "{count, plural, one {{count} n tsuffeɣt} other {{count} n tsuffiɣin}} ttwaqnent",
"report_notification.categories.legal": "Azerfan", "report_notification.categories.legal": "Azerfan",
"report_notification.categories.other": "Ayen nniḍen", "report_notification.categories.other": "Ayen nniḍen",
"report_notification.categories.other_sentence": "ayen nniḍen",
"report_notification.categories.spam": "Aspam", "report_notification.categories.spam": "Aspam",
"report_notification.categories.spam_sentence": "aspam", "report_notification.categories.spam_sentence": "aspam",
"report_notification.open": "Ldi aneqqis", "report_notification.open": "Ldi aneqqis",
@ -588,6 +590,7 @@
"status.direct": "Bder-d @{name} weḥd-s", "status.direct": "Bder-d @{name} weḥd-s",
"status.direct_indicator": "Abdar uslig", "status.direct_indicator": "Abdar uslig",
"status.edit": "Ẓreg", "status.edit": "Ẓreg",
"status.edited": "Taẓrigt taneggarut {date}",
"status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}", "status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}",
"status.embed": "Awi-d tangalt n weslaɣ", "status.embed": "Awi-d tangalt n weslaɣ",
"status.favourite": "Amenyaf", "status.favourite": "Amenyaf",

View file

@ -31,7 +31,7 @@
"account.featured_tags.last_status_never": "게시물 없음", "account.featured_tags.last_status_never": "게시물 없음",
"account.featured_tags.title": "{name} 님의 추천 해시태그", "account.featured_tags.title": "{name} 님의 추천 해시태그",
"account.follow": "팔로우", "account.follow": "팔로우",
"account.follow_back": "맞팔로우 하기", "account.follow_back": "맞팔로우",
"account.followers": "팔로워", "account.followers": "팔로워",
"account.followers.empty": "아직 아무도 이 사용자를 팔로우하고 있지 않습니다.", "account.followers.empty": "아직 아무도 이 사용자를 팔로우하고 있지 않습니다.",
"account.followers_counter": "{count, plural, other {팔로워 {counter}명}}", "account.followers_counter": "{count, plural, other {팔로워 {counter}명}}",
@ -85,6 +85,7 @@
"alert.rate_limited.title": "빈도 제한됨", "alert.rate_limited.title": "빈도 제한됨",
"alert.unexpected.message": "예상하지 못한 에러가 발생했습니다.", "alert.unexpected.message": "예상하지 못한 에러가 발생했습니다.",
"alert.unexpected.title": "앗!", "alert.unexpected.title": "앗!",
"alt_text_badge.title": "대체 문구",
"announcement.announcement": "공지사항", "announcement.announcement": "공지사항",
"attachments_list.unprocessed": "(처리 안 됨)", "attachments_list.unprocessed": "(처리 안 됨)",
"audio.hide": "소리 숨기기", "audio.hide": "소리 숨기기",
@ -221,6 +222,8 @@
"domain_block_modal.they_cant_follow": "이 서버의 누구도 나를 팔로우 할 수 없습니다.", "domain_block_modal.they_cant_follow": "이 서버의 누구도 나를 팔로우 할 수 없습니다.",
"domain_block_modal.they_wont_know": "내가 차단했다는 사실을 모를 것입니다.", "domain_block_modal.they_wont_know": "내가 차단했다는 사실을 모를 것입니다.",
"domain_block_modal.title": "도메인을 차단할까요?", "domain_block_modal.title": "도메인을 차단할까요?",
"domain_block_modal.you_will_lose_num_followers": "{followersCount, plural, other {{followersCountDisplay} 명의 팔로워}}와 {followingCount, plural, other {{followingCountDisplay} 명의 팔로우}}를 잃게 됩니다.",
"domain_block_modal.you_will_lose_relationships": "이 서버의 팔로워와 팔로우를 모두 잃게 됩니다.",
"domain_block_modal.you_wont_see_posts": "이 서버 사용자의 게시물이나 알림을 보지 않게 됩니다.", "domain_block_modal.you_wont_see_posts": "이 서버 사용자의 게시물이나 알림을 보지 않게 됩니다.",
"domain_pill.activitypub_lets_connect": "이것은 마스토돈 뿐만이 아니라 다른 소셜 앱들을 넘나들며 사람들을 연결하고 상호작용 할 수 있게 합니다.", "domain_pill.activitypub_lets_connect": "이것은 마스토돈 뿐만이 아니라 다른 소셜 앱들을 넘나들며 사람들을 연결하고 상호작용 할 수 있게 합니다.",
"domain_pill.activitypub_like_language": "액티비티펍은 마스토돈이 다른 소셜 네트워크와 대화할 때 쓰는 언어 같은 것입니다.", "domain_pill.activitypub_like_language": "액티비티펍은 마스토돈이 다른 소셜 네트워크와 대화할 때 쓰는 언어 같은 것입니다.",
@ -849,6 +852,11 @@
"upload_error.poll": "파일 업로드는 설문과 함께 쓸 수 없습니다.", "upload_error.poll": "파일 업로드는 설문과 함께 쓸 수 없습니다.",
"upload_form.audio_description": "청각장애인이나 저청각자를 위한 설명", "upload_form.audio_description": "청각장애인이나 저청각자를 위한 설명",
"upload_form.description": "시각장애인이나 저시력자를 위한 설명", "upload_form.description": "시각장애인이나 저시력자를 위한 설명",
"upload_form.drag_and_drop.instructions": "미디어 첨부파일을 집으려면 스페이스나 엔터를 누르세요. 드래그 하는 동안 방향키를 이용해 원하는 방향으로 이동할 수 있습니다. 스페이스나 엔터를 다시 눌러 새 위치에 놓거나 ESC를 이용해 취소할 수 있습니다.",
"upload_form.drag_and_drop.on_drag_cancel": "드래그가 취소되었습니다. 미디어 첨부파일 {item}은 이동되지 않았습니다.",
"upload_form.drag_and_drop.on_drag_end": "미디어 첨부파일 {item}은 이동되지 않았습니다.",
"upload_form.drag_and_drop.on_drag_over": "미디어 첨부파일 {item}이 이동되었습니다.",
"upload_form.drag_and_drop.on_drag_start": "미디어 첨부파일 {item}을 집었습니다.",
"upload_form.edit": "수정", "upload_form.edit": "수정",
"upload_form.thumbnail": "썸네일 변경", "upload_form.thumbnail": "썸네일 변경",
"upload_form.video_description": "청각장애인, 저청각자, 시각장애인, 저시력자를 위한 설명", "upload_form.video_description": "청각장애인, 저청각자, 시각장애인, 저시력자를 위한 설명",

View file

@ -1,7 +1,7 @@
{ {
"about.blocks": "Prižiūrimi serveriai", "about.blocks": "Prižiūrimi serveriai",
"about.contact": "Kontaktai:", "about.contact": "Kontaktai:",
"about.disclaimer": "„Mastodon“ tai nemokama atvirojo kodo programinė įranga ir „Mastodon gGmbH prekės ženklas.", "about.disclaimer": "„Mastodon“ tai nemokama atvirojo kodo programinė įranga ir „Mastodon gGmbH prekės ženklas.",
"about.domain_blocks.no_reason_available": "Priežastis nepateikta", "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.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į sekant.", "about.domain_blocks.silenced.explanation": "Paprastai nematysi profilių ir turinio iš šio serverio, nebent jį aiškiai ieškosi arba pasirinksi jį sekant.",
@ -840,6 +840,11 @@
"upload_error.poll": "Failų įkėlimas neleidžiamas su apklausomis.", "upload_error.poll": "Failų įkėlimas neleidžiamas su apklausomis.",
"upload_form.audio_description": "Aprašyk žmonėms, kurie yra kurtieji ar neprigirdintys.", "upload_form.audio_description": "Aprašyk žmonėms, kurie yra kurtieji ar neprigirdintys.",
"upload_form.description": "Aprašyk žmonėms, kurie yra aklieji arba silpnaregiai.", "upload_form.description": "Aprašyk žmonėms, kurie yra aklieji arba silpnaregiai.",
"upload_form.drag_and_drop.instructions": "Kad paimtum medijos priedą, paspausk tarpo arba įvedimo klavišą. Tempant naudok rodyklių klavišus, kad perkeltum medijos priedą bet kuria kryptimi. Dar kartą paspausk tarpo arba įvedimo klavišą, kad nuleistum medijos priedą naujoje vietoje, arba paspausk grįžimo klavišą, kad atšauktum.",
"upload_form.drag_and_drop.on_drag_cancel": "Nutempimas buvo atšauktas. Medijos priedas {item} buvo nuleistas.",
"upload_form.drag_and_drop.on_drag_end": "Medijos priedas {item} buvo nuleistas.",
"upload_form.drag_and_drop.on_drag_over": "Medijos priedas {item} buvo perkeltas.",
"upload_form.drag_and_drop.on_drag_start": "Paimtas medijos priedas {item}.",
"upload_form.edit": "Redaguoti", "upload_form.edit": "Redaguoti",
"upload_form.thumbnail": "Keisti miniatiūrą", "upload_form.thumbnail": "Keisti miniatiūrą",
"upload_form.video_description": "Aprašyk žmonėms, kurie yra kurtieji, neprigirdintys, aklieji ar silpnaregiai.", "upload_form.video_description": "Aprašyk žmonėms, kurie yra kurtieji, neprigirdintys, aklieji ar silpnaregiai.",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "Het uploaden van bestanden is bij peilingen niet toegestaan.", "upload_error.poll": "Het uploaden van bestanden is bij peilingen niet toegestaan.",
"upload_form.audio_description": "Omschrijf dit voor dove of slechthorende mensen", "upload_form.audio_description": "Omschrijf dit voor dove of slechthorende mensen",
"upload_form.description": "Omschrijf dit voor blinde of slechtziende mensen", "upload_form.description": "Omschrijf dit voor blinde of slechtziende mensen",
"upload_form.drag_and_drop.instructions": "Druk op spatie of enter om een mediabijlage op te pakken. Gebruik de pijltjestoetsen om de bijlage in een bepaalde richting te verplaatsen. Druk opnieuw op de spatiebalk of enter om de mediabijlage op de nieuwe positie te plaatsen, of druk op escape om te annuleren.",
"upload_form.drag_and_drop.on_drag_cancel": "Slepen is geannuleerd. Mediabijlage {item} is niet verplaatst.",
"upload_form.drag_and_drop.on_drag_end": "Mediabijlage {item} is niet verplaatst.",
"upload_form.drag_and_drop.on_drag_over": "Mediabijlage {item} is verplaatst.",
"upload_form.drag_and_drop.on_drag_start": "Mediabijlage {item} is opgepakt.",
"upload_form.edit": "Bewerken", "upload_form.edit": "Bewerken",
"upload_form.thumbnail": "Miniatuurafbeelding wijzigen", "upload_form.thumbnail": "Miniatuurafbeelding wijzigen",
"upload_form.video_description": "Omschrijf dit voor dove, slechthorende, blinde of slechtziende mensen", "upload_form.video_description": "Omschrijf dit voor dove, slechthorende, blinde of slechtziende mensen",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Redusert kapasitet", "alert.rate_limited.title": "Redusert kapasitet",
"alert.unexpected.message": "Det oppstod eit uventa problem.", "alert.unexpected.message": "Det oppstod eit uventa problem.",
"alert.unexpected.title": "Oi sann!", "alert.unexpected.title": "Oi sann!",
"alt_text_badge.title": "Alternativ tekst",
"announcement.announcement": "Kunngjering", "announcement.announcement": "Kunngjering",
"attachments_list.unprocessed": "(ubehandla)", "attachments_list.unprocessed": "(ubehandla)",
"audio.hide": "Gøym lyd", "audio.hide": "Gøym lyd",
@ -221,6 +222,8 @@
"domain_block_modal.they_cant_follow": "Ingen på denne tenaren kan fylgja deg.", "domain_block_modal.they_cant_follow": "Ingen på denne tenaren kan fylgja deg.",
"domain_block_modal.they_wont_know": "Dei veit ikkje at dei er blokkerte.", "domain_block_modal.they_wont_know": "Dei veit ikkje at dei er blokkerte.",
"domain_block_modal.title": "Blokker domenet?", "domain_block_modal.title": "Blokker domenet?",
"domain_block_modal.you_will_lose_num_followers": "Du vil mista {followersCount, plural, one {{followersCountDisplay} fylgjar} other {{followersCountDisplay} fylgjarar}} og {followingCount, plural, one {{followingCountDisplay} person du fylgjer} other {{followingCountDisplay} folk du fylgjer}}.",
"domain_block_modal.you_will_lose_relationships": "Du vil mista alle fylgjarar og folk du fylgjer på denne tenaren.",
"domain_block_modal.you_wont_see_posts": "Du vil ikkje sjå innlegg eller varslingar frå brukarar på denne tenaren.", "domain_block_modal.you_wont_see_posts": "Du vil ikkje sjå innlegg eller varslingar frå brukarar på denne tenaren.",
"domain_pill.activitypub_lets_connect": "Den lar deg kople til og samhandle med folk ikkje berre på Mastodon, men òg på tvers av forskjellige sosiale appar.", "domain_pill.activitypub_lets_connect": "Den lar deg kople til og samhandle med folk ikkje berre på Mastodon, men òg på tvers av forskjellige sosiale appar.",
"domain_pill.activitypub_like_language": "ActivityPub er som språket Mastodon snakkar med andre sosiale nettverk.", "domain_pill.activitypub_like_language": "ActivityPub er som språket Mastodon snakkar med andre sosiale nettverk.",
@ -849,6 +852,11 @@
"upload_error.poll": "Filopplasting er ikkje lov for rundspørjingar.", "upload_error.poll": "Filopplasting er ikkje lov for rundspørjingar.",
"upload_form.audio_description": "Skildre for dei med nedsett høyrsel", "upload_form.audio_description": "Skildre for dei med nedsett høyrsel",
"upload_form.description": "Skildre for blinde og svaksynte", "upload_form.description": "Skildre for blinde og svaksynte",
"upload_form.drag_and_drop.instructions": "For å plukka opp eit medievedlegg, trykkjer du på mellomrom eller enter. Når du dreg, brukar du piltastane for å flytta vedlegget i den retninga du vil. Deretter trykkjer du mellomrom eller enter att for å sleppa vedlegget på den nye plassen, eller trykk escape for å avbryta.",
"upload_form.drag_and_drop.on_drag_cancel": "Du avbraut draginga. Medievedlegget {item} vart sleppt.",
"upload_form.drag_and_drop.on_drag_end": "Medeivedlegget {item} vart sleppt.",
"upload_form.drag_and_drop.on_drag_over": "Medievedlegget {item} vart flytta.",
"upload_form.drag_and_drop.on_drag_start": "Plukka opp medievedlegget {item}.",
"upload_form.edit": "Rediger", "upload_form.edit": "Rediger",
"upload_form.thumbnail": "Bytt miniatyrbilete", "upload_form.thumbnail": "Bytt miniatyrbilete",
"upload_form.video_description": "Skildre for dei med nedsett høyrsel eller redusert syn", "upload_form.video_description": "Skildre for dei med nedsett høyrsel eller redusert syn",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.", "upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.",
"upload_form.audio_description": "Opisz dla osób niesłyszących i niedosłyszących", "upload_form.audio_description": "Opisz dla osób niesłyszących i niedosłyszących",
"upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących", "upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących",
"upload_form.drag_and_drop.instructions": "Naciśnij spację lub enter żeby podnieść załącznik. Podczas przeciągania, strzałki przesuwają załącznik. Naciśnięcie spacji lub entera upuści załącznik w nowym miejscu, a escape anuluje przesuwanie.",
"upload_form.drag_and_drop.on_drag_cancel": "Przesuwanie anulowane. Załącznik {item} upuszczony.",
"upload_form.drag_and_drop.on_drag_end": "Upuszczono załącznik {item}.",
"upload_form.drag_and_drop.on_drag_over": "Przesunięto załącznik {item}.",
"upload_form.drag_and_drop.on_drag_start": "Podniesiono załącznik {item}.",
"upload_form.edit": "Edytuj", "upload_form.edit": "Edytuj",
"upload_form.thumbnail": "Zmień miniaturę", "upload_form.thumbnail": "Zmień miniaturę",
"upload_form.video_description": "Opisz dla osób niesłyszących, niedosłyszących, niewidomych i niedowidzących", "upload_form.video_description": "Opisz dla osób niesłyszących, niedosłyszących, niewidomych i niedowidzących",

View file

@ -437,6 +437,7 @@
"lightbox.next": "Próximo", "lightbox.next": "Próximo",
"lightbox.previous": "Anterior", "lightbox.previous": "Anterior",
"lightbox.zoom_in": "Voltar para o tamanho real", "lightbox.zoom_in": "Voltar para o tamanho real",
"lightbox.zoom_out": "Zoom para ajustar",
"limited_account_hint.action": "Exibir perfil mesmo assim", "limited_account_hint.action": "Exibir perfil mesmo assim",
"limited_account_hint.title": "Este perfil foi ocultado pelos moderadores do {domain}.", "limited_account_hint.title": "Este perfil foi ocultado pelos moderadores do {domain}.",
"link_preview.author": "Por {name}", "link_preview.author": "Por {name}",
@ -813,7 +814,7 @@
"status.reblogs.empty": "Nada aqui. Quando alguém der boost, o usuário aparecerá aqui.", "status.reblogs.empty": "Nada aqui. Quando alguém der boost, o usuário aparecerá aqui.",
"status.redraft": "Excluir e rascunhar", "status.redraft": "Excluir e rascunhar",
"status.remove_bookmark": "Remover do Salvos", "status.remove_bookmark": "Remover do Salvos",
"status.replied_in_thread": "Respondido na discussão", "status.replied_in_thread": "Respondido na conversa",
"status.replied_to": "Em resposta a {name}", "status.replied_to": "Em resposta a {name}",
"status.reply": "Responder", "status.reply": "Responder",
"status.replyAll": "Responder a conversa", "status.replyAll": "Responder a conversa",
@ -851,6 +852,11 @@
"upload_error.poll": "Mídias não podem ser anexadas em toots com enquetes.", "upload_error.poll": "Mídias não podem ser anexadas em toots com enquetes.",
"upload_form.audio_description": "Descrever para deficientes auditivos", "upload_form.audio_description": "Descrever para deficientes auditivos",
"upload_form.description": "Descrever para deficientes visuais", "upload_form.description": "Descrever para deficientes visuais",
"upload_form.drag_and_drop.instructions": "Para pegar um anexo de mídia, pressione espaço ou enter. Enquanto arrastar, use as setas do teclado para mover o anexo de mídia em qualquer direção. Pressione espaço ou insira novamente para soltar o anexo de mídia em sua nova posição, ou pressione escape para cancelar.",
"upload_form.drag_and_drop.on_drag_cancel": "O arrastamento foi cancelado. O anexo da mídia {item} foi descartado.",
"upload_form.drag_and_drop.on_drag_end": "O anexo {item} foi removido.",
"upload_form.drag_and_drop.on_drag_over": "O anexo de mídia {item} foi movido.",
"upload_form.drag_and_drop.on_drag_start": "Foi coletado o anexo de mídia {item}.",
"upload_form.edit": "Editar", "upload_form.edit": "Editar",
"upload_form.thumbnail": "Alterar miniatura", "upload_form.thumbnail": "Alterar miniatura",
"upload_form.video_description": "Descrever para deficientes auditivos ou visuais", "upload_form.video_description": "Descrever para deficientes auditivos ou visuais",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "มีการจำกัดอัตรา", "alert.rate_limited.title": "มีการจำกัดอัตรา",
"alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด", "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
"alert.unexpected.title": "อุปส์!", "alert.unexpected.title": "อุปส์!",
"alt_text_badge.title": "ข้อความแสดงแทน",
"announcement.announcement": "ประกาศ", "announcement.announcement": "ประกาศ",
"attachments_list.unprocessed": "(ยังไม่ได้ประมวลผล)", "attachments_list.unprocessed": "(ยังไม่ได้ประมวลผล)",
"audio.hide": "ซ่อนเสียง", "audio.hide": "ซ่อนเสียง",

View file

@ -85,6 +85,7 @@
"alert.rate_limited.title": "Vượt giới hạn", "alert.rate_limited.title": "Vượt giới hạn",
"alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.", "alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.",
"alert.unexpected.title": "Ốiii!", "alert.unexpected.title": "Ốiii!",
"alt_text_badge.title": "Văn bản thay thế",
"announcement.announcement": "Có gì mới?", "announcement.announcement": "Có gì mới?",
"attachments_list.unprocessed": "(chưa xử lí)", "attachments_list.unprocessed": "(chưa xử lí)",
"audio.hide": "Ẩn âm thanh", "audio.hide": "Ẩn âm thanh",
@ -463,7 +464,7 @@
"mute_modal.hide_from_notifications": "Ẩn thông báo", "mute_modal.hide_from_notifications": "Ẩn thông báo",
"mute_modal.hide_options": "Tùy chọn ẩn", "mute_modal.hide_options": "Tùy chọn ẩn",
"mute_modal.indefinite": "Cho tới khi bỏ ẩn", "mute_modal.indefinite": "Cho tới khi bỏ ẩn",
"mute_modal.show_options": "Hiển thị tùy chọn", "mute_modal.show_options": "Thêm tùy chọn",
"mute_modal.they_can_mention_and_follow": "Họ có thể nhắc đến và theo dõi bạn, nhưng bạn không thấy họ.", "mute_modal.they_can_mention_and_follow": "Họ có thể nhắc đến và theo dõi bạn, nhưng bạn không thấy họ.",
"mute_modal.they_wont_know": "Họ sẽ không biết đã bị bạn ẩn.", "mute_modal.they_wont_know": "Họ sẽ không biết đã bị bạn ẩn.",
"mute_modal.title": "Ẩn người này?", "mute_modal.title": "Ẩn người này?",
@ -752,7 +753,7 @@
"search_popout.language_code": "mã ngôn ngữ ISO", "search_popout.language_code": "mã ngôn ngữ ISO",
"search_popout.options": "Tìm nâng cao", "search_popout.options": "Tìm nâng cao",
"search_popout.quick_actions": "Thao tác nhanh", "search_popout.quick_actions": "Thao tác nhanh",
"search_popout.recent": "Bạn đã tìm", "search_popout.recent": "Lượt tìm gần đây",
"search_popout.specific_date": "ngày cụ thể", "search_popout.specific_date": "ngày cụ thể",
"search_popout.user": "địa chỉ Mastodon", "search_popout.user": "địa chỉ Mastodon",
"search_results.accounts": "Mọi người", "search_results.accounts": "Mọi người",
@ -779,7 +780,7 @@
"status.bookmark": "Lưu", "status.bookmark": "Lưu",
"status.cancel_reblog_private": "Hủy đăng lại", "status.cancel_reblog_private": "Hủy đăng lại",
"status.cannot_reblog": "Không thể đăng lại tút này", "status.cannot_reblog": "Không thể đăng lại tút này",
"status.continued_thread": "Tiếp tục trong chủ đề", "status.continued_thread": "Tiếp tục chủ đề",
"status.copy": "Sao chép URL", "status.copy": "Sao chép URL",
"status.delete": "Xóa", "status.delete": "Xóa",
"status.detailed_status": "Xem chi tiết thêm", "status.detailed_status": "Xem chi tiết thêm",
@ -813,7 +814,7 @@
"status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.", "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.",
"status.redraft": "Xóa và viết lại", "status.redraft": "Xóa và viết lại",
"status.remove_bookmark": "Bỏ lưu", "status.remove_bookmark": "Bỏ lưu",
"status.replied_in_thread": "Trả lời trong chủ đề", "status.replied_in_thread": "Trả lời thảo luận",
"status.replied_to": "Trả lời {name}", "status.replied_to": "Trả lời {name}",
"status.reply": "Trả lời", "status.reply": "Trả lời",
"status.replyAll": "Trả lời", "status.replyAll": "Trả lời",
@ -851,6 +852,11 @@
"upload_error.poll": "Không cho phép đính kèm tập tin.", "upload_error.poll": "Không cho phép đính kèm tập tin.",
"upload_form.audio_description": "Mô tả cho người mất thính giác", "upload_form.audio_description": "Mô tả cho người mất thính giác",
"upload_form.description": "Mô tả cho người khiếm thị", "upload_form.description": "Mô tả cho người khiếm thị",
"upload_form.drag_and_drop.instructions": "Để chọn tập tin đính kèm, hãy nhấn phím cách hoặc phím Enter. Trong khi kéo, sử dụng các phím mũi tên để di chuyển tập tin đính kèm theo bất kỳ hướng nào. Nhấn phím cách hoặc phím Enter một lần nữa để thả tập tin đính kèm vào vị trí mới hoặc nhấn phím thoát để hủy.",
"upload_form.drag_and_drop.on_drag_cancel": "Kéo thả đã bị hủy bỏ. Tập tin đính kèm {item} bị bỏ qua.",
"upload_form.drag_and_drop.on_drag_end": "Tập tin đính kèm {item} bị bỏ qua.",
"upload_form.drag_and_drop.on_drag_over": "Tập tin đính kèm {item} đã bị dời.",
"upload_form.drag_and_drop.on_drag_start": "Đã chọn tập tin đính kèm {item}.",
"upload_form.edit": "Biên tập", "upload_form.edit": "Biên tập",
"upload_form.thumbnail": "Đổi ảnh thumbnail", "upload_form.thumbnail": "Đổi ảnh thumbnail",
"upload_form.video_description": "Mô tả cho người mất thị lực hoặc không thể nghe", "upload_form.video_description": "Mô tả cho người mất thị lực hoặc không thể nghe",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "投票中不允许上传文件。", "upload_error.poll": "投票中不允许上传文件。",
"upload_form.audio_description": "为听障人士添加文字描述", "upload_form.audio_description": "为听障人士添加文字描述",
"upload_form.description": "为视觉障碍人士添加文字说明", "upload_form.description": "为视觉障碍人士添加文字说明",
"upload_form.drag_and_drop.instructions": "要选中某个媒体附件,请按空格键或回车键。在拖拽时,使用方向键将媒体附件移动到任何给定方向。再次按空格键或回车键可将媒体附件放置在新位置,或按 Esc 键取消。",
"upload_form.drag_and_drop.on_drag_cancel": "拖拽已终止。媒体附件 {item} 已被丢弃。",
"upload_form.drag_and_drop.on_drag_end": "媒体附件 {item} 已被丢弃。",
"upload_form.drag_and_drop.on_drag_over": "媒体附件 {item} 已被移动。",
"upload_form.drag_and_drop.on_drag_start": "已选中媒体附件 {item}。",
"upload_form.edit": "编辑", "upload_form.edit": "编辑",
"upload_form.thumbnail": "更改缩略图", "upload_form.thumbnail": "更改缩略图",
"upload_form.video_description": "为听障人士和视障人士添加文字描述", "upload_form.video_description": "为听障人士和视障人士添加文字描述",

View file

@ -852,6 +852,11 @@
"upload_error.poll": "不允許於投票時上傳檔案。", "upload_error.poll": "不允許於投票時上傳檔案。",
"upload_form.audio_description": "為聽障人士增加文字說明", "upload_form.audio_description": "為聽障人士增加文字說明",
"upload_form.description": "為視障人士增加文字說明", "upload_form.description": "為視障人士增加文字說明",
"upload_form.drag_and_drop.instructions": "請按空白鍵或 Enter 鍵取多媒體附加檔案。使用方向鍵移動多媒體附加檔案。按下空白鍵或 Enter 鍵於新位置放置多媒體附加檔案,或按下 ESC 鍵取消。",
"upload_form.drag_and_drop.on_drag_cancel": "移動已取消。多媒體附加檔案 {item} 已被放置。",
"upload_form.drag_and_drop.on_drag_end": "多媒體附加檔案 {item} 已被放置。",
"upload_form.drag_and_drop.on_drag_over": "多媒體附加檔案 {item} 已被移動。",
"upload_form.drag_and_drop.on_drag_start": "多媒體附加檔案 {item} 已被選取。",
"upload_form.edit": "編輯", "upload_form.edit": "編輯",
"upload_form.thumbnail": "更改預覽圖", "upload_form.thumbnail": "更改預覽圖",
"upload_form.video_description": "為聽障或視障人士增加文字說明", "upload_form.video_description": "為聽障或視障人士增加文字說明",

View file

@ -0,0 +1,2 @@
// Temporary until we type it correctly
export type MediaAttachment = Immutable.Map<string, unknown>;

View file

@ -21,6 +21,7 @@ import {
unmountNotifications, unmountNotifications,
refreshStaleNotificationGroups, refreshStaleNotificationGroups,
pollRecentNotifications, pollRecentNotifications,
shouldGroupNotificationType,
} from 'mastodon/actions/notification_groups'; } from 'mastodon/actions/notification_groups';
import { import {
disconnectTimeline, disconnectTimeline,
@ -205,6 +206,7 @@ function processNewNotification(
groups: NotificationGroupsState['groups'], groups: NotificationGroupsState['groups'],
notification: ApiNotificationJSON, notification: ApiNotificationJSON,
) { ) {
if (shouldGroupNotificationType(notification.type)) {
const existingGroupIndex = groups.findIndex( const existingGroupIndex = groups.findIndex(
(group) => (group) =>
group.type !== 'gap' && group.group_key === notification.group_key, group.type !== 'gap' && group.group_key === notification.group_key,
@ -240,11 +242,14 @@ function processNewNotification(
mergeGapsAround(groups, existingGroupIndex); mergeGapsAround(groups, existingGroupIndex);
groups.unshift(existingGroup); groups.unshift(existingGroup);
return;
} }
} else { }
// Create a new group }
// We have not found an existing group, create a new one
groups.unshift(createNotificationGroupFromNotificationJSON(notification)); groups.unshift(createNotificationGroupFromNotificationJSON(notification));
}
} }
function trimNotifications(state: NotificationGroupsState) { function trimNotifications(state: NotificationGroupsState) {

View file

@ -366,6 +366,7 @@ table + p {
.email-header-card-banner-td { .email-header-card-banner-td {
border-radius: 12px 12px 0 0; border-radius: 12px 12px 0 0;
width: 236px;
height: 80px; height: 80px;
background-color: #f3f2f5 !important; background-color: #f3f2f5 !important;
background-position: center !important; background-position: center !important;
@ -523,6 +524,7 @@ table + p {
height: 40px; height: 40px;
text-align: center; text-align: center;
mso-padding-alt: 0 35px; mso-padding-alt: 0 35px;
word-break: normal;
} }
.email-btn-a { .email-btn-a {

View file

@ -1054,6 +1054,10 @@ a.name-tag,
} }
} }
.icon {
vertical-align: middle;
}
a.announcements-list__item__title { a.announcements-list__item__title {
&:hover, &:hover,
&:focus, &:focus,

View file

@ -653,19 +653,39 @@ body > [data-popper-placement] {
} }
&__uploads { &__uploads {
display: flex;
gap: 8px;
padding: 0 12px; padding: 0 12px;
flex-wrap: wrap; aspect-ratio: 3/2;
align-self: stretch; }
align-items: flex-start;
align-content: flex-start; .media-gallery {
justify-content: center; gap: 8px;
} }
&__upload { &__upload {
flex: 1 1 0; position: relative;
min-width: calc(50% - 8px); cursor: grab;
&.dragging {
opacity: 0;
}
&.overlay {
height: 100%;
border-radius: 8px;
pointer-events: none;
}
&__drag-handle {
position: absolute;
top: 50%;
inset-inline-start: 0;
transform: translateY(-50%);
color: $white;
background: transparent;
border: 0;
padding: 8px 3px;
cursor: grab;
}
&__actions { &__actions {
display: flex; display: flex;
@ -686,8 +706,7 @@ body > [data-popper-placement] {
&__thumbnail { &__thumbnail {
width: 100%; width: 100%;
height: 144px; height: 100%;
border-radius: 6px;
background-position: center; background-position: center;
background-size: cover; background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
@ -7098,30 +7117,30 @@ a.status-card {
gap: 2px; gap: 2px;
&--layout-2 { &--layout-2 {
.media-gallery__item:nth-child(1) { & > .media-gallery__item:nth-child(1) {
border-end-end-radius: 0; border-end-end-radius: 0;
border-start-end-radius: 0; border-start-end-radius: 0;
} }
.media-gallery__item:nth-child(2) { & > .media-gallery__item:nth-child(2) {
border-start-start-radius: 0; border-start-start-radius: 0;
border-end-start-radius: 0; border-end-start-radius: 0;
} }
} }
&--layout-3 { &--layout-3 {
.media-gallery__item:nth-child(1) { & > .media-gallery__item:nth-child(1) {
border-end-end-radius: 0; border-end-end-radius: 0;
border-start-end-radius: 0; border-start-end-radius: 0;
} }
.media-gallery__item:nth-child(2) { & > .media-gallery__item:nth-child(2) {
border-start-start-radius: 0; border-start-start-radius: 0;
border-end-start-radius: 0; border-end-start-radius: 0;
border-end-end-radius: 0; border-end-end-radius: 0;
} }
.media-gallery__item:nth-child(3) { & > .media-gallery__item:nth-child(3) {
border-start-start-radius: 0; border-start-start-radius: 0;
border-end-start-radius: 0; border-end-start-radius: 0;
border-start-end-radius: 0; border-start-end-radius: 0;
@ -7129,26 +7148,26 @@ a.status-card {
} }
&--layout-4 { &--layout-4 {
.media-gallery__item:nth-child(1) { & > .media-gallery__item:nth-child(1) {
border-end-end-radius: 0; border-end-end-radius: 0;
border-start-end-radius: 0; border-start-end-radius: 0;
border-end-start-radius: 0; border-end-start-radius: 0;
} }
.media-gallery__item:nth-child(2) { & > .media-gallery__item:nth-child(2) {
border-start-start-radius: 0; border-start-start-radius: 0;
border-end-start-radius: 0; border-end-start-radius: 0;
border-end-end-radius: 0; border-end-end-radius: 0;
} }
.media-gallery__item:nth-child(3) { & > .media-gallery__item:nth-child(3) {
border-start-start-radius: 0; border-start-start-radius: 0;
border-start-end-radius: 0; border-start-end-radius: 0;
border-end-start-radius: 0; border-end-start-radius: 0;
border-end-end-radius: 0; border-end-end-radius: 0;
} }
.media-gallery__item:nth-child(4) { & > .media-gallery__item:nth-child(4) {
border-start-start-radius: 0; border-start-start-radius: 0;
border-end-start-radius: 0; border-end-start-radius: 0;
border-start-end-radius: 0; border-start-end-radius: 0;

View file

@ -137,6 +137,7 @@ a.table-action-link {
padding: 0 10px; padding: 0 10px;
color: $darker-text-color; color: $darker-text-color;
font-weight: 500; font-weight: 500;
white-space: nowrap;
&:hover { &:hover {
color: $highlight-text-color; color: $highlight-text-color;
@ -359,6 +360,10 @@ a.table-action-link {
@media screen and (max-width: $no-gap-breakpoint) { @media screen and (max-width: $no-gap-breakpoint) {
border-top: 1px solid var(--background-border-color); border-top: 1px solid var(--background-border-color);
} }
&--no-toolbar {
border-top: 1px solid var(--background-border-color);
}
} }
@media screen and (width <= 870px) { @media screen and (width <= 870px) {

View file

@ -68,8 +68,8 @@ class Account < ApplicationRecord
DEFAULT_FIELDS_SIZE = 8 DEFAULT_FIELDS_SIZE = 8
INSTANCE_ACTOR_ID = -99 INSTANCE_ACTOR_ID = -99
USERNAME_RE = /[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i USERNAME_RE = /[a-z0-9_]+([.-]+[a-z0-9_]+)*/i
MENTION_RE = %r{(?<![=/[:word:]])@((#{USERNAME_RE})(?:@[[:word:].-]+[[:word:]]+)?)} MENTION_RE = %r{(?<![=/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]]+([.-]+[[:word:]]+)*)?)}
URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+} URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+}
USERNAME_ONLY_RE = /\A#{USERNAME_RE}\z/i USERNAME_ONLY_RE = /\A#{USERNAME_RE}\z/i
USERNAME_LENGTH_LIMIT = 30 USERNAME_LENGTH_LIMIT = 30

View file

@ -73,6 +73,8 @@ class Form::AdminSettings
authorized_fetch: :authorized_fetch_mode?, authorized_fetch: :authorized_fetch_mode?,
}.freeze }.freeze
DESCRIPTION_LIMIT = 200
attr_accessor(*KEYS) attr_accessor(*KEYS)
validates :registrations_mode, inclusion: { in: %w(open approved none) }, if: -> { defined?(@registrations_mode) } validates :registrations_mode, inclusion: { in: %w(open approved none) }, if: -> { defined?(@registrations_mode) }
@ -82,7 +84,7 @@ class Form::AdminSettings
validates :show_domain_blocks, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks) } validates :show_domain_blocks, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks) }
validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) } validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) }
validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) } validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) }
validates :site_short_description, length: { maximum: 200 }, if: -> { defined?(@site_short_description) } validates :site_short_description, length: { maximum: DESCRIPTION_LIMIT }, if: -> { defined?(@site_short_description) }
validates :status_page_url, url: true, allow_blank: true validates :status_page_url, url: true, allow_blank: true
validate :validate_site_uploads validate :validate_site_uploads

View file

@ -0,0 +1,66 @@
-# locals: (instance_domain:, period_end_at:, period_start_at:)
%p
= material_symbol 'info'
= t('admin.instances.totals_time_period_hint_html')
.dashboard
.dashboard__item
= react_admin_component :counter,
end_at: period_end_at,
href: admin_accounts_path(origin: 'remote', by_domain: instance_domain),
label: t('admin.instances.dashboard.instance_accounts_measure'),
measure: 'instance_accounts',
params: { domain: instance_domain },
start_at: period_start_at
.dashboard__item
= react_admin_component :counter,
end_at: period_end_at,
label: t('admin.instances.dashboard.instance_statuses_measure'),
measure: 'instance_statuses',
params: { domain: instance_domain },
start_at: period_start_at
.dashboard__item
= react_admin_component :counter,
end_at: period_end_at,
label: t('admin.instances.dashboard.instance_media_attachments_measure'),
measure: 'instance_media_attachments',
params: { domain: instance_domain },
start_at: period_start_at
.dashboard__item
= react_admin_component :counter,
end_at: period_end_at,
label: t('admin.instances.dashboard.instance_follows_measure'),
measure: 'instance_follows',
params: { domain: instance_domain },
start_at: period_start_at
.dashboard__item
= react_admin_component :counter,
end_at: period_end_at,
label: t('admin.instances.dashboard.instance_followers_measure'),
measure: 'instance_followers',
params: { domain: instance_domain },
start_at: period_start_at
.dashboard__item
= react_admin_component :counter,
end_at: period_end_at,
href: admin_reports_path(by_target_domain: instance_domain),
label: t('admin.instances.dashboard.instance_reports_measure'),
measure: 'instance_reports',
params: { domain: instance_domain },
start_at: period_start_at
.dashboard__item
= react_admin_component :dimension,
dimension: 'instance_accounts',
end_at: period_end_at,
label: t('admin.instances.dashboard.instance_accounts_dimension'),
limit: 8,
params: { domain: instance_domain },
start_at: period_start_at
.dashboard__item
= react_admin_component :dimension,
dimension: 'instance_languages',
end_at: period_end_at,
label: t('admin.instances.dashboard.instance_languages_dimension'),
limit: 8,
params: { domain: instance_domain },
start_at: period_start_at

View file

@ -8,72 +8,7 @@
= l(@time_period.last) = l(@time_period.last)
- if @instance.persisted? - if @instance.persisted?
%p = render 'dashboard', instance_domain: @instance.domain, period_end_at: @time_period.last, period_start_at: @time_period.first
= material_symbol 'info'
= t('admin.instances.totals_time_period_hint_html')
.dashboard
.dashboard__item
= react_admin_component :counter,
end_at: @time_period.last,
href: admin_accounts_path(origin: 'remote', by_domain: @instance.domain),
label: t('admin.instances.dashboard.instance_accounts_measure'),
measure: 'instance_accounts',
params: { domain: @instance.domain },
start_at: @time_period.first
.dashboard__item
= react_admin_component :counter,
end_at: @time_period.last,
label: t('admin.instances.dashboard.instance_statuses_measure'),
measure: 'instance_statuses',
params: { domain: @instance.domain },
start_at: @time_period.first
.dashboard__item
= react_admin_component :counter,
end_at: @time_period.last,
label: t('admin.instances.dashboard.instance_media_attachments_measure'),
measure: 'instance_media_attachments',
params: { domain: @instance.domain },
start_at: @time_period.first
.dashboard__item
= react_admin_component :counter,
end_at: @time_period.last,
label: t('admin.instances.dashboard.instance_follows_measure'),
measure: 'instance_follows',
params: { domain: @instance.domain },
start_at: @time_period.first
.dashboard__item
= react_admin_component :counter,
end_at: @time_period.last,
label: t('admin.instances.dashboard.instance_followers_measure'),
measure: 'instance_followers',
params: { domain: @instance.domain },
start_at: @time_period.first
.dashboard__item
= react_admin_component :counter,
end_at: @time_period.last,
href: admin_reports_path(by_target_domain: @instance.domain),
label: t('admin.instances.dashboard.instance_reports_measure'),
measure: 'instance_reports',
params: { domain: @instance.domain },
start_at: @time_period.first
.dashboard__item
= react_admin_component :dimension,
dimension: 'instance_accounts',
end_at: @time_period.last,
label: t('admin.instances.dashboard.instance_accounts_dimension'),
limit: 8,
params: { domain: @instance.domain },
start_at: @time_period.first
.dashboard__item
= react_admin_component :dimension,
dimension: 'instance_languages',
end_at: @time_period.last,
label: t('admin.instances.dashboard.instance_languages_dimension'),
limit: 8,
params: { domain: @instance.domain },
start_at: @time_period.first
- else - else
%p %p
= t('admin.instances.unknown_instance') = t('admin.instances.unknown_instance')

View file

@ -25,7 +25,7 @@
.fields-group .fields-group
= f.input :site_short_description, = f.input :site_short_description,
as: :text, as: :text,
input_html: { rows: 2, maxlength: 200 }, input_html: { rows: 2, maxlength: Form::AdminSettings::DESCRIPTION_LIMIT },
wrapper: :with_block_label wrapper: :with_block_label
.fields-row .fields-row

View file

@ -32,7 +32,7 @@
.batch-table .batch-table
.batch-table__body .batch-table__body
- if @tags.empty? - if @tags.empty?
= nothing_here 'nothing-here--under-tabs' = nothing_here 'nothing-here--under-tabs nothing-here--no-toolbar'
- else - else
= render partial: 'tag', collection: @tags = render partial: 'tag', collection: @tags

View file

@ -13,7 +13,8 @@
as: :check_boxes, as: :check_boxes,
collection_wrapper_tag: 'ul', collection_wrapper_tag: 'ul',
item_wrapper_tag: 'li', item_wrapper_tag: 'li',
disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) } disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) },
label_method: ->(event) { tag.samp(event) }
.fields-group .fields-group
= form.input :template, = form.input :template,

View file

@ -21,7 +21,7 @@
= f.simple_fields_for :account do |ff| = f.simple_fields_for :account do |ff|
= ff.input :username, = ff.input :username,
append: "@#{site_hostname}", append: "@#{site_hostname}",
input_html: { 'aria-label': t('simple_form.labels.defaults.username'), autocomplete: 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, input_html: { 'aria-label': t('simple_form.labels.defaults.username'), autocomplete: 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: Account::USERNAME_LENGTH_LIMIT },
label: false, label: false,
required: true, required: true,
wrapper: :with_label wrapper: :with_label

View file

@ -76,7 +76,7 @@
= simple_form_for(@appeal, url: disputes_strike_appeal_path(@strike)) do |f| = simple_form_for(@appeal, url: disputes_strike_appeal_path(@strike)) do |f|
.fields-group .fields-group
= f.input :text, wrapper: :with_label, input_html: { maxlength: 500 } = f.input :text, wrapper: :with_label, input_html: { maxlength: Appeal::TEXT_LENGTH_LIMIT }
.actions .actions
= f.button :button, t('disputes.strikes.appeals.submit'), type: :submit = f.button :button, t('disputes.strikes.appeals.submit'), type: :submit

View file

@ -15,10 +15,10 @@
.fields-row .fields-row
.fields-row__column.fields-row__column-6 .fields-row__column.fields-row__column-6
.fields-group .fields-group
= f.input :display_name, wrapper: :with_block_label, input_html: { maxlength: 30, data: { default: @account.username } } = f.input :display_name, wrapper: :with_block_label, input_html: { maxlength: Account::DISPLAY_NAME_LENGTH_LIMIT, data: { default: @account.username } }
.fields-group .fields-group
= f.input :note, wrapper: :with_block_label, input_html: { maxlength: 500 } = f.input :note, wrapper: :with_block_label, input_html: { maxlength: Account::NOTE_LENGTH_LIMIT }
.fields-row__column.fields-group.fields-row__column-6 .fields-row__column.fields-group.fields-row__column-6
.input.with_block_label .input.with_block_label
@ -27,8 +27,8 @@
= f.simple_fields_for :fields do |fields_f| = f.simple_fields_for :fields do |fields_f|
.row .row
= fields_f.input :name, placeholder: t('simple_form.labels.account.fields.name'), input_html: { maxlength: 255 } = fields_f.input :name, placeholder: t('simple_form.labels.account.fields.name'), input_html: { maxlength: Account::Field::MAX_CHARACTERS_LOCAL }
= fields_f.input :value, placeholder: t('simple_form.labels.account.fields.value'), input_html: { maxlength: 255 } = fields_f.input :value, placeholder: t('simple_form.labels.account.fields.value'), input_html: { maxlength: Account::Field::MAX_CHARACTERS_LOCAL }
.fields-row .fields-row
.fields-row__column.fields-row__column-6 .fields-row__column.fields-row__column-6

View file

@ -1,7 +1,7 @@
.content__heading__tabs .content__heading__tabs
= render_navigation renderer: :links do |primary| = render_navigation renderer: :links do |primary|
:ruby :ruby
primary.item :profile, safe_join([material_symbol('person'), t('settings.edit_profile')]), settings_profile_path primary.item :edit_profile, safe_join([material_symbol('person'), t('settings.edit_profile')]), settings_profile_path
primary.item :privacy, safe_join([material_symbol('lock'), t('privacy.title')]), settings_privacy_path primary.item :privacy_reach, safe_join([material_symbol('lock'), t('privacy.title')]), settings_privacy_path
primary.item :verification, safe_join([material_symbol('check'), t('verification.verification')]), settings_verification_path primary.item :verification, safe_join([material_symbol('check'), t('verification.verification')]), settings_verification_path
primary.item :featured_tags, safe_join([material_symbol('tag'), t('settings.featured_tags')]), settings_featured_tags_path primary.item :featured_tags, safe_join([material_symbol('tag'), t('settings.featured_tags')]), settings_featured_tags_path

View file

@ -50,13 +50,13 @@
= image_tag frontend_asset_url('images/preview.png'), alt: '', class: 'status-card__image-image' = image_tag frontend_asset_url('images/preview.png'), alt: '', class: 'status-card__image-image'
.status-card__content .status-card__content
%span.status-card__host %span.status-card__host
%span= t('author_attribution.s_blog', name: @account.username) %span= t('author_attribution.s_blog', name: display_name(@account))
· ·
%time.time-ago{ datetime: 1.year.ago.to_date.iso8601 } %time.time-ago{ datetime: 1.year.ago.to_date.iso8601 }
%strong.status-card__title= t('author_attribution.example_title') %strong.status-card__title= t('author_attribution.example_title')
.more-from-author .more-from-author
= logo_as_symbol(:icon) = logo_as_symbol(:icon)
= t('author_attribution.more_from_html', name: link_to(root_url, class: 'story__details__shared__author-link') { image_tag(@account.avatar.url, class: 'account__avatar', width: 16, height: 16, alt: '') + content_tag(:bdi, display_name(@account)) }) = t('author_attribution.more_from_html', name: link_to(root_url, class: 'story__details__shared__author-link') { image_tag(@account.avatar.url, class: 'account__avatar', width: 16, height: 16, alt: '') + tag.bdi(display_name(@account)) })
.actions .actions
= f.button :button, t('generic.save_changes'), type: :submit = f.button :button, t('generic.save_changes'), type: :submit

View file

@ -9,7 +9,7 @@
%td %td
%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
%tr %tr
%td.email-header-card-banner-td{ height: 140, background: full_asset_url(instance_presenter.thumbnail&.file&.url(:'@1x') || frontend_asset_path('images/preview.png')) } %td.email-header-card-banner-td{ background: full_asset_url(instance_presenter.thumbnail&.file&.url(:'@1x') || frontend_asset_path('images/preview.png')) }
%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
%tr %tr
%td.email-header-card-body-td %td.email-header-card-body-td

View file

@ -1,4 +0,0 @@
# frozen_string_literal: true
# 2s is a fairly high default, but that should account for slow servers under load
Regexp.timeout = ENV.fetch('REGEXP_TIMEOUT', 2).to_f if Regexp.respond_to?(:timeout=)

View file

@ -15,6 +15,12 @@ bg:
user/invite_request: user/invite_request:
text: Причина text: Причина
errors: errors:
attributes:
domain:
invalid: не е действително име на домейн
messages:
invalid_domain_on_line: "%{value} не е действително име на домейн"
too_many_lines: е над ограничение от %{limit} реда
models: models:
account: account:
attributes: attributes:

View file

@ -877,7 +877,7 @@ de:
message_html: Kein Sidekiq-Prozess läuft für die %{value} Warteschlange(n). Bitte überprüfe deine Sidekiq-Konfiguration message_html: Kein Sidekiq-Prozess läuft für die %{value} Warteschlange(n). Bitte überprüfe deine Sidekiq-Konfiguration
software_version_check: software_version_check:
action: Verfügbare Updates ansehen action: Verfügbare Updates ansehen
message_html: Ein Update für Mastodon ist verfügbar. message_html: Ein Mastodon-Update ist verfügbar.
software_version_critical_check: software_version_critical_check:
action: Verfügbare Updates ansehen action: Verfügbare Updates ansehen
message_html: Ein kritisches Mastodon-Update ist verfügbar bitte aktualisiere so schnell wie möglich. message_html: Ein kritisches Mastodon-Update ist verfügbar bitte aktualisiere so schnell wie möglich.
@ -1425,7 +1425,7 @@ de:
max_uses: max_uses:
one: Eine Verwendung one: Eine Verwendung
other: "%{count} Verwendungen" other: "%{count} Verwendungen"
max_uses_prompt: Keine Einschränkung max_uses_prompt: Unbegrenzt
prompt: Erstelle Einladungen und teile die dazugehörigen Links, um anderen einen Zugang zu diesem Server zu gewähren prompt: Erstelle Einladungen und teile die dazugehörigen Links, um anderen einen Zugang zu diesem Server zu gewähren
table: table:
expires_at: Läuft ab expires_at: Läuft ab
@ -1903,7 +1903,7 @@ de:
feature_action: Mehr erfahren feature_action: Mehr erfahren
feature_audience: Mastodon bietet dir eine einzigartige Möglichkeit, deine Reichweite ohne Mittelsperson zu verwalten. Auf deiner eigenen Infrastruktur bereitgestellt, ermöglicht Mastodon es dir, jedem anderen Mastodon-Server zu folgen und von jedem anderen Server aus gefolgt zu werden. Ebenso steht Mastodon unter deiner Kontrolle. feature_audience: Mastodon bietet dir eine einzigartige Möglichkeit, deine Reichweite ohne Mittelsperson zu verwalten. Auf deiner eigenen Infrastruktur bereitgestellt, ermöglicht Mastodon es dir, jedem anderen Mastodon-Server zu folgen und von jedem anderen Server aus gefolgt zu werden. Ebenso steht Mastodon unter deiner Kontrolle.
feature_audience_title: Baue deine Reichweite mit Vertrauen auf feature_audience_title: Baue deine Reichweite mit Vertrauen auf
feature_control: Du weißt am besten, was du auf deiner Startseite sehen möchtest. Keine Algorithmen oder Werbung, die deine Zeit verschwenden. Folge Nutzer*innen von jedem Mastodon-Server von einem einzelnen Konto aus und empfange deren Beiträge in chronologischer Reihenfolge. Mache Mastodon zu deinem ganz persönlichen Fleckchen im Internet. feature_control: Du weißt am besten, was du auf deiner Startseite sehen möchtest. Keine Algorithmen oder Werbung, die deine Zeit verschwenden. Folge Nutzer*innen auf allen Mastodon-Servern von einem einzelnen Konto aus und empfange deren Beiträge in chronologischer Reihenfolge. Mache Mastodon zu deinem ganz persönlichen Fleckchen im Internet.
feature_control_title: Behalte die Kontrolle über deine eigene Timeline feature_control_title: Behalte die Kontrolle über deine eigene Timeline
feature_creativity: Mastodon unterstützt Audio-, Video- und Bildbeiträge, Beschreibungen, Umfragen, Inhaltswarnungen, animierte Avatare, benutzerdefinierte Emojis, das Zuschneiden von Vorschaubildern und vieles mehr, um dir zu helfen, dich online zu entfalten. Egal, ob du deine Kunst, deine Musik oder deinen Podcast veröffentlichst Mastodon ist für dich da. feature_creativity: Mastodon unterstützt Audio-, Video- und Bildbeiträge, Beschreibungen, Umfragen, Inhaltswarnungen, animierte Avatare, benutzerdefinierte Emojis, das Zuschneiden von Vorschaubildern und vieles mehr, um dir zu helfen, dich online zu entfalten. Egal, ob du deine Kunst, deine Musik oder deinen Podcast veröffentlichst Mastodon ist für dich da.
feature_creativity_title: Einzigartige Kreativität feature_creativity_title: Einzigartige Kreativität

View file

@ -72,9 +72,11 @@ eo:
subject: 'Mastodon: sekureca ŝlosilo forigita' subject: 'Mastodon: sekureca ŝlosilo forigita'
title: Unu el viaj sekurecaj ŝlosiloj estis forigita title: Unu el viaj sekurecaj ŝlosiloj estis forigita
webauthn_disabled: webauthn_disabled:
explanation: Aŭtentigo per sekurecaj ŝlosiloj estas malŝaltita por via konto.
subject: 'Mastodon: sekureca-ŝlosila aŭtentigo malebligita' subject: 'Mastodon: sekureca-ŝlosila aŭtentigo malebligita'
title: Sekurecaj ŝlosiloj malaktivigitaj title: Sekurecaj ŝlosiloj malaktivigitaj
webauthn_enabled: webauthn_enabled:
extra: Via sekureca ŝlosilo nun povas esti uzata por ensaluto.
subject: 'Mastodon: sekureca-ŝlosila aŭtentigo ebligita' subject: 'Mastodon: sekureca-ŝlosila aŭtentigo ebligita'
title: Sekurecaj ŝlosiloj aktivigitaj title: Sekurecaj ŝlosiloj aktivigitaj
omniauth_callbacks: omniauth_callbacks:

View file

@ -60,6 +60,7 @@ bg:
error: error:
title: Възникна грешка title: Възникна грешка
new: new:
prompt_html: "%{client_name} желае да има достъп до акаунта ви. <strong>Одобрявайте само тази заявка, ако я разпознавате и ако имате доворерие на източника.</strong>"
review_permissions: Преглед на разрешенията review_permissions: Преглед на разрешенията
title: Изисква се упълномощаване title: Изисква се упълномощаване
show: show:

View file

@ -60,6 +60,7 @@ el:
error: error:
title: Εμφανίστηκε σφάλμα title: Εμφανίστηκε σφάλμα
new: new:
prompt_html: Το %{client_name} επιθυμεί το δικαίωμα πρόσβασης στον λογαριασμό σας. <strong>Εγκρίνετε αυτό το αίτημα μόνο αν αναγνωρίζετε και εμπιστεύεστε αυτήν την πηγή.</strong>
review_permissions: Ανασκόπηση δικαιωμάτων review_permissions: Ανασκόπηση δικαιωμάτων
title: Απαιτείται έγκριση title: Απαιτείται έγκριση
show: show:

View file

@ -60,7 +60,7 @@ es-AR:
error: error:
title: Ocurrió un error title: Ocurrió un error
new: new:
prompt_html: A %{client_name} le gustaría obtener permiso para acceder a tu cuenta. <strong>Solo aprueba esta solicitud si reconoces y confías en esta fuente.</strong> prompt_html: A %{client_name} le gustaría obtener permiso para acceder a tu cuenta. <strong>Aprobá esta solicitud solo si reconocés y confiás en esta fuente.</strong>
review_permissions: Revisar permisos review_permissions: Revisar permisos
title: Autorización requerida title: Autorización requerida
show: show:

View file

@ -60,7 +60,7 @@ es-MX:
error: error:
title: Ha ocurrido un error title: Ha ocurrido un error
new: new:
prompt_html: A %{client_name} le gustaría obtener permiso para acceder a tu cuenta. <strong>Solo aprueba esta solicitud si reconoces y confías en esta fuente.</strong> prompt_html: A %{client_name} le gustaría obtener permiso para acceder a tu cuenta. <strong>Aprueba esta solicitud solo si reconoces y confías en esta fuente.</strong>
review_permissions: Revisar permisos review_permissions: Revisar permisos
title: Se requiere autorización title: Se requiere autorización
show: show:

View file

@ -60,7 +60,7 @@ es:
error: error:
title: Ha ocurrido un error title: Ha ocurrido un error
new: new:
prompt_html: A %{client_name} le gustaría obtener permiso para acceder a tu cuenta. <strong>Solo aprueba esta solicitud si reconoces y confías en esta fuente.</strong> prompt_html: A %{client_name} le gustaría obtener permiso para acceder a tu cuenta. <strong>Aprueba esta solicitud solo si reconoces y confías en esta fuente.</strong>
review_permissions: Revisar permisos review_permissions: Revisar permisos
title: Se requiere autorización title: Se requiere autorización
show: show:

View file

@ -60,6 +60,7 @@ fr-CA:
error: error:
title: Une erreur est survenue title: Une erreur est survenue
new: new:
prompt_html: "%{client_name} aimerait avoir la permission d'accéder à votre compte. <strong>Approuver cette demande uniquement si vous reconnaissez et faites confiance à cette source.</strong>"
review_permissions: Examiner les autorisations review_permissions: Examiner les autorisations
title: Autorisation requise title: Autorisation requise
show: show:

View file

@ -60,6 +60,7 @@ fr:
error: error:
title: Une erreur est survenue title: Une erreur est survenue
new: new:
prompt_html: "%{client_name} aimerait avoir la permission d'accéder à votre compte. <strong>Approuver cette demande uniquement si vous reconnaissez et faites confiance à cette source.</strong>"
review_permissions: Examiner les autorisations review_permissions: Examiner les autorisations
title: Autorisation requise title: Autorisation requise
show: show:

View file

@ -60,6 +60,7 @@ ko:
error: error:
title: 오류가 발생하였습니다 title: 오류가 발생하였습니다
new: new:
prompt_html: "%{client_name}이 계정에 접근할 권한을 요청합니다. <strong>내가 알아볼 수 있고 신뢰할 수 있는 출처의 요청인 경우에만 승인하세요.</strong>"
review_permissions: 권한 검토 review_permissions: 권한 검토
title: 승인 필요 title: 승인 필요
show: show:

View file

@ -953,6 +953,7 @@ el:
used_by_over_week: used_by_over_week:
one: Χρησιμοποιήθηκε από ένα άτομο την τελευταία εβδομάδα one: Χρησιμοποιήθηκε από ένα άτομο την τελευταία εβδομάδα
other: Χρησιμοποιήθηκε από %{count} άτομα την τελευταία εβδομάδα other: Χρησιμοποιήθηκε από %{count} άτομα την τελευταία εβδομάδα
title: Προτάσεις και τάσεις
trending: Τάσεις trending: Τάσεις
warning_presets: warning_presets:
add_new: Πρόσθεση νέου add_new: Πρόσθεση νέου
@ -1037,7 +1038,9 @@ el:
guide_link_text: Μπορεί να συνεισφέρει ο οποιοσδήποτε. guide_link_text: Μπορεί να συνεισφέρει ο οποιοσδήποτε.
sensitive_content: Ευαίσθητο περιεχόμενο sensitive_content: Ευαίσθητο περιεχόμενο
application_mailer: application_mailer:
notification_preferences: Αλλαγή προτιμήσεων email
salutation: "%{name}," salutation: "%{name},"
settings: 'Αλλαγή προτιμήσεων email: %{link}'
unsubscribe: Κατάργηση εγγραφής unsubscribe: Κατάργηση εγγραφής
view: 'Προβολή:' view: 'Προβολή:'
view_profile: Προβολή προφίλ view_profile: Προβολή προφίλ
@ -1084,6 +1087,7 @@ el:
or_log_in_with: Ή συνδέσου με or_log_in_with: Ή συνδέσου με
privacy_policy_agreement_html: Έχω διαβάσει και συμφωνώ με την <a href="%{privacy_policy_path}" target="_blank">πολιτική απορρήτου</a> privacy_policy_agreement_html: Έχω διαβάσει και συμφωνώ με την <a href="%{privacy_policy_path}" target="_blank">πολιτική απορρήτου</a>
progress: progress:
confirm: Επιβεβαίωση email
details: Τα στοιχεία σας details: Τα στοιχεία σας
review: Η αξιολόγησή μας review: Η αξιολόγησή μας
rules: Αποδοχή κανόνων rules: Αποδοχή κανόνων
@ -1123,6 +1127,8 @@ el:
view_strikes: Προβολή προηγούμενων ποινών εναντίον του λογαριασμού σας view_strikes: Προβολή προηγούμενων ποινών εναντίον του λογαριασμού σας
too_fast: Η φόρμα υποβλήθηκε πολύ γρήγορα, προσπαθήστε ξανά. too_fast: Η φόρμα υποβλήθηκε πολύ γρήγορα, προσπαθήστε ξανά.
use_security_key: Χρήση κλειδιού ασφαλείας use_security_key: Χρήση κλειδιού ασφαλείας
author_attribution:
example_title: Δείγμα κειμένου
challenge: challenge:
confirm: Συνέχεια confirm: Συνέχεια
hint_html: "<strong>Συμβουλή:</strong> Δεν θα σου ζητήσουμε τον κωδικό ασφαλείας σου ξανά για την επόμενη ώρα." hint_html: "<strong>Συμβουλή:</strong> Δεν θα σου ζητήσουμε τον κωδικό ασφαλείας σου ξανά για την επόμενη ώρα."
@ -1342,7 +1348,10 @@ el:
time_started: Ξεκίνησε στις time_started: Ξεκίνησε στις
titles: titles:
blocking: Εισαγωγή αποκλεισμένων λογαριασμών blocking: Εισαγωγή αποκλεισμένων λογαριασμών
bookmarks: Εισαγωγή σελιδοδεικτών
domain_blocking: Εισαγωγή αποκλεισμένων τομέων
following: Εισαγωγή λογαριασμών που ακολουθείτε following: Εισαγωγή λογαριασμών που ακολουθείτε
lists: Εισαγωγή λιστών
type: Τύπος εισαγωγής type: Τύπος εισαγωγής
type_groups: type_groups:
destructive: Μπλοκ & σίγαση destructive: Μπλοκ & σίγαση
@ -1351,6 +1360,7 @@ el:
bookmarks: Σελιδοδείκτες bookmarks: Σελιδοδείκτες
domain_blocking: Λίστα αποκλεισμένων τομέων domain_blocking: Λίστα αποκλεισμένων τομέων
following: Λίστα ατόμων που ακολουθείτε following: Λίστα ατόμων που ακολουθείτε
lists: Λίστες
muting: Λίστα αποσιωπήσεων muting: Λίστα αποσιωπήσεων
upload: Μεταμόρφωση upload: Μεταμόρφωση
invites: invites:
@ -1365,6 +1375,7 @@ el:
'86400': 1 μέρα '86400': 1 μέρα
expires_in_prompt: Ποτέ expires_in_prompt: Ποτέ
generate: Δημιουργία συνδέσμου πρόσκλησης generate: Δημιουργία συνδέσμου πρόσκλησης
invalid: Αυτή η πρόσκληση δεν είναι έγκυρη
invited_by: 'Σε προσκάλεσε ο/η:' invited_by: 'Σε προσκάλεσε ο/η:'
max_uses: max_uses:
one: 1 χρήσης one: 1 χρήσης
@ -1388,6 +1399,11 @@ el:
failed_sign_in_html: Αποτυχημένη προσπάθεια σύνδεσης με %{method} από %{ip} (%{browser}) failed_sign_in_html: Αποτυχημένη προσπάθεια σύνδεσης με %{method} από %{ip} (%{browser})
successful_sign_in_html: Επιτυχής σύνδεση με %{method} από %{ip} (%{browser}) successful_sign_in_html: Επιτυχής σύνδεση με %{method} από %{ip} (%{browser})
title: Ιστορικό ελέγχου ταυτότητας title: Ιστορικό ελέγχου ταυτότητας
mail_subscriptions:
unsubscribe:
action: Ναι, κατάργηση συνδρομής
complete: Η συνδρομή καταργήθηκε
title: Κατάργηση συνδρομής
media_attachments: media_attachments:
validations: validations:
images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ανάρτηση που ήδη περιέχει εικόνες images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ανάρτηση που ήδη περιέχει εικόνες
@ -1467,6 +1483,7 @@ el:
update: update:
subject: "%{name} επεξεργάστηκε μια ανάρτηση" subject: "%{name} επεξεργάστηκε μια ανάρτηση"
notifications: notifications:
email_events: Συμβάντα για ειδοποιήσεις μέσω email
email_events_hint: 'Επέλεξε συμβάντα για τα οποία θέλεις να λαμβάνεις ειδοποιήσεις μέσω email:' email_events_hint: 'Επέλεξε συμβάντα για τα οποία θέλεις να λαμβάνεις ειδοποιήσεις μέσω email:'
number: number:
human: human:
@ -1507,12 +1524,18 @@ el:
other: Άλλες other: Άλλες
posting_defaults: Προεπιλογές ανάρτησης posting_defaults: Προεπιλογές ανάρτησης
public_timelines: Δημόσιες ροές public_timelines: Δημόσιες ροές
privacy:
privacy: Απόρρητο
search: Αναζήτηση
privacy_policy: privacy_policy:
title: Πολιτική Απορρήτου title: Πολιτική Απορρήτου
reactions: reactions:
errors: errors:
limit_reached: Το όριο διαφορετικών αντιδράσεων ξεπεράστηκε limit_reached: Το όριο διαφορετικών αντιδράσεων ξεπεράστηκε
unrecognized_emoji: δεν είναι ένα αναγνωρισμένο emoji unrecognized_emoji: δεν είναι ένα αναγνωρισμένο emoji
redirects:
prompt: Αν εμπιστεύεστε αυτόν τον σύνδεσμο, κάντε κλικ σε αυτόν για να συνεχίσετε.
title: Αποχωρείτε από το %{instance}.
relationships: relationships:
activity: Δραστηριότητα λογαριασμού activity: Δραστηριότητα λογαριασμού
confirm_follow_selected_followers: Είσαι βέβαιος ότι θες να ακολουθήσεις τους επιλεγμένους ακόλουθους; confirm_follow_selected_followers: Είσαι βέβαιος ότι θες να ακολουθήσεις τους επιλεγμένους ακόλουθους;
@ -1548,6 +1571,9 @@ el:
over_daily_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων για εκείνη τη μέρα over_daily_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων για εκείνη τη μέρα
over_total_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων over_total_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων αναρτήσεων
too_soon: Η προγραμματισμένη ημερομηνία πρέπει να είναι στο μέλλον too_soon: Η προγραμματισμένη ημερομηνία πρέπει να είναι στο μέλλον
self_destruct:
lead_html: Δυστυχώς, το <strong>%{domain}</strong> κλείνει οριστικά. Αν είχατε λογαριασμό εκεί, δεν θα μπορείτε να συνεχίσετε τη χρήση του, αλλά μπορείτε ακόμα να ζητήσετε ένα αντίγραφο ασφαλείας των δεδομένων σας.
title: Αυτός ο διακομιστής κλείνει οριστικά
sessions: sessions:
activity: Τελευταία δραστηριότητα activity: Τελευταία δραστηριότητα
browser: Φυλλομετρητής browser: Φυλλομετρητής
@ -1604,10 +1630,12 @@ el:
delete: Διαγραφή λογαριασμού delete: Διαγραφή λογαριασμού
development: Ανάπτυξη development: Ανάπτυξη
edit_profile: Επεξεργασία προφίλ edit_profile: Επεξεργασία προφίλ
export: Εξαγωγή
featured_tags: Παρεχόμενες ετικέτες featured_tags: Παρεχόμενες ετικέτες
import: Εισαγωγή import: Εισαγωγή
import_and_export: Εισαγωγή και εξαγωγή import_and_export: Εισαγωγή και εξαγωγή
migrate: Μετακόμιση λογαριασμού migrate: Μετακόμιση λογαριασμού
notifications: Ειδοποιήσεις μέσω email
preferences: Προτιμήσεις preferences: Προτιμήσεις
profile: Προφίλ profile: Προφίλ
relationships: Ακολουθείς και σε ακολουθούν relationships: Ακολουθείς και σε ακολουθούν
@ -1615,6 +1643,12 @@ el:
strikes: Παραπτώματα από ομάδα συντονισμού strikes: Παραπτώματα από ομάδα συντονισμού
two_factor_authentication: Πιστοποίηση 2 παραγόντων two_factor_authentication: Πιστοποίηση 2 παραγόντων
webauthn_authentication: Κλειδιά ασφαλείας webauthn_authentication: Κλειδιά ασφαλείας
severed_relationships:
download: Λήψη (%{count})
event_type:
account_suspension: Αναστολή λογαριασμού (%{target_name})
domain_block: Αναστολή διακομιστή (%{target_name})
type: Συμβάν
statuses: statuses:
attached: attached:
audio: audio:
@ -1697,11 +1731,13 @@ el:
contrast: Mastodon (Υψηλή αντίθεση) contrast: Mastodon (Υψηλή αντίθεση)
default: Mastodon (Σκοτεινό) default: Mastodon (Σκοτεινό)
mastodon-light: Mastodon (Ανοιχτόχρωμο) mastodon-light: Mastodon (Ανοιχτόχρωμο)
system: Αυτόματο (θέμα συστήματος)
time: time:
formats: formats:
default: "%b %d, %Y, %H:%M" default: "%b %d, %Y, %H:%M"
month: "%b %Y" month: "%b %Y"
time: "%H:%M" time: "%H:%M"
with_time_zone: "%d %b %Y, %H:%M %Z"
two_factor_authentication: two_factor_authentication:
add: Προσθήκη add: Προσθήκη
disable: Απενεργοποίηση 2FA disable: Απενεργοποίηση 2FA
@ -1789,6 +1825,10 @@ el:
feature_action: Μάθε περισσότερα feature_action: Μάθε περισσότερα
feature_audience: Το Mastodon σού παρέχει μια μοναδική δυνατότητα διαχείρισης του κοινού σου χωρίς μεσάζοντες. Το Mastodon όταν αναπτύσσεται στη δική σου υποδομή σού επιτρέπει να ακολουθείς και να ακολουθείσαι από οποιονδήποτε άλλο συνδεδεμένο διακομιστή Mastodon και κανείς δεν τον ελέγχει, εκτός από σένα. feature_audience: Το Mastodon σού παρέχει μια μοναδική δυνατότητα διαχείρισης του κοινού σου χωρίς μεσάζοντες. Το Mastodon όταν αναπτύσσεται στη δική σου υποδομή σού επιτρέπει να ακολουθείς και να ακολουθείσαι από οποιονδήποτε άλλο συνδεδεμένο διακομιστή Mastodon και κανείς δεν τον ελέγχει, εκτός από σένα.
feature_audience_title: Χτίσε το κοινό σου με σιγουριά feature_audience_title: Χτίσε το κοινό σου με σιγουριά
post_action: Σύνθεση
share_action: Κοινοποίηση
share_title: Μοιραστείτε το προφίλ σας στο Mastodon
sign_in_action: Σύνδεση
subject: Καλώς ήρθες στο Mastodon subject: Καλώς ήρθες στο Mastodon
title: Καλώς όρισες, %{name}! title: Καλώς όρισες, %{name}!
users: users:
@ -1798,7 +1838,10 @@ el:
otp_lost_help_html: Αν χάσεις πρόσβαση και στα δύο, μπορείς να επικοινωνήσεις με %{email} otp_lost_help_html: Αν χάσεις πρόσβαση και στα δύο, μπορείς να επικοινωνήσεις με %{email}
signed_in_as: 'Έχεις συνδεθεί ως:' signed_in_as: 'Έχεις συνδεθεί ως:'
verification: verification:
here_is_how: Δείτε πώς
verification: Πιστοποίηση verification: Πιστοποίηση
verified_links: Οι επαληθευμένοι σύνδεσμοι σας
website_verification: Επαλήθευση ιστοτόπου
webauthn_credentials: webauthn_credentials:
add: Προσθήκη νέου κλειδιού ασφαλείας add: Προσθήκη νέου κλειδιού ασφαλείας
create: create:

View file

@ -218,18 +218,22 @@ eo:
update_custom_emoji: Ĝisdatigi proprajn emoĝiojn update_custom_emoji: Ĝisdatigi proprajn emoĝiojn
update_domain_block: Ĝigdatigi domajnan blokadon update_domain_block: Ĝigdatigi domajnan blokadon
update_ip_block: Krei IP-regulon update_ip_block: Krei IP-regulon
update_report: Ĝisdatigo de Raporto
update_status: Ĝisdatigi afiŝon update_status: Ĝisdatigi afiŝon
update_user_role: Ĝisdatigi rolon update_user_role: Ĝisdatigi rolon
actions: actions:
approve_appeal_html: "%{name} aprobis apelacion kontraŭ moderiga decido de %{target}" approve_appeal_html: "%{name} aprobis apelacion kontraŭ moderiga decido de %{target}"
approve_user_html: "%{name} aprobis registriĝon de %{target}" approve_user_html: "%{name} aprobis registriĝon de %{target}"
assigned_to_self_report_html: "%{name} asignis signalon %{target} al si mem" assigned_to_self_report_html: "%{name} asignis signalon %{target} al si mem"
change_email_user_html: "%{name} ŝanĝis retadreson de uzanto %{target}"
change_role_user_html: "%{name} ŝanĝis rolon de %{target}" change_role_user_html: "%{name} ŝanĝis rolon de %{target}"
confirm_user_html: "%{name} konfirmis retadreson de uzanto %{target}"
create_account_warning_html: "%{name} sendis averton al %{target}" create_account_warning_html: "%{name} sendis averton al %{target}"
create_announcement_html: "%{name} kreis novan anoncon %{target}" create_announcement_html: "%{name} kreis novan anoncon %{target}"
create_custom_emoji_html: "%{name} alŝutis novan emoĝion %{target}" create_custom_emoji_html: "%{name} alŝutis novan emoĝion %{target}"
create_domain_allow_html: "%{name} aldonis domajnon %{target} al la blanka listo" create_domain_allow_html: "%{name} aldonis domajnon %{target} al la blanka listo"
create_domain_block_html: "%{name} blokis domajnon %{target}" create_domain_block_html: "%{name} blokis domajnon %{target}"
create_email_domain_block_html: "%{name} blokis retpoŝtan domajnon %{target}"
create_ip_block_html: "%{name} kreis regulon por IP %{target}" create_ip_block_html: "%{name} kreis regulon por IP %{target}"
create_unavailable_domain_html: "%{name} ĉesis sendon al domajno %{target}" create_unavailable_domain_html: "%{name} ĉesis sendon al domajno %{target}"
create_user_role_html: "%{name} kreis rolon de %{target}" create_user_role_html: "%{name} kreis rolon de %{target}"
@ -238,6 +242,7 @@ eo:
destroy_custom_emoji_html: "%{name} forigis emoĝion %{target}" destroy_custom_emoji_html: "%{name} forigis emoĝion %{target}"
destroy_domain_allow_html: "%{name} forigis domajnon %{target} el la blanka listo" destroy_domain_allow_html: "%{name} forigis domajnon %{target} el la blanka listo"
destroy_domain_block_html: "%{name} malblokis domajnon %{target}" destroy_domain_block_html: "%{name} malblokis domajnon %{target}"
destroy_email_domain_block_html: "%{name} malblokis retpoŝtan domajnon %{target}"
destroy_instance_html: "%{name} forigis domajnon %{target}" destroy_instance_html: "%{name} forigis domajnon %{target}"
destroy_ip_block_html: "%{name} forigis regulon por IP %{target}" destroy_ip_block_html: "%{name} forigis regulon por IP %{target}"
destroy_status_html: "%{name} forigis mesaĝojn de %{target}" destroy_status_html: "%{name} forigis mesaĝojn de %{target}"
@ -821,8 +826,12 @@ eo:
message_html: Vi ne difinis iujn servilajn regulojn. message_html: Vi ne difinis iujn servilajn regulojn.
sidekiq_process_check: sidekiq_process_check:
message_html: Neniu Sidekiq-procezo por la %{value} vico message_html: Neniu Sidekiq-procezo por la %{value} vico
software_version_check:
message_html: Mastodon-ĝisdatigo disponeblas.
software_version_critical_check: software_version_critical_check:
action: Vidi disponeblajn ĝisdatigojn action: Vidi disponeblajn ĝisdatigojn
software_version_patch_check:
action: Vidi disponeblajn ĝisdatigojn
upload_check_privacy_error: upload_check_privacy_error:
action: Klaku ĉi tie por pliaj informoj action: Klaku ĉi tie por pliaj informoj
message_html: "<strong>Via retservilo estas misagordita. La privateco de viaj uzantoj estas en risko.</strong>" message_html: "<strong>Via retservilo estas misagordita. La privateco de viaj uzantoj estas en risko.</strong>"

View file

@ -875,6 +875,9 @@ es-AR:
message_html: No definiste ninguna regla del servidor. message_html: No definiste ninguna regla del servidor.
sidekiq_process_check: sidekiq_process_check:
message_html: No hay ningún proceso Sidekiq en ejecución para la/s cola/s %{value}. Por favor, revisá tu configuración de Sidekiq message_html: No hay ningún proceso Sidekiq en ejecución para la/s cola/s %{value}. Por favor, revisá tu configuración de Sidekiq
software_version_check:
action: Ver actualizaciones disponibles
message_html: Hay disponible una actualización de Mastodon.
software_version_critical_check: software_version_critical_check:
action: Ver actualizaciones disponibles action: Ver actualizaciones disponibles
message_html: Una actualización crítica de Mastodon está disponible; por favor, actualizá lo antes posible. message_html: Una actualización crítica de Mastodon está disponible; por favor, actualizá lo antes posible.

View file

@ -875,6 +875,9 @@ es-MX:
message_html: No ha definido ninguna regla del servidor. message_html: No ha definido ninguna regla del servidor.
sidekiq_process_check: sidekiq_process_check:
message_html: No hay ningún proceso Sidekiq en ejecución para la(s) cola(s) %{value}. Por favor, revise su configuración de Sidekiq message_html: No hay ningún proceso Sidekiq en ejecución para la(s) cola(s) %{value}. Por favor, revise su configuración de Sidekiq
software_version_check:
action: Ver actualizaciones disponibles
message_html: Hay disponible una actualización de Mastodon.
software_version_critical_check: software_version_critical_check:
action: Ver actualizaciones disponibles action: Ver actualizaciones disponibles
message_html: Una actualización crítica de Mastodon está disponible, por favor actualice lo antes posible. message_html: Una actualización crítica de Mastodon está disponible, por favor actualice lo antes posible.

View file

@ -875,6 +875,9 @@ es:
message_html: No ha definido ninguna regla del servidor. message_html: No ha definido ninguna regla del servidor.
sidekiq_process_check: sidekiq_process_check:
message_html: No hay ningún proceso Sidekiq en ejecución para la(s) cola(s) %{value}. Por favor, revise su configuración de Sidekiq message_html: No hay ningún proceso Sidekiq en ejecución para la(s) cola(s) %{value}. Por favor, revise su configuración de Sidekiq
software_version_check:
action: Ver actualizaciones disponibles
message_html: Hay disponible una actualización de Mastodon.
software_version_critical_check: software_version_critical_check:
action: Ver actualizaciones disponibles action: Ver actualizaciones disponibles
message_html: Una actualización crítica de Mastodon está disponible, por favor actualiza lo antes posible. message_html: Una actualización crítica de Mastodon está disponible, por favor actualiza lo antes posible.

View file

@ -875,6 +875,9 @@ fi:
message_html: Et ole määritellyt palvelimen sääntöjä lainkaan. message_html: Et ole määritellyt palvelimen sääntöjä lainkaan.
sidekiq_process_check: sidekiq_process_check:
message_html: Ei ole Sidekiq-prosessia käynnissä jonossa %{value}. Tarkista Sidekiq-asetukset message_html: Ei ole Sidekiq-prosessia käynnissä jonossa %{value}. Tarkista Sidekiq-asetukset
software_version_check:
action: Näytä saatavilla olevat päivitykset
message_html: Saatavilla on Mastodon-päivitys.
software_version_critical_check: software_version_critical_check:
action: Näytä saatavilla olevat päivitykset action: Näytä saatavilla olevat päivitykset
message_html: Kriittinen Mastodon-päivitys on saatavilla. Tee päivitys mahdollisimman ripeästi. message_html: Kriittinen Mastodon-päivitys on saatavilla. Tee päivitys mahdollisimman ripeästi.

View file

@ -875,6 +875,9 @@ fo:
message_html: Tú hevur ikki ásett nakrar ambætarareglur. message_html: Tú hevur ikki ásett nakrar ambætarareglur.
sidekiq_process_check: sidekiq_process_check:
message_html: Eingin Sidekiq gongd koyrir fyri %{value} bíðirøðina(r). Vinarliga eftirkanna Sidekiq uppsetingina message_html: Eingin Sidekiq gongd koyrir fyri %{value} bíðirøðina(r). Vinarliga eftirkanna Sidekiq uppsetingina
software_version_check:
action: Sí tøkar dagføringar
message_html: Ein Mastodon-dagføring er tøk.
software_version_critical_check: software_version_critical_check:
action: Sí tøkar dagføringar action: Sí tøkar dagføringar
message_html: Ein kritisk Mastodon-dagføring er tøk, vinarliga dagfør sum skjótast. message_html: Ein kritisk Mastodon-dagføring er tøk, vinarliga dagfør sum skjótast.

View file

@ -262,8 +262,10 @@ fr-CA:
destroy_user_role_html: "%{name} a supprimé le rôle %{target}" destroy_user_role_html: "%{name} a supprimé le rôle %{target}"
disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}" disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}"
disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}" disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} a désactivé l'authentification par jeton de courriel pour %{target}"
disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}" disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}"
enable_custom_emoji_html: "%{name} a activé l'émoji %{target}" enable_custom_emoji_html: "%{name} a activé l'émoji %{target}"
enable_sign_in_token_auth_user_html: "%{name} a activé l'authentification par jeton de courriel pour %{target}"
enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}" enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}"
memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial" memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial"
promote_user_html: "%{name} a promu l'utilisateur·rice %{target}" promote_user_html: "%{name} a promu l'utilisateur·rice %{target}"
@ -876,6 +878,9 @@ fr-CA:
message_html: Vous n'avez pas défini de règles pour le serveur. message_html: Vous n'avez pas défini de règles pour le serveur.
sidekiq_process_check: sidekiq_process_check:
message_html: Aucun processus Sidekiq en cours d'exécution pour la/les file(s) d'attente %{value}. Veuillez vérifier votre configuration de Sidekiq message_html: Aucun processus Sidekiq en cours d'exécution pour la/les file(s) d'attente %{value}. Veuillez vérifier votre configuration de Sidekiq
software_version_check:
action: Voir les mises à jour disponibles
message_html: Une mise à jour de Mastodon est disponible.
software_version_critical_check: software_version_critical_check:
action: Voir les mises à jour disponibles action: Voir les mises à jour disponibles
message_html: Une mise à jour critique de Mastodon est disponible, veuillez mettre à jour le plus rapidement possible. message_html: Une mise à jour critique de Mastodon est disponible, veuillez mettre à jour le plus rapidement possible.
@ -1447,6 +1452,7 @@ fr-CA:
unsubscribe: unsubscribe:
action: Oui, me désabonner action: Oui, me désabonner
complete: Désabonné·e complete: Désabonné·e
confirmation_html: Êtes-vous sûr de vouloir vous désabonner de la réception de %{type} pour Mastodon sur %{domain} à votre adresse e-mail %{email} ? Vous pouvez toujours vous réabonner à partir de vos paramètres de <a href="%{settings_path}">notification par messagerie</a>.
emails: emails:
notification_emails: notification_emails:
favourite: e-mails de notifications de favoris favourite: e-mails de notifications de favoris
@ -1692,6 +1698,7 @@ fr-CA:
delete: Suppression du compte delete: Suppression du compte
development: Développement development: Développement
edit_profile: Modifier le profil edit_profile: Modifier le profil
export: Exportation
featured_tags: Hashtags mis en avant featured_tags: Hashtags mis en avant
import: Import de données import: Import de données
import_and_export: Import et export import_and_export: Import et export

View file

@ -262,8 +262,10 @@ fr:
destroy_user_role_html: "%{name} a supprimé le rôle %{target}" destroy_user_role_html: "%{name} a supprimé le rôle %{target}"
disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}" disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}"
disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}" disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} a désactivé l'authentification par jeton de courriel pour %{target}"
disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}" disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}"
enable_custom_emoji_html: "%{name} a activé l'émoji %{target}" enable_custom_emoji_html: "%{name} a activé l'émoji %{target}"
enable_sign_in_token_auth_user_html: "%{name} a activé l'authentification par jeton de courriel pour %{target}"
enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}" enable_user_html: "%{name} a activé la connexion de l'utilisateur·rice %{target}"
memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial" memorialize_account_html: "%{name} a converti le compte de %{target} en un mémorial"
promote_user_html: "%{name} a promu l'utilisateur·rice %{target}" promote_user_html: "%{name} a promu l'utilisateur·rice %{target}"
@ -427,7 +429,7 @@ fr:
undo: Annuler le blocage de domaine undo: Annuler le blocage de domaine
view: Afficher les blocages de domaines view: Afficher les blocages de domaines
email_domain_blocks: email_domain_blocks:
add_new: Ajouter add_new: Ajouter un nouveau
allow_registrations_with_approval: Autoriser les inscriptions avec approbation allow_registrations_with_approval: Autoriser les inscriptions avec approbation
attempts_over_week: attempts_over_week:
one: "%{count} tentative au cours de la dernière semaine" one: "%{count} tentative au cours de la dernière semaine"
@ -876,6 +878,9 @@ fr:
message_html: Vous n'avez pas défini de règles pour le serveur. message_html: Vous n'avez pas défini de règles pour le serveur.
sidekiq_process_check: sidekiq_process_check:
message_html: Aucun processus Sidekiq en cours d'exécution pour la/les file(s) d'attente %{value}. Veuillez vérifier votre configuration de Sidekiq message_html: Aucun processus Sidekiq en cours d'exécution pour la/les file(s) d'attente %{value}. Veuillez vérifier votre configuration de Sidekiq
software_version_check:
action: Voir les mises à jour disponibles
message_html: Une mise à jour de Mastodon est disponible.
software_version_critical_check: software_version_critical_check:
action: Voir les mises à jour disponibles action: Voir les mises à jour disponibles
message_html: Une mise à jour critique de Mastodon est disponible, veuillez mettre à jour le plus rapidement possible. message_html: Une mise à jour critique de Mastodon est disponible, veuillez mettre à jour le plus rapidement possible.
@ -1447,6 +1452,7 @@ fr:
unsubscribe: unsubscribe:
action: Oui, se désinscrire action: Oui, se désinscrire
complete: Désinscrit complete: Désinscrit
confirmation_html: Êtes-vous sûr de vouloir vous désabonner de la réception de %{type} pour Mastodon sur %{domain} à votre adresse e-mail %{email} ? Vous pouvez toujours vous réabonner à partir de vos paramètres de <a href="%{settings_path}">notification par messagerie</a>.
emails: emails:
notification_emails: notification_emails:
favourite: e-mails de notifications de favoris favourite: e-mails de notifications de favoris
@ -1692,6 +1698,7 @@ fr:
delete: Suppression du compte delete: Suppression du compte
development: Développement development: Développement
edit_profile: Modifier le profil edit_profile: Modifier le profil
export: Exportation
featured_tags: Hashtags mis en avant featured_tags: Hashtags mis en avant
import: Import de données import: Import de données
import_and_export: Import et export import_and_export: Import et export

View file

@ -917,6 +917,9 @@ ga:
message_html: Níl aon rialacha freastalaí sainmhínithe agat. message_html: Níl aon rialacha freastalaí sainmhínithe agat.
sidekiq_process_check: sidekiq_process_check:
message_html: Níl próiseas Sidekiq ag rith don scuaine/(scuainí) %{value}. Déan athbhreithniú ar do chumraíocht Sidekiq message_html: Níl próiseas Sidekiq ag rith don scuaine/(scuainí) %{value}. Déan athbhreithniú ar do chumraíocht Sidekiq
software_version_check:
action: Féach nuashonruithe atá ar fáil
message_html: Tá nuashonrú Mastodon ar fáil.
software_version_critical_check: software_version_critical_check:
action: Féach nuashonruithe atá ar fáil action: Féach nuashonruithe atá ar fáil
message_html: Tá nuashonrú ríthábhachtach Mastodon ar fáil, nuashonraigh chomh tapa agus is féidir le do thoil. message_html: Tá nuashonrú ríthábhachtach Mastodon ar fáil, nuashonraigh chomh tapa agus is féidir le do thoil.

View file

@ -903,6 +903,9 @@ gd:
message_html: Cha do mhìnich thu riaghailtean an fhrithealaiche fhathast. message_html: Cha do mhìnich thu riaghailtean an fhrithealaiche fhathast.
sidekiq_process_check: sidekiq_process_check:
message_html: Chan eil pròiseas Sidekiq sam bith a ruith dhan chiutha/dha na ciuthan %{value}. Thoir sùil air an rèiteachadh Sidekiq agad message_html: Chan eil pròiseas Sidekiq sam bith a ruith dhan chiutha/dha na ciuthan %{value}. Thoir sùil air an rèiteachadh Sidekiq agad
software_version_check:
action: Faic na h-ùrachaidhean a tha ri fhaighinn
message_html: Tha ùrachadh Mastodon ri fhaighinn.
software_version_critical_check: software_version_critical_check:
action: Faic na h-ùrachaidhean a tha ri fhaighinn action: Faic na h-ùrachaidhean a tha ri fhaighinn
message_html: Tha ùrachadh èiginneach air Mastodon ri fhaighinn, ùraich cho luath s a ghabhas. message_html: Tha ùrachadh èiginneach air Mastodon ri fhaighinn, ùraich cho luath s a ghabhas.
@ -1021,7 +1024,7 @@ gd:
delete: Sguab às delete: Sguab às
edit_preset: Deasaich rabhadh ro-shuidhichte edit_preset: Deasaich rabhadh ro-shuidhichte
empty: Cha do mhìnich thu ro-sheataichean rabhaidhean fhathast. empty: Cha do mhìnich thu ro-sheataichean rabhaidhean fhathast.
title: Ro-sheataichean rabhaidhean title: Rabhaidhean ro-shocraichte
webhooks: webhooks:
add_new: Cuir puing-dheiridh ris add_new: Cuir puing-dheiridh ris
delete: Sguab às delete: Sguab às
@ -1744,6 +1747,7 @@ gd:
delete: Sguabadh às cunntais delete: Sguabadh às cunntais
development: Leasachadh development: Leasachadh
edit_profile: Deasaich a phròifil edit_profile: Deasaich a phròifil
export: Às-phortadh
featured_tags: Tagaichean hais brosnaichte featured_tags: Tagaichean hais brosnaichte
import: Ion-phortadh import: Ion-phortadh
import_and_export: Ion-phortadh ⁊ às-phortadh import_and_export: Ion-phortadh ⁊ às-phortadh

View file

@ -875,6 +875,9 @@ hu:
message_html: Még nem definiáltál egy szerver szabályt sem. message_html: Még nem definiáltál egy szerver szabályt sem.
sidekiq_process_check: sidekiq_process_check:
message_html: Nincs Sidekiq folyamat, mely a %{value} sorhoz van rendelve. Kérlek, nézd át a Sidekiq beállításait message_html: Nincs Sidekiq folyamat, mely a %{value} sorhoz van rendelve. Kérlek, nézd át a Sidekiq beállításait
software_version_check:
action: Elérhető frissítések megtekintése
message_html: Egy Mastodon-frissítés elérhető.
software_version_critical_check: software_version_critical_check:
action: Elérhető frissítések megtekintése action: Elérhető frissítések megtekintése
message_html: Kritikus Mastodon frissítés érhető el, frissíts a lehető leggyorsabban. message_html: Kritikus Mastodon frissítés érhető el, frissíts a lehető leggyorsabban.

View file

@ -264,6 +264,8 @@ kab:
domain: Taɣult domain: Taɣult
new: new:
create: Rnu taɣult create: Rnu taɣult
export_domain_allows:
no_file: Ula d yiwen ufaylu ma yettwafran
export_domain_blocks: export_domain_blocks:
no_file: Ulac afaylu yettwafernen no_file: Ulac afaylu yettwafernen
follow_recommendations: follow_recommendations:
@ -529,6 +531,10 @@ kab:
account_status: Addad n umiḍan account_status: Addad n umiḍan
functional: Amiḍan-inek·inem yetteddu s lekmal-is. functional: Amiḍan-inek·inem yetteddu s lekmal-is.
use_security_key: Seqdec tasarut n teɣlist use_security_key: Seqdec tasarut n teɣlist
author_attribution:
example_title: Amedya n weḍris
more_from_html: Ugar s ɣur %{name}
s_blog: Ablug n %{name}
challenge: challenge:
confirm: Kemmel confirm: Kemmel
invalid_password: Yir awal uffir invalid_password: Yir awal uffir
@ -685,6 +691,9 @@ kab:
subject: Yuder-ik·ikem-id %{name} subject: Yuder-ik·ikem-id %{name}
reblog: reblog:
subject: "%{name} yesselha addad-ik·im" subject: "%{name} yesselha addad-ik·im"
title: Azuzer amaynut
status:
subject: "%{name} akken i d-y·t·essufeɣ"
number: number:
human: human:
decimal_units: decimal_units:

View file

@ -863,6 +863,9 @@ ko:
message_html: 아직 서버 규칙을 정하지 않았습니다. message_html: 아직 서버 규칙을 정하지 않았습니다.
sidekiq_process_check: sidekiq_process_check:
message_html: "%{value} 큐에 대한 사이드킥 프로세스가 발견되지 않았습니다. 사이드킥 설정을 검토해주세요" message_html: "%{value} 큐에 대한 사이드킥 프로세스가 발견되지 않았습니다. 사이드킥 설정을 검토해주세요"
software_version_check:
action: 사용 가능한 업데이트 보기
message_html: 마스토돈 업데이트가 있습니다.
software_version_critical_check: software_version_critical_check:
action: 사용 가능한 업데이트 보기 action: 사용 가능한 업데이트 보기
message_html: 긴급 마스토돈 업데이트가 있으니, 가능한 서둘러 업데이트 해주세요. message_html: 긴급 마스토돈 업데이트가 있으니, 가능한 서둘러 업데이트 해주세요.

View file

@ -1695,6 +1695,7 @@ nn:
delete: Kontosletting delete: Kontosletting
development: Utvikling development: Utvikling
edit_profile: Endr profil edit_profile: Endr profil
export: Eksporter
featured_tags: Utvalgte emneknagger featured_tags: Utvalgte emneknagger
import: Hent inn import: Hent inn
import_and_export: Importer og eksporter import_and_export: Importer og eksporter

View file

@ -875,6 +875,9 @@ pt-BR:
message_html: Você não definiu nenhuma regra de servidor. message_html: Você não definiu nenhuma regra de servidor.
sidekiq_process_check: sidekiq_process_check:
message_html: Nenhum processo Sidekiq rodando para a(s) fila(s) %{value}. Por favor, revise a sua configuração para Sidekiq message_html: Nenhum processo Sidekiq rodando para a(s) fila(s) %{value}. Por favor, revise a sua configuração para Sidekiq
software_version_check:
action: Ver atualizações disponíveis
message_html: Uma atualização do Mastodon está disponível.
software_version_critical_check: software_version_critical_check:
action: Ver atualizações disponíveis action: Ver atualizações disponíveis
message_html: Uma atualização crítica do Mastodon está disponível. Por favor, atualize o mais rápido possível. message_html: Uma atualização crítica do Mastodon está disponível. Por favor, atualize o mais rápido possível.
@ -1885,7 +1888,7 @@ pt-BR:
none: Aviso none: Aviso
sensitive: Conta marcada como sensível sensitive: Conta marcada como sensível
silence: Conta silenciada silence: Conta silenciada
suspend: Conta banida suspend: Conta suspensa
welcome: welcome:
apps_android_action: Disponível no Google Play apps_android_action: Disponível no Google Play
apps_ios_action: Disponível na App Store apps_ios_action: Disponível na App Store

View file

@ -3,6 +3,7 @@ bg:
simple_form: simple_form:
hints: hints:
account: account:
attribution_domains_as_text: Защитава от фалшиви атрибути.
discoverable: Вашите публични публикации и профил може да се представят или препоръчват в различни области на Mastodon и вашия профил може да се предлага на други потребители. discoverable: Вашите публични публикации и профил може да се представят или препоръчват в различни области на Mastodon и вашия профил може да се предлага на други потребители.
display_name: Вашето пълно име или псевдоним. display_name: Вашето пълно име или псевдоним.
fields: Вашата начална страница, местоимения, години, всичко що искате. fields: Вашата начална страница, местоимения, години, всичко що искате.
@ -130,6 +131,7 @@ bg:
name: Можете да смените само употребата на големи/малки букви, например, за да е по-четимо name: Можете да смените само употребата на големи/малки букви, например, за да е по-четимо
user: user:
chosen_languages: Само публикации на отметнатите езици ще се показват в публичните часови оси chosen_languages: Само публикации на отметнатите езици ще се показват в публичните часови оси
role: Ролята управлява какви позволения има потребителят.
user_role: user_role:
color: Цветът, използван за ролите в потребителския интерфейс, като RGB в шестнадесетичен формат color: Цветът, използван за ролите в потребителския интерфейс, като RGB в шестнадесетичен формат
highlighted: Това прави ролята обществено видима highlighted: Това прави ролята обществено видима
@ -142,6 +144,7 @@ bg:
url: До къде ще се изпращат събитията url: До къде ще се изпращат събитията
labels: labels:
account: account:
attribution_domains_as_text: Позволяване само на особени уебсайтове
discoverable: Включване на профил и публикации в алгоритмите за откриване discoverable: Включване на профил и публикации в алгоритмите за откриване
fields: fields:
name: Етикет name: Етикет

View file

@ -3,6 +3,7 @@ eo:
simple_form: simple_form:
hints: hints:
account: account:
attribution_domains_as_text: Protektas kontraŭ falsaj atribuoj.
discoverable: Viaj publikaj afiŝoj kaj profilo povas esti prezentitaj aŭ rekomenditaj en diversaj lokoj de Mastodon kaj via profilo povas esti proponita al aliaj uzantoj. discoverable: Viaj publikaj afiŝoj kaj profilo povas esti prezentitaj aŭ rekomenditaj en diversaj lokoj de Mastodon kaj via profilo povas esti proponita al aliaj uzantoj.
display_name: Via plena nomo aŭ via kromnomo. display_name: Via plena nomo aŭ via kromnomo.
fields: Via retpaĝo, pronomoj, aĝo, ĉio, kion vi volas. fields: Via retpaĝo, pronomoj, aĝo, ĉio, kion vi volas.
@ -78,6 +79,7 @@ eo:
bootstrap_timeline_accounts: Ĉi tiuj kontoj pinglitas al la supro de sekvorekomendoj de novaj uzantoj. bootstrap_timeline_accounts: Ĉi tiuj kontoj pinglitas al la supro de sekvorekomendoj de novaj uzantoj.
closed_registrations_message: Montrita kiam registroj fermitas closed_registrations_message: Montrita kiam registroj fermitas
custom_css: Vi povas meti propajn stilojn en la retversio de Mastodon. custom_css: Vi povas meti propajn stilojn en la retversio de Mastodon.
favicon: WEBP, PNG, GIF aŭ JPG. Anstataŭigas la defaŭltan Mastodon-favikono kun propra bildsimbolo.
mascot: Anstatauigi la ilustraĵon en la altnivela retinterfaco. mascot: Anstatauigi la ilustraĵon en la altnivela retinterfaco.
peers_api_enabled: Listo de domajnaj nomoj kiujn ĉi tiu servilo renkontis en la fediverso. Neniuj datumoj estas inkluditaj ĉi tie pri ĉu vi federacias kun donita servilo, nur ke via servilo scias pri ĝi. Ĉi tio estas uzata de servoj kiuj kolektas statistikojn pri federacio en ĝenerala signifo. peers_api_enabled: Listo de domajnaj nomoj kiujn ĉi tiu servilo renkontis en la fediverso. Neniuj datumoj estas inkluditaj ĉi tie pri ĉu vi federacias kun donita servilo, nur ke via servilo scias pri ĝi. Ĉi tio estas uzata de servoj kiuj kolektas statistikojn pri federacio en ĝenerala signifo.
profile_directory: La profilujo listigas ĉiujn uzantojn kiu volonte malkovrebli. profile_directory: La profilujo listigas ĉiujn uzantojn kiu volonte malkovrebli.
@ -111,6 +113,7 @@ eo:
sign_up_requires_approval: Novaj registriĝoj bezonos vian aprobon sign_up_requires_approval: Novaj registriĝoj bezonos vian aprobon
severity: Elektu, kio okazos pri petoj de ĉi tiu IP-adreso severity: Elektu, kio okazos pri petoj de ĉi tiu IP-adreso
rule: rule:
hint: Laŭvola. Provizu pliajn detalojn pri la regulo
text: Priskribu regulon aŭ neceson por uzantoj en ĉi tiu servilo. Provu fari ĝin mallonga kaj simpla text: Priskribu regulon aŭ neceson por uzantoj en ĉi tiu servilo. Provu fari ĝin mallonga kaj simpla
sessions: sessions:
otp: 'Enmetu la kodon de dufaktora aŭtentigo el via telefono aŭ uzu unu el viaj realiraj kodoj:' otp: 'Enmetu la kodon de dufaktora aŭtentigo el via telefono aŭ uzu unu el viaj realiraj kodoj:'
@ -122,6 +125,7 @@ eo:
name: Vi povas ŝanĝi nur la majuskladon de la literoj, ekzemple, por igi ĝin pli legebla name: Vi povas ŝanĝi nur la majuskladon de la literoj, ekzemple, por igi ĝin pli legebla
user: user:
chosen_languages: Kun tio markita nur mesaĝoj en elektitaj lingvoj aperos en publikaj tempolinioj chosen_languages: Kun tio markita nur mesaĝoj en elektitaj lingvoj aperos en publikaj tempolinioj
role: La rolo kontrolas kiujn permesojn la uzanto havas.
user_role: user_role:
color: Koloro uzita por la rolo sur la UI, kun RGB-formato color: Koloro uzita por la rolo sur la UI, kun RGB-formato
highlighted: Ĉi tio igi la rolon publike videbla highlighted: Ĉi tio igi la rolon publike videbla
@ -134,6 +138,7 @@ eo:
url: Kien eventoj sendotas url: Kien eventoj sendotas
labels: labels:
account: account:
attribution_domains_as_text: Permesi nur specifajn retejojn
discoverable: Elstarigi profilon kaj afiŝojn en eltrovantaj algoritmoj discoverable: Elstarigi profilon kaj afiŝojn en eltrovantaj algoritmoj
fields: fields:
name: Etikedo name: Etikedo
@ -239,6 +244,7 @@ eo:
bootstrap_timeline_accounts: Ĉiam rekomendi ĉi tiujn kontojn al novaj uzantoj bootstrap_timeline_accounts: Ĉiam rekomendi ĉi tiujn kontojn al novaj uzantoj
closed_registrations_message: Kutima mesaĝo kiam registroj ne estas disponeblaj closed_registrations_message: Kutima mesaĝo kiam registroj ne estas disponeblaj
custom_css: Propa CSS custom_css: Propa CSS
favicon: Favorikono
mascot: Propa maskoto mascot: Propa maskoto
media_cache_retention_period: Audovidaĵkaŝaĵretendauro media_cache_retention_period: Audovidaĵkaŝaĵretendauro
peers_api_enabled: Eldonu liston de malkovritaj serviloj en la API peers_api_enabled: Eldonu liston de malkovritaj serviloj en la API
@ -294,6 +300,7 @@ eo:
patch: Sciigi pri cimoriparaj ĝisdatigoj patch: Sciigi pri cimoriparaj ĝisdatigoj
trending_tag: Nova furoro bezonas kontrolon trending_tag: Nova furoro bezonas kontrolon
rule: rule:
hint: Pliaj informoj
text: Regulo text: Regulo
settings: settings:
indexable: Inkludi profilan paĝon en serĉiloj indexable: Inkludi profilan paĝon en serĉiloj
@ -302,6 +309,7 @@ eo:
listable: Permesi ĉi tiun kradvorton aperi en serĉoj kaj sugestoj listable: Permesi ĉi tiun kradvorton aperi en serĉoj kaj sugestoj
name: Kradvorto name: Kradvorto
trendable: Permesi al ĉi tiu kradvorto aperi en furoraĵoj trendable: Permesi al ĉi tiu kradvorto aperi en furoraĵoj
usable: Permesi afiŝojn uzi ĉi tiun kradvorton loke
user: user:
role: Rolo role: Rolo
time_zone: Horzono time_zone: Horzono

View file

@ -860,6 +860,8 @@ sv:
message_html: Du har inte definierat några serverregler. message_html: Du har inte definierat några serverregler.
sidekiq_process_check: sidekiq_process_check:
message_html: Ingen Sidekiq-process körs för kön/köerna %{value}. Vänligen kontrollera din Sidekiq-konfiguration message_html: Ingen Sidekiq-process körs för kön/köerna %{value}. Vänligen kontrollera din Sidekiq-konfiguration
software_version_check:
message_html: En Mastodon-uppdatering är tillgänglig.
software_version_critical_check: software_version_critical_check:
action: Se tillgängliga uppdateringar action: Se tillgängliga uppdateringar
message_html: En kritisk uppdatering för Mastodon är tillgänglig. Uppdatera så snart som möjligt. message_html: En kritisk uppdatering för Mastodon är tillgänglig. Uppdatera så snart som möjligt.

View file

@ -861,12 +861,15 @@ th:
message_html: คุณไม่ได้กำหนดกฎของเซิร์ฟเวอร์ใด ๆ message_html: คุณไม่ได้กำหนดกฎของเซิร์ฟเวอร์ใด ๆ
sidekiq_process_check: sidekiq_process_check:
message_html: ไม่มีกระบวนการ Sidekiq ที่กำลังทำงานสำหรับคิว %{value} โปรดตรวจทานการกำหนดค่า Sidekiq ของคุณ message_html: ไม่มีกระบวนการ Sidekiq ที่กำลังทำงานสำหรับคิว %{value} โปรดตรวจทานการกำหนดค่า Sidekiq ของคุณ
software_version_check:
action: ดูการอัปเดตที่พร้อมใช้งาน
message_html: มีการอัปเดต Mastodon ที่พร้อมใช้งาน
software_version_critical_check: software_version_critical_check:
action: ดูการอัปเดตที่พร้อมใช้งาน action: ดูการอัปเดตที่พร้อมใช้งาน
message_html: มีการอัปเดต Mastodon สำคัญพร้อมใช้งาน โปรดอัปเดตโดยเร็วที่สุดเท่าที่จะเป็นไปได้ message_html: มีการอัปเดต Mastodon สำคัญพร้อมใช้งาน โปรดอัปเดตโดยเร็วที่สุดเท่าที่จะเป็นไปได้
software_version_patch_check: software_version_patch_check:
action: ดูการอัปเดตที่พร้อมใช้งาน action: ดูการอัปเดตที่พร้อมใช้งาน
message_html: มีการอัปเดต Mastodon ที่แก้ไขข้อบกพร่องพร้อมใช้งาน message_html: มีการอัปเดต Mastodon ที่แก้ไขข้อบกพร่องที่พร้อมใช้งาน
upload_check_privacy_error: upload_check_privacy_error:
action: ตรวจสอบที่นี่สำหรับข้อมูลเพิ่มเติม action: ตรวจสอบที่นี่สำหรับข้อมูลเพิ่มเติม
message_html: "<strong>เว็บเซิร์ฟเวอร์ของคุณกำหนดค่าไม่ถูกต้อง ความเป็นส่วนตัวของผู้ใช้ของคุณตกอยู่ในความเสี่ยง</strong>" message_html: "<strong>เว็บเซิร์ฟเวอร์ของคุณกำหนดค่าไม่ถูกต้อง ความเป็นส่วนตัวของผู้ใช้ของคุณตกอยู่ในความเสี่ยง</strong>"
@ -1666,6 +1669,7 @@ th:
delete: การลบบัญชี delete: การลบบัญชี
development: การพัฒนา development: การพัฒนา
edit_profile: แก้ไขโปรไฟล์ edit_profile: แก้ไขโปรไฟล์
export: ส่งออก
featured_tags: แฮชแท็กที่น่าสนใจ featured_tags: แฮชแท็กที่น่าสนใจ
import: การนำเข้า import: การนำเข้า
import_and_export: การนำเข้าและการส่งออก import_and_export: การนำเข้าและการส่งออก

View file

@ -875,6 +875,9 @@ tr:
message_html: Herhangi bir sunucu kuralı belirlemediniz. message_html: Herhangi bir sunucu kuralı belirlemediniz.
sidekiq_process_check: sidekiq_process_check:
message_html: "%{value} kuyruk(lar)ı için herhangi bir Sidekiq süreci çalışmıyor. Lütfen Sidekiq yapılandırmanızı gözden geçirin" message_html: "%{value} kuyruk(lar)ı için herhangi bir Sidekiq süreci çalışmıyor. Lütfen Sidekiq yapılandırmanızı gözden geçirin"
software_version_check:
action: Mevcut güncellemeleri görün
message_html: Mastodon güncellemesi mevcut.
software_version_critical_check: software_version_critical_check:
action: Mevcut güncellemeleri göster action: Mevcut güncellemeleri göster
message_html: Kritik bir Mastodon güncellemesi var, lütfen en kısa sürede güncelleyin. message_html: Kritik bir Mastodon güncellemesi var, lütfen en kısa sürede güncelleyin.

View file

@ -91,7 +91,7 @@ vi:
moderation: moderation:
active: Hoạt động active: Hoạt động
all: Tất cả all: Tất cả
disabled: Đã tắt disabled: Khóa đăng nhập
pending: Chờ pending: Chờ
silenced: Hạn chế silenced: Hạn chế
suspended: Vô hiệu hóa suspended: Vô hiệu hóa
@ -861,6 +861,9 @@ vi:
message_html: Bạn chưa cập nhật nội quy máy chủ. message_html: Bạn chưa cập nhật nội quy máy chủ.
sidekiq_process_check: sidekiq_process_check:
message_html: Sidekiq không hoạt động khi truy vấn %{value}. Hãy kiểm tra lại cấu hình Sidekiq message_html: Sidekiq không hoạt động khi truy vấn %{value}. Hãy kiểm tra lại cấu hình Sidekiq
software_version_check:
action: Bản cập nhật mới
message_html: Có bản cập nhật Mastodon mới.
software_version_critical_check: software_version_critical_check:
action: Bản cập nhật mới action: Bản cập nhật mới
message_html: Có bản cập nhật quan trọng của Mastodon, vui lòng cập nhật nhanh nhất có thể. message_html: Có bản cập nhật quan trọng của Mastodon, vui lòng cập nhật nhanh nhất có thể.

View file

@ -35,7 +35,7 @@ SimpleNavigation::Configuration.run do |navigation|
s.item :export, safe_join([material_symbol('cloud_download'), t('settings.export')]), settings_export_path s.item :export, safe_join([material_symbol('cloud_download'), t('settings.export')]), settings_export_path
end end
n.item :invites, safe_join([material_symbol('person_add'), t('invites.title')]), invites_path, if: -> { current_user.can?(:invite_users) && current_user.functional? && !self_destruct } n.item :user_invites, safe_join([material_symbol('person_add'), t('invites.title')]), invites_path, if: -> { current_user.can?(:invite_users) && current_user.functional? && !self_destruct }
n.item :development, safe_join([material_symbol('code'), t('settings.development')]), settings_applications_path, highlights_on: %r{/settings/applications}, if: -> { current_user.functional? && !self_destruct } n.item :development, safe_join([material_symbol('code'), t('settings.development')]), settings_applications_path, highlights_on: %r{/settings/applications}, if: -> { current_user.functional? && !self_destruct }
n.item :trends, safe_join([material_symbol('trending_up'), t('admin.trends.title')]), admin_trends_statuses_path, if: -> { current_user.can?(:manage_taxonomies) && !self_destruct } do |s| n.item :trends, safe_join([material_symbol('trending_up'), t('admin.trends.title')]), admin_trends_statuses_path, if: -> { current_user.can?(:manage_taxonomies) && !self_destruct } do |s|

View file

@ -59,7 +59,7 @@ services:
web: web:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes # You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
# build: . # build: .
image: ghcr.io/mastodon/mastodon:v4.3.0-beta.2 image: ghcr.io/mastodon/mastodon:v4.3.0-rc.1
restart: always restart: always
env_file: .env.production env_file: .env.production
command: bundle exec puma -C config/puma.rb command: bundle exec puma -C config/puma.rb
@ -83,7 +83,7 @@ services:
# build: # build:
# dockerfile: ./streaming/Dockerfile # dockerfile: ./streaming/Dockerfile
# context: . # context: .
image: ghcr.io/mastodon/mastodon-streaming:v4.3.0-beta.2 image: ghcr.io/mastodon/mastodon-streaming:v4.3.0-rc.1
restart: always restart: always
env_file: .env.production env_file: .env.production
command: node ./streaming/index.js command: node ./streaming/index.js
@ -101,7 +101,7 @@ services:
sidekiq: sidekiq:
build: . build: .
image: ghcr.io/mastodon/mastodon:v4.3.0-beta.2 image: ghcr.io/mastodon/mastodon:v4.3.0-rc.1
restart: always restart: always
env_file: .env.production env_file: .env.production
command: bundle exec sidekiq command: bundle exec sidekiq

View file

@ -9,7 +9,7 @@ module Mastodon
end end
def minor def minor
3 4
end end
def patch def patch
@ -17,7 +17,7 @@ module Mastodon
end end
def default_prerelease def default_prerelease
'beta.2' 'alpha.1'
end end
def prerelease def prerelease

View file

@ -42,6 +42,9 @@
"@babel/preset-react": "^7.22.3", "@babel/preset-react": "^7.22.3",
"@babel/preset-typescript": "^7.21.5", "@babel/preset-typescript": "^7.21.5",
"@babel/runtime": "^7.22.3", "@babel/runtime": "^7.22.3",
"@dnd-kit/core": "^6.1.0",
"@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@formatjs/intl-pluralrules": "^5.2.2", "@formatjs/intl-pluralrules": "^5.2.2",
"@gamestdio/websocket": "^0.3.2", "@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^2.1.1", "@github/webauthn-json": "^2.1.1",

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