Merge pull request #2105 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes
local
Claire 1 year ago committed by GitHub
commit dc02a93d04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 23
      .deepsource.toml
  2. 2
      .github/workflows/check-i18n.yml
  3. 45
      CHANGELOG.md
  4. 2
      Gemfile
  5. 14
      Gemfile.lock
  6. 6
      app/controllers/api/v1/streaming_controller.rb
  7. 2
      app/controllers/concerns/signature_verification.rb
  8. 11
      app/controllers/tags_controller.rb
  9. 4
      app/helpers/application_helper.rb
  10. 2
      app/helpers/email_helper.rb
  11. 4
      app/helpers/jsonld_helper.rb
  12. 4
      app/javascript/flavours/glitch/components/autosuggest_input.js
  13. 1
      app/javascript/flavours/glitch/features/compose/components/compose_form.js
  14. 1
      app/javascript/flavours/glitch/features/compose/components/poll_form.js
  15. 12
      app/javascript/flavours/glitch/features/follow_requests/index.js
  16. 16
      app/javascript/flavours/glitch/features/ui/components/link_footer.js
  17. 1
      app/javascript/flavours/glitch/initial_state.js
  18. 1
      app/javascript/flavours/glitch/styles/components/modal.scss
  19. 4
      app/javascript/mastodon/components/autosuggest_input.js
  20. 1
      app/javascript/mastodon/features/compose/components/compose_form.js
  21. 1
      app/javascript/mastodon/features/compose/components/poll_form.js
  22. 5
      app/javascript/mastodon/features/compose/components/upload.js
  23. 12
      app/javascript/mastodon/features/follow_requests/index.js
  24. 16
      app/javascript/mastodon/features/ui/components/link_footer.js
  25. 1
      app/javascript/mastodon/initial_state.js
  26. 1
      app/javascript/mastodon/locales/af.json
  27. 1
      app/javascript/mastodon/locales/an.json
  28. 1
      app/javascript/mastodon/locales/ar.json
  29. 27
      app/javascript/mastodon/locales/ast.json
  30. 7
      app/javascript/mastodon/locales/be.json
  31. 1
      app/javascript/mastodon/locales/bg.json
  32. 1
      app/javascript/mastodon/locales/bn.json
  33. 1
      app/javascript/mastodon/locales/br.json
  34. 1
      app/javascript/mastodon/locales/bs.json
  35. 5
      app/javascript/mastodon/locales/ca.json
  36. 1
      app/javascript/mastodon/locales/ckb.json
  37. 1
      app/javascript/mastodon/locales/co.json
  38. 1
      app/javascript/mastodon/locales/cs.json
  39. 1
      app/javascript/mastodon/locales/csb.json
  40. 1
      app/javascript/mastodon/locales/cy.json
  41. 1
      app/javascript/mastodon/locales/da.json
  42. 55
      app/javascript/mastodon/locales/de.json
  43. 4
      app/javascript/mastodon/locales/defaultMessages.json
  44. 1
      app/javascript/mastodon/locales/el.json
  45. 1
      app/javascript/mastodon/locales/en-GB.json
  46. 1
      app/javascript/mastodon/locales/en.json
  47. 7
      app/javascript/mastodon/locales/eo.json
  48. 1
      app/javascript/mastodon/locales/es-AR.json
  49. 1
      app/javascript/mastodon/locales/es-MX.json
  50. 1
      app/javascript/mastodon/locales/es.json
  51. 1
      app/javascript/mastodon/locales/et.json
  52. 1
      app/javascript/mastodon/locales/eu.json
  53. 1
      app/javascript/mastodon/locales/fa.json
  54. 1
      app/javascript/mastodon/locales/fi.json
  55. 1
      app/javascript/mastodon/locales/fo.json
  56. 11
      app/javascript/mastodon/locales/fr-QC.json
  57. 43
      app/javascript/mastodon/locales/fr.json
  58. 1
      app/javascript/mastodon/locales/fy.json
  59. 1
      app/javascript/mastodon/locales/ga.json
  60. 1
      app/javascript/mastodon/locales/gd.json
  61. 1
      app/javascript/mastodon/locales/gl.json
  62. 1
      app/javascript/mastodon/locales/he.json
  63. 1
      app/javascript/mastodon/locales/hi.json
  64. 1
      app/javascript/mastodon/locales/hr.json
  65. 1
      app/javascript/mastodon/locales/hu.json
  66. 1
      app/javascript/mastodon/locales/hy.json
  67. 1
      app/javascript/mastodon/locales/id.json
  68. 1
      app/javascript/mastodon/locales/ig.json
  69. 1
      app/javascript/mastodon/locales/io.json
  70. 1
      app/javascript/mastodon/locales/is.json
  71. 1
      app/javascript/mastodon/locales/it.json
  72. 5
      app/javascript/mastodon/locales/ja.json
  73. 1
      app/javascript/mastodon/locales/ka.json
  74. 1
      app/javascript/mastodon/locales/kab.json
  75. 1
      app/javascript/mastodon/locales/kk.json
  76. 1
      app/javascript/mastodon/locales/kn.json
  77. 23
      app/javascript/mastodon/locales/ko.json
  78. 1
      app/javascript/mastodon/locales/ku.json
  79. 1
      app/javascript/mastodon/locales/kw.json
  80. 1
      app/javascript/mastodon/locales/la.json
  81. 1
      app/javascript/mastodon/locales/lt.json
  82. 1
      app/javascript/mastodon/locales/lv.json
  83. 1
      app/javascript/mastodon/locales/mk.json
  84. 1
      app/javascript/mastodon/locales/ml.json
  85. 1
      app/javascript/mastodon/locales/mr.json
  86. 1
      app/javascript/mastodon/locales/ms.json
  87. 65
      app/javascript/mastodon/locales/my.json
  88. 1
      app/javascript/mastodon/locales/nl.json
  89. 3
      app/javascript/mastodon/locales/nn.json
  90. 1
      app/javascript/mastodon/locales/no.json
  91. 1
      app/javascript/mastodon/locales/oc.json
  92. 1
      app/javascript/mastodon/locales/pa.json
  93. 1
      app/javascript/mastodon/locales/pl.json
  94. 1
      app/javascript/mastodon/locales/pt-BR.json
  95. 1
      app/javascript/mastodon/locales/pt-PT.json
  96. 1
      app/javascript/mastodon/locales/ro.json
  97. 9
      app/javascript/mastodon/locales/ru.json
  98. 1
      app/javascript/mastodon/locales/sa.json
  99. 1
      app/javascript/mastodon/locales/sc.json
  100. 1
      app/javascript/mastodon/locales/sco.json
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,23 +0,0 @@
version = 1
test_patterns = ["app/javascript/mastodon/**/__tests__/**"]
exclude_patterns = [
"db/migrate/**",
"db/post_migrate/**"
]
[[analyzers]]
name = "ruby"
enabled = true
[[analyzers]]
name = "javascript"
enabled = true
[analyzers.meta]
environment = [
"browser",
"jest",
"nodejs"
]

@ -30,7 +30,7 @@ jobs:
- name: Check locale file normalization
run: bundle exec i18n-tasks check-normalized
- name: Check for unused strings
run: bundle exec i18n-tasks unused -l en
run: bundle exec i18n-tasks unused
- name: Check for wrong string interpolations
run: bundle exec i18n-tasks check-consistent-interpolations
- name: Check that all required locale files exist

@ -3,19 +3,27 @@ Changelog
All notable changes to this project will be documented in this file.
## [4.1.0] - UNRELEASED
## [4.1.0] - 2023-02-10
### Added
- **Add support for importing/exporting server-wide domain blocks** ([enbylenore](https://github.com/mastodon/mastodon/pull/20597), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/21471), [dariusk](https://github.com/mastodon/mastodon/pull/22803), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/21470))
- Add listing of followed hashtags ([connorshea](https://github.com/mastodon/mastodon/pull/21773))
- Add support for editing media description and focus point of already-sent posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20878))
- Add follow request banner on account header ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20785))
- Add confirmation screen when handling reports ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22375), [Gargron](https://github.com/mastodon/mastodon/pull/23156), [tribela](https://github.com/mastodon/mastodon/pull/23178))
- **Add listing of followed hashtags** ([connorshea](https://github.com/mastodon/mastodon/pull/21773))
- **Add support for editing media description and focus point of already-sent posts** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20878))
- Previously, you could add and remove attachments, but not edit media description of already-attached media
- REST API changes:
- `PUT /api/v1/statuses/:id` now takes an extra `media_attributes[]` array parameter with the `id` of the updated media and their updated `description`, `focus`, and `thumbnail`
- **Add follow request banner on account header** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20785))
- REST API changes:
- `Relationship` entities have an extra `requested_by` boolean attribute representing whether the represented user has requested to follow you
- **Add confirmation screen when handling reports** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22375), [Gargron](https://github.com/mastodon/mastodon/pull/23156), [tribela](https://github.com/mastodon/mastodon/pull/23178))
- Add option to make the landing page be `/about` even when trends are enabled ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20808))
- Add `noindex` setting back to the admin interface ([prplecake](https://github.com/mastodon/mastodon/pull/22205))
- Add instance peers API endpoint toggle back to the admin interface ([dariusk](https://github.com/mastodon/mastodon/pull/22810))
- Add instance activity API endpoint toggle back to the admin interface ([dariusk](https://github.com/mastodon/mastodon/pull/22833))
- Add setting for status page URL ([Gargron](https://github.com/mastodon/mastodon/pull/23390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23499))
- REST API changes:
- Add `configuration.urls.status` attribute to the object returned by `GET /api/v1/instance`
- Add `account.approved` webhook ([Saiv46](https://github.com/mastodon/mastodon/pull/22938))
- Add 12 hours option to polls ([Pleclown](https://github.com/mastodon/mastodon/pull/21131))
- Add dropdown menu item to open admin interface for remote domains ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21895))
@ -25,6 +33,7 @@ All notable changes to this project will be documented in this file.
- Add `tootctl accounts prune` ([tribela](https://github.com/mastodon/mastodon/pull/18397))
- Add `tootctl domains purge` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22063))
- Add `SIDEKIQ_CONCURRENCY` environment variable ([muffinista](https://github.com/mastodon/mastodon/pull/19589))
- Add `DB_POOL` environment variable support for streaming server ([Gargron](https://github.com/mastodon/mastodon/pull/23470))
- Add `MIN_THREADS` environment variable to set minimum Puma threads ([jimeh](https://github.com/mastodon/mastodon/pull/21048))
- Add explanation text to log-in page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20946))
- Add user profile OpenGraph tag on post pages ([bramus](https://github.com/mastodon/mastodon/pull/21423))
@ -39,12 +48,14 @@ All notable changes to this project will be documented in this file.
- Add “disabled” account filter to the `/admin/accounts` UI ([tribela](https://github.com/mastodon/mastodon/pull/21282))
- Add transparency to modal background for accessibility ([edent](https://github.com/mastodon/mastodon/pull/18081))
- Add `lang` attribute to image description textarea and poll option field ([c960657](https://github.com/mastodon/mastodon/pull/23293))
- Add `spellcheck` attribute to Content Warning and poll option input fields ([c960657](https://github.com/mastodon/mastodon/pull/23395))
- Add `title` attribute to video elements in media attachments ([bramus](https://github.com/mastodon/mastodon/pull/21420))
- Add left and right margins to emojis ([dsblank](https://github.com/mastodon/mastodon/pull/20464))
- Add `roles` attribute to `Account` entities in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23255))
- Add `roles` attribute to `Account` entities in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23255), [tribela](https://github.com/mastodon/mastodon/pull/23428))
- Add `reading:autoplay:gifs` to `/api/v1/preferences` ([j-f1](https://github.com/mastodon/mastodon/pull/22706))
- Add `hide_collections` parameter to `/api/v1/accounts/credentials` ([CarlSchwan](https://github.com/mastodon/mastodon/pull/22790))
- Add `policy` attribute to web push subscription objects in `/api/v1/push/subscriptions` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23210))
- Add `policy` attribute to web push subscription objects in REST API at `/api/v1/push/subscriptions` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23210))
- Add metrics endpoint to streaming API ([Gargron](https://github.com/mastodon/mastodon/pull/23388), [Gargron](https://github.com/mastodon/mastodon/pull/23469))
- Add more specific error messages to HTTP signature verification ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21617))
- Add Storj DCS to cloud object storage options in the `mastodon:setup` rake task ([jtolio](https://github.com/mastodon/mastodon/pull/21929))
- Add checkmark symbol in the checkbox for sensitive media ([sidp](https://github.com/mastodon/mastodon/pull/22795))
@ -110,13 +121,15 @@ All notable changes to this project will be documented in this file.
- Remove `object-fit` polyfill used for old versions of Microsoft Edge ([shuuji3](https://github.com/mastodon/mastodon/pull/22693))
- Remove `intersection-observer` polyfill for old Safari support ([shuuji3](https://github.com/mastodon/mastodon/pull/23284))
- Remove empty `title` tag from mailer layout ([nametoolong](https://github.com/mastodon/mastodon/pull/23078))
- Remove post count and last posts from ActivityPub representation of hashtag collections ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23460))
### Fixed
- **Fix changing domain block severity not undoing individual account effects** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22135))
- Fix suspension worker crashing on S3-compatible setups without ACL support ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22487))
- Fix possible race conditions when suspending/unsuspending accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22363))
- Fix being stuck in edit mode when deleting the edited status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22126))
- Fix being stuck in edit mode when deleting the edited posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22126))
- Fix attached media uploads not being cleared when replying to a post ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23504))
- Fix filters not being applied to some notification types ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23211))
- Fix incorrect link in push notifications for some event types ([elizabeth-dev](https://github.com/mastodon/mastodon/pull/23286))
- Fix some performance issues with `/admin/instances` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21907))
@ -125,16 +138,18 @@ All notable changes to this project will be documented in this file.
- Fix account activation being sometimes triggered before email confirmation ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23245))
- Fix missing OAuth scopes for admin APIs ([trwnh](https://github.com/mastodon/mastodon/pull/20918), [trwnh](https://github.com/mastodon/mastodon/pull/20979))
- Fix voter count not being cleared when a poll is reset ([afontenot](https://github.com/mastodon/mastodon/pull/21700))
- Fix attachments of edited statuses not being fetched ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21565))
- Fix attachments of edited posts not being fetched ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21565))
- Fix irreversible and whole_word parameters handling in `/api/v1/filters` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21988))
- Fix 500 error when marking posts as sensitive while some of them are deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22134))
- Fix expanded statuses not always being scrolled into view ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21797))
- Fix expanded posts not always being scrolled into view ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21797))
- Fix not being able to scroll the remote interaction modal on small screens ([xendke](https://github.com/mastodon/mastodon/pull/21763))
- Fix not being able to scroll in post history modal ([cadars](https://github.com/mastodon/mastodon/pull/23396))
- Fix audio player volume control on Safari ([minacle](https://github.com/mastodon/mastodon/pull/23187))
- Fix disappearing “Explore” tabs on Safari ([nyura](https://github.com/mastodon/mastodon/pull/20917), [ykzts](https://github.com/mastodon/mastodon/pull/20982))
- Fix wrong padding in RTL layout ([Gargron](https://github.com/mastodon/mastodon/pull/23157))
- Fix drag & drop upload area display in single-column mode ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23217))
- Fix being unable to get a single EmailDomainBlock from the admin API ([trwnh](https://github.com/mastodon/mastodon/pull/20846))
- Fix admin-set follow recommandations being case-sensitive ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23500))
- Fix unserialized `role` on account entities in admin API ([Gargron](https://github.com/mastodon/mastodon/pull/23290))
- Fix pagination of followed tags ([trwnh](https://github.com/mastodon/mastodon/pull/20861))
- Fix dropdown menu positions when scrolling ([sidp](https://github.com/mastodon/mastodon/pull/22916), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23062))
@ -146,9 +161,11 @@ All notable changes to this project will be documented in this file.
- Fix error in `VerifyLinkService` when processing links with invalid URLs ([untitaker](https://github.com/mastodon/mastodon/pull/23204))
- Fix media uploads with FFmpeg 5 ([dead10ck](https://github.com/mastodon/mastodon/pull/21191))
- Fix sensitive flag not being set when replying to a post with a content warning under certain conditions ([kedamaDQ](https://github.com/mastodon/mastodon/pull/21724))
- Fix “Share @user's profile” profile menu item not working ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21490))
- Fix misleading message briefly showing up when loading follow requests under some conditions ([c960657](https://github.com/mastodon/mastodon/pull/23386))
- Fix “Share @:user's profile” profile menu item not working ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21490))
- Fix crash and incorrect behavior in `tootctl domains crawl` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19004))
- Fix autoplay on iOS ([jamesadney](https://github.com/mastodon/mastodon/pull/21422))
- Fix user clean-up scheduler crash when an unconfirmed account has a moderation note ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23318))
- Fix spaces not being stripped in admin account search ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21324))
- Fix spaces not being stripped when adding relays ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22655))
- Fix infinite loading spinner instead of soft 404 for non-existing remote accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21303))
@ -158,7 +175,8 @@ All notable changes to this project will be documented in this file.
- Fix UI header overflowing on mobile ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21783))
- Fix 500 error when trying to migrate to an invalid address ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21462))
- Fix crash when trying to fetch unobtainable avatar of user using external authentication ([lochiiconnectivity](https://github.com/mastodon/mastodon/pull/22462))
- Fix potential duplicate statuses in Explore tab ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22121))
- Fix processing error on incoming malformed JSON-LD under some situations ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23416))
- Fix potential duplicate posts in Explore tab ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22121))
- Fix deprecation warning in `tootctl accounts rotate` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22120))
- Fix styling of featured tags in light theme ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23252))
- Fix missing style in warning and strike cards ([AtelierSnek](https://github.com/mastodon/mastodon/pull/22177), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/22302))
@ -178,7 +196,7 @@ All notable changes to this project will be documented in this file.
- Fix CSP violation warning by removing inline CSS from SVG logo ([luxiaba](https://github.com/mastodon/mastodon/pull/20814))
- Fix margin for search field on medium window size ([minacle](https://github.com/mastodon/mastodon/pull/21606))
- Fix search popout scrolling with the page in single-column mode ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/16463))
- Fix minor status cache hydration discrepancy ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19879))
- Fix minor post cache hydration discrepancy ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19879))
- Fix `・` detection in hashtags ([parthoghosh24](https://github.com/mastodon/mastodon/pull/22888))
- Fix hashtag follows bypassing user blocks ([tribela](https://github.com/mastodon/mastodon/pull/22849))
- Fix moved accounts being incorrectly redirected to account settings when trying to view a remote profile ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22497))
@ -198,6 +216,7 @@ All notable changes to this project will be documented in this file.
- Add `form-action` CSP directive ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20781), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20958), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20962))
- Fix unbounded recursion in account discovery ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22025))
- Revoke all authorized applications on password reset ([FrancisMurillo](https://github.com/mastodon/mastodon/pull/21325))
- Fix unbounded recursion in post discovery ([ClearlyClaire,nametoolong](https://github.com/mastodon/mastodon/pull/23506))
## [4.0.2] - 2022-11-15
### Fixed

@ -26,7 +26,7 @@ gem 'blurhash', '~> 0.1'
gem 'active_model_serializers', '~> 0.10'
gem 'addressable', '~> 2.8'
gem 'bootsnap', '~> 1.15.0', require: false
gem 'bootsnap', '~> 1.16.0', require: false
gem 'browser'
gem 'charlock_holmes', '~> 0.7.7'
gem 'chewy', '~> 7.2'

@ -122,7 +122,7 @@ GEM
debug_inspector (>= 0.0.1)
blurhash (0.1.6)
ffi (~> 1.14)
bootsnap (1.15.0)
bootsnap (1.16.0)
msgpack (~> 1.2)
brakeman (5.4.0)
browser (4.2.0)
@ -207,7 +207,7 @@ GEM
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
doorkeeper (5.6.3)
doorkeeper (5.6.4)
railties (>= 5)
dotenv (2.8.1)
dotenv-rails (2.8.1)
@ -229,7 +229,7 @@ GEM
tzinfo
excon (0.95.0)
fabrication (2.30.0)
faker (3.1.0)
faker (3.1.1)
i18n (>= 1.8.11, < 2)
faraday (1.9.3)
faraday-em_http (~> 1.0)
@ -511,7 +511,7 @@ GEM
httpclient
json-jwt (>= 1.11.0)
rack (>= 2.1.0)
rack-proxy (0.7.0)
rack-proxy (0.7.6)
rack
rack-test (2.0.2)
rack (>= 1.3)
@ -611,7 +611,7 @@ GEM
parser (>= 3.1.1.0)
rubocop-capybara (2.17.0)
rubocop (~> 1.41)
rubocop-performance (1.15.2)
rubocop-performance (1.16.0)
rubocop (>= 1.7.0, < 2.0)
rubocop-ast (>= 0.4.0)
rubocop-rails (2.17.4)
@ -744,7 +744,7 @@ GEM
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
webpacker (5.4.3)
webpacker (5.4.4)
activesupport (>= 5.2)
rack-proxy (>= 0.6.1)
railties (>= 5.2)
@ -770,7 +770,7 @@ DEPENDENCIES
better_errors (~> 2.9)
binding_of_caller (~> 1.0)
blurhash (~> 0.1)
bootsnap (~> 1.15.0)
bootsnap (~> 1.16.0)
brakeman (~> 5.4)
browser
bullet (~> 7.0)

@ -2,10 +2,10 @@
class Api::V1::StreamingController < Api::BaseController
def index
if Rails.configuration.x.streaming_api_base_url != request.host
redirect_to streaming_api_url, status: 301
else
if Rails.configuration.x.streaming_api_base_url == request.host
not_found
else
redirect_to streaming_api_url, status: 301
end
end

@ -227,7 +227,7 @@ module SignatureVerification
end
def to_header_name(name)
name.split(/-/).map(&:capitalize).join('-')
name.split('-').map(&:capitalize).join('-')
end
def missing_required_signature_parameters?

@ -11,7 +11,7 @@ class TagsController < ApplicationController
before_action :authenticate_user!, if: :whitelist_mode?
before_action :set_local
before_action :set_tag
before_action :set_statuses
before_action :set_statuses, if: -> { request.format == :rss }
before_action :set_instance_presenter
skip_before_action :require_functional!, unless: :whitelist_mode?
@ -44,12 +44,7 @@ class TagsController < ApplicationController
end
def set_statuses
case request.format&.to_sym
when :json
@statuses = cache_collection(TagFeed.new(@tag, current_account, local: @local).get(PAGE_SIZE, params[:max_id], params[:since_id], params[:min_id]), Status)
when :rss
@statuses = cache_collection(TagFeed.new(@tag, nil, local: @local).get(limit_param), Status)
end
@statuses = cache_collection(TagFeed.new(@tag, nil, local: @local).get(limit_param), Status)
end
def set_instance_presenter
@ -64,8 +59,6 @@ class TagsController < ApplicationController
ActivityPub::CollectionPresenter.new(
id: tag_url(@tag),
type: :ordered,
size: @tag.statuses.count,
items: @statuses.map { |status| ActivityPub::TagManager.instance.uri_for(status) }
)
end
end

@ -67,7 +67,7 @@ module ApplicationHelper
def link_to_login(name = nil, html_options = nil, &block)
target = new_user_session_path
html_options = name if block_given?
html_options = name if block
if omniauth_only? && Devise.mappings[:user].omniauthable? && User.omniauth_providers.size == 1
target = omniauth_authorize_path(:user, User.omniauth_providers[0])
@ -75,7 +75,7 @@ module ApplicationHelper
html_options[:method] = :post
end
if block_given?
if block
link_to(target, html_options, &block)
else
link_to(name, target, html_options)

@ -7,7 +7,7 @@ module EmailHelper
def email_to_canonical_email(str)
username, domain = str.downcase.split('@', 2)
username, = username.gsub('.', '').split('+', 2)
username, = username.delete('.').split('+', 2)
"#{username}@#{domain}"
end

@ -213,7 +213,7 @@ module JsonLdHelper
end
end
def load_jsonld_context(url, _options = {}, &_block)
def load_jsonld_context(url, _options = {}, &block)
json = Rails.cache.fetch("jsonld:context:#{url}", expires_in: 30.days, raw: true) do
request = Request.new(:get, url)
request.add_headers('Accept' => 'application/ld+json')
@ -226,6 +226,6 @@ module JsonLdHelper
doc = JSON::LD::API::RemoteDocument.new(json, documentUrl: url)
block_given? ? yield(doc) : doc
block ? yield(doc) : doc
end
end

@ -51,6 +51,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
searchTokens: PropTypes.arrayOf(PropTypes.string),
maxLength: PropTypes.number,
lang: PropTypes.string,
spellCheck: PropTypes.string,
};
static defaultProps = {
@ -186,7 +187,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
};
render () {
const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang } = this.props;
const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang, spellCheck } = this.props;
const { suggestionsHidden } = this.state;
return (
@ -212,6 +213,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
className={className}
maxLength={maxLength}
lang={lang}
spellCheck={spellCheck}
/>
</label>

@ -332,6 +332,7 @@ class ComposeForm extends ImmutablePureComponent {
className='spoiler-input__input'
lang={this.props.lang}
autoFocus={false}
spellCheck
/>
</div>

@ -72,6 +72,7 @@ class Option extends React.PureComponent {
maxLength={pollLimits.max_option_chars}
value={title}
lang={lang}
spellCheck
onChange={this.handleOptionTitleChange}
suggestions={this.props.suggestions}
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}

@ -3,7 +3,6 @@ import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from 'flavours/glitch/components/loading_indicator';
import Column from 'flavours/glitch/features/ui/components/column';
import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim';
import AccountAuthorizeContainer from './containers/account_authorize_container';
@ -53,16 +52,8 @@ class FollowRequests extends ImmutablePureComponent {
render () {
const { intl, accountIds, hasMore, multiColumn, locked, domain, isLoading } = this.props;
if (!accountIds) {
return (
<Column name='follow-requests'>
<LoadingIndicator />
</Column>
);
}
const emptyMessage = <FormattedMessage id='empty_column.follow_requests' defaultMessage="You don't have any follow requests yet. When you receive one, it will show up here." />;
const unlockedPrependMessage = locked ? null : (
const unlockedPrependMessage = !locked && accountIds.size > 0 && (
<div className='follow_requests-unlocked_explanation'>
<FormattedMessage
id='follow_requests.unlocked_explanation'
@ -81,6 +72,7 @@ class FollowRequests extends ImmutablePureComponent {
onLoadMore={this.handleLoadMore}
hasMore={hasMore}
isLoading={isLoading}
showLoading={isLoading && accountIds.size === 0}
emptyMessage={emptyMessage}
bindToDocument={!multiColumn}
prepend={unlockedPrependMessage}

@ -3,7 +3,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
import { domain, version, source_url, profile_directory as profileDirectory } from 'flavours/glitch/initial_state';
import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'flavours/glitch/initial_state';
import { logOut } from 'flavours/glitch/utils/log_out';
import { openModal } from 'flavours/glitch/actions/modal';
import { PERMISSION_INVITE_USERS } from 'flavours/glitch/permissions';
@ -59,21 +59,27 @@ class LinkFooter extends React.PureComponent {
<p>
<strong>{domain}</strong>:
{' '}
<Link key='about' to='/about'><FormattedMessage id='footer.about' defaultMessage='About' /></Link>
<Link to='/about'><FormattedMessage id='footer.about' defaultMessage='About' /></Link>
{statusPageUrl && (
<>
{DividingCircle}
<a href={statusPageUrl} target='_blank' rel='noopener'><FormattedMessage id='footer.status' defaultMessage='Status' /></a>
</>
)}
{canInvite && (
<>
{DividingCircle}
<a key='invites' href='/invites' target='_blank'><FormattedMessage id='footer.invite' defaultMessage='Invite people' /></a>
<a href='/invites' target='_blank'><FormattedMessage id='footer.invite' defaultMessage='Invite people' /></a>
</>
)}
{canProfileDirectory && (
<>
{DividingCircle}
<Link key='directory' to='/directory'><FormattedMessage id='footer.directory' defaultMessage='Profiles directory' /></Link>
<Link to='/directory'><FormattedMessage id='footer.directory' defaultMessage='Profiles directory' /></Link>
</>
)}
{DividingCircle}
<Link key='privacy-policy' to='/privacy-policy'><FormattedMessage id='footer.privacy_policy' defaultMessage='Privacy policy' /></Link>
<Link to='/privacy-policy'><FormattedMessage id='footer.privacy_policy' defaultMessage='Privacy policy' /></Link>
</p>
<p>

@ -142,6 +142,7 @@ export const usePendingItems = getMeta('use_pending_items');
export const version = getMeta('version');
export const translationEnabled = getMeta('translation_enabled');
export const languages = initialState?.languages;
export const statusPageUrl = getMeta('status_page_url');
// Glitch-soc-specific settings
export const maxChars = (initialState && initialState.max_toot_chars) || 500;

@ -1071,6 +1071,7 @@
&__container {
padding: 30px;
pointer-events: all;
overflow-y: auto;
}
.status__content {

@ -51,6 +51,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
searchTokens: PropTypes.arrayOf(PropTypes.string),
maxLength: PropTypes.number,
lang: PropTypes.string,
spellCheck: PropTypes.string,
};
static defaultProps = {
@ -186,7 +187,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
};
render () {
const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang } = this.props;
const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength, lang, spellCheck } = this.props;
const { suggestionsHidden } = this.state;
return (
@ -212,6 +213,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
className={className}
maxLength={maxLength}
lang={lang}
spellCheck={spellCheck}
/>
</label>

@ -243,6 +243,7 @@ class ComposeForm extends ImmutablePureComponent {
id='cw-spoiler-input'
className='spoiler-input__input'
lang={this.props.lang}
spellCheck
/>
</div>

@ -93,6 +93,7 @@ class Option extends React.PureComponent {
maxLength={100}
value={title}
lang={lang}
spellCheck
onChange={this.handleOptionTitleChange}
suggestions={this.props.suggestions}
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}

@ -31,6 +31,11 @@ export default class Upload extends ImmutablePureComponent {
render () {
const { media } = this.props;
if (!media) {
return null;
}
const focusX = media.getIn(['meta', 'focus', 'x']);
const focusY = media.getIn(['meta', 'focus', 'y']);
const x = ((focusX / 2) + .5) * 100;

@ -5,7 +5,6 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { debounce } from 'lodash';
import LoadingIndicator from '../../components/loading_indicator';
import Column from '../ui/components/column';
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import AccountAuthorizeContainer from './containers/account_authorize_container';
@ -53,16 +52,8 @@ class FollowRequests extends ImmutablePureComponent {
render () {
const { intl, accountIds, hasMore, multiColumn, locked, domain, isLoading } = this.props;
if (!accountIds) {
return (
<Column>
<LoadingIndicator />
</Column>
);
}
const emptyMessage = <FormattedMessage id='empty_column.follow_requests' defaultMessage="You don't have any follow requests yet. When you receive one, it will show up here." />;
const unlockedPrependMessage = locked ? null : (
const unlockedPrependMessage = !locked && accountIds.size > 0 && (
<div className='follow_requests-unlocked_explanation'>
<FormattedMessage
id='follow_requests.unlocked_explanation'
@ -80,6 +71,7 @@ class FollowRequests extends ImmutablePureComponent {
onLoadMore={this.handleLoadMore}
hasMore={hasMore}
isLoading={isLoading}
showLoading={isLoading && accountIds.size === 0}
emptyMessage={emptyMessage}
bindToDocument={!multiColumn}
prepend={unlockedPrependMessage}

@ -3,7 +3,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
import { domain, version, source_url, profile_directory as profileDirectory } from 'mastodon/initial_state';
import { domain, version, source_url, statusPageUrl, profile_directory as profileDirectory } from 'mastodon/initial_state';
import { logOut } from 'mastodon/utils/log_out';
import { openModal } from 'mastodon/actions/modal';
import { PERMISSION_INVITE_USERS } from 'mastodon/permissions';
@ -59,21 +59,27 @@ class LinkFooter extends React.PureComponent {
<p>
<strong>{domain}</strong>:
{' '}
<Link key='about' to='/about'><FormattedMessage id='footer.about' defaultMessage='About' /></Link>
<Link to='/about'><FormattedMessage id='footer.about' defaultMessage='About' /></Link>
{statusPageUrl && (
<>
{DividingCircle}
<a href={statusPageUrl} target='_blank' rel='noopener'><FormattedMessage id='footer.status' defaultMessage='Status' /></a>
</>
)}
{canInvite && (
<>
{DividingCircle}
<a key='invites' href='/invites' target='_blank'><FormattedMessage id='footer.invite' defaultMessage='Invite people' /></a>
<a href='/invites' target='_blank'><FormattedMessage id='footer.invite' defaultMessage='Invite people' /></a>
</>
)}
{canProfileDirectory && (
<>
{DividingCircle}
<Link key='directory' to='/directory'><FormattedMessage id='footer.directory' defaultMessage='Profiles directory' /></Link>
<Link to='/directory'><FormattedMessage id='footer.directory' defaultMessage='Profiles directory' /></Link>
</>
)}
{DividingCircle}
<Link key='privacy-policy' to='/privacy-policy'><FormattedMessage id='footer.privacy_policy' defaultMessage='Privacy policy' /></Link>
<Link to='/privacy-policy'><FormattedMessage id='footer.privacy_policy' defaultMessage='Privacy policy' /></Link>
</p>
<p>

@ -134,6 +134,7 @@ export const usePendingItems = getMeta('use_pending_items');
export const version = getMeta('version');
export const translationEnabled = getMeta('translation_enabled');
export const languages = initialState?.languages;
export const statusPageUrl = getMeta('status_page_url');
// Glitch-soc-specific settings
export const maxChars = (initialState && initialState.max_toot_chars) || 500;

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Kortpadsleutels",
"footer.privacy_policy": "Privaatheidsbeleid",
"footer.source_code": "Wys bronkode",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Kom aan die gang",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Alcorces de teclau",
"footer.privacy_policy": "Politica de privacidat",
"footer.source_code": "Veyer codigo fuent",
"footer.status": "Status",
"generic.saved": "Alzau",
"getting_started.heading": "Primers pasos",
"hashtag.column_header.tag_mode.all": "y {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "اختصارات لوحة المفاتيح",
"footer.privacy_policy": "سياسة الخصوصية",
"footer.source_code": "الاطلاع على الشفرة المصدرية",
"footer.status": "Status",
"generic.saved": "تم الحفظ",
"getting_started.heading": "استعدّ للبدء",
"hashtag.column_header.tag_mode.all": "و {additional}",

@ -34,7 +34,7 @@
"account.followers.empty": "No one follows this user yet.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following": "Following",
"account.following_counter": "{count, plural,one {Siguiendo a {counter}} other {Siguiendo a {counter}}}",
"account.following_counter": "{count, plural,one {Sigue a {counter}} other {Sigue a {counter}}}",
"account.follows.empty": "Esti perfil entá nun sigue a naide.",
"account.follows_you": "Síguete",
"account.go_to_profile": "Go to profile",
@ -59,7 +59,7 @@
"account.show_reblogs": "Amosar los artículos compartíos de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} artículu} other {{counter} artículos}}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unblock domain {domain}",
"account.unblock_domain": "Desbloquiar el dominiu «{domain}»",
"account.unblock_short": "Unblock",
"account.unendorse": "Dexar de destacar nel perfil",
"account.unfollow": "Dexar de siguir",
@ -108,7 +108,7 @@
"column.favourites": "Favourites",
"column.follow_requests": "Solicitúes de siguimientu",
"column.home": "Home",
"column.lists": "Lists",
"column.lists": "Llistes",
"column.mutes": "Muted users",
"column.notifications": "Avisos",
"column.pins": "Artículos fixaos",
@ -179,10 +179,10 @@
"conversation.with": "Con {names}",
"copypaste.copied": "Copióse",
"copypaste.copy": "Copiar",
"directory.federated": "From known fediverse",
"directory.local": "From {domain} only",
"directory.new_arrivals": "New arrivals",
"directory.recently_active": "Recently active",
"directory.federated": "Del fediversu conocíu",
"directory.local": "De «{domain}» namás",
"directory.new_arrivals": "Cuentes nueves",
"directory.recently_active": "Con actividá recién",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
@ -268,10 +268,11 @@
"footer.about": "Tocante a",
"footer.directory": "Direutoriu de perfiles",
"footer.get_app": "Consiguir l'aplicación",
"footer.invite": "Invite people",
"footer.invite": "Convidar a persones",
"footer.keyboard_shortcuts": "Atayos del tecláu",
"footer.privacy_policy": "Política de privacidá",
"footer.source_code": "Ver el códigu fonte",
"footer.status": "Estáu",
"generic.saved": "Guardóse",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "y {additional}",
@ -352,13 +353,13 @@
"lists.edit": "Editar la llista",
"lists.edit.submit": "Change title",
"lists.new.create": "Amestar la llista",
"lists.new.title_placeholder": "New list title",
"lists.new.title_placeholder": "Títulu",
"lists.replies_policy.followed": "Cualesquier perfil siguíu",
"lists.replies_policy.list": "Miembros de la llista",
"lists.replies_policy.none": "Naide",
"lists.replies_policy.title": "Show replies to:",
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"lists.subheading": "Les tos llistes",
"load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
"loading_indicator.label": "Cargando…",
"media_gallery.toggle_visible": "{number, plural, one {Anubrir la imaxe} other {Anubrir les imáxenes}}",
@ -542,7 +543,7 @@
"server_banner.learn_more": "Saber más",
"server_banner.server_stats": "Estadístiques del sirvidor:",
"sign_in_banner.create_account": "Crear una cuenta",
"sign_in_banner.sign_in": "Sign in",
"sign_in_banner.sign_in": "Aniciar la sesión",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_domain": "Open moderation interface for {domain}",
@ -579,7 +580,7 @@
"status.reblog_private": "Boost with original visibility",
"status.reblogged_by": "{name} compartió",
"status.reblogs.empty": "Naide nun compartió esti artículu entá. Cuando daquién lo faiga, apaez equí.",
"status.redraft": "Delete & re-draft",
"status.redraft": "Desaniciar ya reeditar",
"status.remove_bookmark": "Remove bookmark",
"status.replied_to": "En rempuesta a {name}",
"status.reply": "Responder",
@ -616,7 +617,7 @@
"timeline_hint.resources.followers": "Siguidores",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Artículos antiguos",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} {days, plural, one {nel últimu día} other {nos últimos {days} díes}}",
"trends.trending_now": "En tendencia",
"ui.beforeunload": "El borrador piérdese si coles de Mastodon.",
"units.short.billion": "{count} MM",

@ -3,7 +3,7 @@
"about.contact": "Кантакт:",
"about.disclaimer": "Mastodon - свабоднае праграмнае забеспячэнне, з адкрытым зыходным кодам, і гандлёвай маркай Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Прычына недаступная",
"about.domain_blocks.preamble": "Mastodon звычайна дазваляе вам бачыць змесціва і камунікаваць з карыстальнікамі з іншых сервераў федэсвету. Гэта выключэнні, якія былі зробленыя на гэтым канкрэтным серверы.",
"about.domain_blocks.preamble": "Mastodon, у асноўным, дазваляе вам праглядаць кантэнт і ўзаемадзейнічаць з карыстальнікамі з іншых сервераў у федэсвету. Гэтыя выключэнні былі зроблены дакладна на гэтым серверы.",
"about.domain_blocks.silenced.explanation": "Вы не будзеце бачыць профілі і змесціва гэтага серверу, калі не шукаеце іх мэтанакіравана ці не падпісаны на карыстальнікаў адтуль.",
"about.domain_blocks.silenced.title": "Абмежаваны",
"about.domain_blocks.suspended.explanation": "Ніякая інфармацыя з гэтага сервера не будзе апрацавана, захавана або абменена, узаемадзеянне або камунікацыя з карыстальнікамі гэтага сервера немагчымы.",
@ -21,7 +21,7 @@
"account.browse_more_on_origin_server": "Глядзіце больш у арыгінальным профілі",
"account.cancel_follow_request": "Скасаваць запыт на падпіску",
"account.direct": "Асабістае паведамленне @{name}",
"account.disable_notifications": "Не апавяшчаць мяне пра допісы @{name}",
"account.disable_notifications": "Не паведамляць мне пра публікацыі @{name}",
"account.domain_blocked": "Дамен заблакаваны",
"account.edit_profile": "Рэдагаваць профіль",
"account.enable_notifications": "Апавяшчаць мяне пра допісы @{name}",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Спалучэнні клавіш",
"footer.privacy_policy": "Палітыка прыватнасці",
"footer.source_code": "Прагледзець зыходны код",
"footer.status": "Статус",
"generic.saved": "Захавана",
"getting_started.heading": "Пачатак працы",
"hashtag.column_header.tag_mode.all": "і {additional}",
@ -605,7 +606,7 @@
"suggestions.header": "Гэта можа Вас зацікавіць…",
"tabs_bar.federated_timeline": "Глабальнае",
"tabs_bar.home": "Галоўная",
"tabs_bar.local_timeline": "Мясцовае",
"tabs_bar.local_timeline": "Тутэйшыя",
"tabs_bar.notifications": "Апавяшчэнні",
"time_remaining.days": "{number, plural, one {застаўся # дзень} few {засталося # дні} many {засталося # дзён} other {засталося # дня}}",
"time_remaining.hours": "{number, plural, one {засталася # гадзіна} few {засталося # гадзіны} many {засталося # гадзін} other {засталося # гадзіны}}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Клавишни комбинации",
"footer.privacy_policy": "Политика за поверителност",
"footer.source_code": "Преглед на изходния код",
"footer.status": "Status",
"generic.saved": "Запазено",
"getting_started.heading": "Първи стъпки",
"hashtag.column_header.tag_mode.all": "и {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "সরকষণ হয়",
"getting_started.heading": "শ কর",
"hashtag.column_header.tag_mode.all": "এব {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Berradennoù klavier",
"footer.privacy_policy": "Reolennoù prevezded",
"footer.source_code": "Gwelet kod mammenn",
"footer.status": "Status",
"generic.saved": "Enrollet",
"getting_started.heading": "Loc'hañ",
"hashtag.column_header.tag_mode.all": "ha {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -32,9 +32,9 @@
"account.follow": "Segueix",
"account.followers": "Seguidors",
"account.followers.empty": "A aquest usuari encara no el segueix ningú.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidors}}",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} Seguidors}}",
"account.following": "Seguint",
"account.following_counter": "{count, plural, other {Seguint-ne {counter}}}",
"account.following_counter": "{count, plural, other {{counter} Seguint-ne}}",
"account.follows.empty": "Aquest usuari encara no segueix ningú.",
"account.follows_you": "Et segueix",
"account.go_to_profile": "Vés al perfil",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Dreceres de teclat",
"footer.privacy_policy": "Política de privadesa",
"footer.source_code": "Mostra el codi font",
"footer.status": "Estat",
"generic.saved": "Desat",
"getting_started.heading": "Primeres passes",
"hashtag.column_header.tag_mode.all": "i {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "پاشکەوتکرا",
"getting_started.heading": "دەست پێکردن",
"hashtag.column_header.tag_mode.all": "و {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Salvatu",
"getting_started.heading": "Per principià",
"hashtag.column_header.tag_mode.all": "è {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Klávesové zkratky",
"footer.privacy_policy": "Zásady ochrany osobních údajů",
"footer.source_code": "Zobrazit zdrojový kód",
"footer.status": "Stav",
"generic.saved": "Uloženo",
"getting_started.heading": "Začínáme",
"hashtag.column_header.tag_mode.all": "a {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Bysellau brys",
"footer.privacy_policy": "Polisi preifatrwydd",
"footer.source_code": "Gweld y cod ffynhonnell",
"footer.status": "Statws",
"generic.saved": "Wedi'i Gadw",
"getting_started.heading": "Dechrau",
"hashtag.column_header.tag_mode.all": "a {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Tastaturgenveje",
"footer.privacy_policy": "Fortrolighedspolitik",
"footer.source_code": "Vis kildekode",
"footer.status": "Status",
"generic.saved": "Gemt",
"getting_started.heading": "Startmenu",
"hashtag.column_header.tag_mode.all": "og {additional}",

@ -78,7 +78,7 @@
"alert.unexpected.title": "Ups!",
"announcement.announcement": "Ankündigung",
"attachments_list.unprocessed": "(ausstehend)",
"audio.hide": "Audio verbergen",
"audio.hide": "Audio ausblenden",
"autosuggest_hashtag.per_week": "{count} pro Woche",
"boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
"bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren",
@ -114,7 +114,7 @@
"column.pins": "Angeheftete Beiträge",
"column.public": "Föderierte Timeline",
"column_back_button.label": "Zurück",
"column_header.hide_settings": "Einstellungen verbergen",
"column_header.hide_settings": "Einstellungen ausblenden",
"column_header.moveLeft_settings": "Diese Spalte nach links verschieben",
"column_header.moveRight_settings": "Diese Spalte nach rechts verschieben",
"column_header.pin": "Anheften",
@ -247,7 +247,7 @@
"filter_modal.added.expired_explanation": "Diese Filterkategorie ist abgelaufen. Du musst das Ablaufdatum für diese Kategorie ändern.",
"filter_modal.added.expired_title": "Abgelaufener Filter!",
"filter_modal.added.review_and_configure": "Um diesen Filter zu überprüfen oder noch weiter zu konfigurieren, rufe die {settings_link} auf.",
"filter_modal.added.review_and_configure_title": "Filtereinstellungen",
"filter_modal.added.review_and_configure_title": "Filter-Einstellungen",
"filter_modal.added.settings_link": "Einstellungen",
"filter_modal.added.short_explanation": "Dieser Post wurde folgender Filterkategorie hinzugefügt: {title}.",
"filter_modal.added.title": "Filter hinzugefügt!",
@ -260,7 +260,7 @@
"filter_modal.title.status": "Beitrag per Filter ausblenden",
"follow_recommendations.done": "Fertig",
"follow_recommendations.heading": "Folge Leuten, deren Beiträge du sehen möchtest! Hier sind einige Vorschläge.",
"follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!",
"follow_recommendations.lead": "Beiträge von Profilen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Sei unbesorgt, mal Fehler zu begehen. Du kannst diesen Konten ganz einfach und jederzeit wieder entfolgen.",
"follow_request.authorize": "Genehmigen",
"follow_request.reject": "Ablehnen",
"follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Tastenkombinationen",
"footer.privacy_policy": "Datenschutzerklärung",
"footer.source_code": "Quellcode anzeigen",
"footer.status": "Status",
"generic.saved": "Gespeichert",
"getting_started.heading": "Auf geht's!",
"hashtag.column_header.tag_mode.all": "und {additional}",
@ -279,16 +280,16 @@
"hashtag.column_header.tag_mode.none": "ohne {additional}",
"hashtag.column_settings.select.no_options_message": "Keine Vorschläge gefunden",
"hashtag.column_settings.select.placeholder": "Hashtags eingeben …",
"hashtag.column_settings.tag_mode.all": "All diese",
"hashtag.column_settings.tag_mode.all": "Alle",
"hashtag.column_settings.tag_mode.any": "Eines von diesen",
"hashtag.column_settings.tag_mode.none": "Keines von diesen",
"hashtag.column_settings.tag_toggle": "Zusätzliche Hashtags für diese Spalte einfügen",
"hashtag.column_settings.tag_toggle": "Zusätzliche Hashtags dieser Spalte hinzufügen",
"hashtag.follow": "Hashtag folgen",
"hashtag.unfollow": "Hashtag entfolgen",
"home.column_settings.basic": "Einfach",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",
"home.hide_announcements": "Ankündigungen verbergen",
"home.hide_announcements": "Ankündigungen ausblenden",
"home.show_announcements": "Ankündigungen anzeigen",
"interaction_modal.description.favourite": "Mit einem Mastodon-Konto kannst du diesen Beitrag favorisieren, um deine Wertschätzung auszudrücken, und ihn für einen späteren Zeitpunkt speichern.",
"interaction_modal.description.follow": "Mit einem Mastodon-Konto kannst du {name} folgen, um die Beiträge auf deiner Startseite zu sehen.",
@ -308,7 +309,7 @@
"keyboard_shortcuts.back": "zurücknavigieren",
"keyboard_shortcuts.blocked": "Liste gesperrter Profile öffnen",
"keyboard_shortcuts.boost": "Beitrag teilen",
"keyboard_shortcuts.column": "Spalte fokussieren",
"keyboard_shortcuts.column": "Auf die aktuelle Spalte fokussieren",
"keyboard_shortcuts.compose": "Eingabefeld fokussieren",
"keyboard_shortcuts.description": "Beschreibung",
"keyboard_shortcuts.direct": "Direktnachrichten öffnen",
@ -332,16 +333,16 @@
"keyboard_shortcuts.reply": "auf Beitrag antworten",
"keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen",
"keyboard_shortcuts.search": "Suchleiste fokussieren",
"keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/verbergen",
"keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/ausblenden",
"keyboard_shortcuts.start": "„Erste Schritte“-Spalte öffnen",
"keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/verbergen",
"keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/ausblenden",
"keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/verbergen",
"keyboard_shortcuts.toot": "neuen Beitrag erstellen",
"keyboard_shortcuts.unfocus": "Eingabefeld/Suche nicht mehr fokussieren",
"keyboard_shortcuts.up": "sich in der Liste hinaufbewegen",
"lightbox.close": "Schließen",
"lightbox.compress": "Bildansicht komprimieren",
"lightbox.expand": "Bildansicht erweitern",
"lightbox.compress": "Bildansicht verkleinern",
"lightbox.expand": "Bildansicht vergrößern",
"lightbox.next": "Vor",
"lightbox.previous": "Zurück",
"limited_account_hint.action": "Profil trotzdem anzeigen",
@ -366,7 +367,7 @@
"missing_indicator.sublabel": "Der Inhalt konnte nicht gefunden werden",
"moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.",
"mute_modal.duration": "Dauer",
"mute_modal.hide_notifications": "Benachrichtigungen dieses Profils verbergen?",
"mute_modal.hide_notifications": "Benachrichtigungen dieses Profils ausblenden?",
"mute_modal.indefinite": "Unbegrenzt",
"navigation_bar.about": "Über",
"navigation_bar.blocks": "Gesperrte Profile",
@ -377,7 +378,7 @@
"navigation_bar.discover": "Entdecken",
"navigation_bar.domain_blocks": "Gesperrte Domains",
"navigation_bar.edit_profile": "Profil bearbeiten",
"navigation_bar.explore": "Entdecken",
"navigation_bar.explore": "Erforschen",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Stummgeschaltete Wörter",
"navigation_bar.follow_requests": "Follower-Anfragen",
@ -393,7 +394,7 @@
"navigation_bar.search": "Suche",
"navigation_bar.security": "Sicherheit",
"not_signed_in_indicator.not_signed_in": "Du musst dich anmelden, um auf diesen Inhalt zugreifen zu können.",
"notification.admin.report": "{target} wurde von {name} gemeldet",
"notification.admin.report": "{name} meldete {target}",
"notification.admin.sign_up": "{name} registrierte sich",
"notification.favourite": "{name} hat deinen Beitrag favorisiert",
"notification.follow": "{name} folgt dir jetzt",
@ -451,7 +452,7 @@
"poll.votes": "{votes, plural, one {# Stimme} other {# Stimmen}}",
"poll_button.add_poll": "Umfrage erstellen",
"poll_button.remove_poll": "Umfrage entfernen",
"privacy.change": "Sichtbarkeit des Beitrags anpassen",
"privacy.change": "Sichtbarkeit anpassen",
"privacy.direct.long": "Nur für die genannten Profile sichtbar",
"privacy.direct.short": "Nur erwähnte Profile",
"privacy.private.long": "Nur für deine Follower sichtbar",
@ -465,16 +466,16 @@
"refresh": "Aktualisieren",
"regeneration_indicator.label": "Wird geladen …",
"regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
"relative_time.days": "{number}T",
"relative_time.days": "{number} T.",
"relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
"relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}",
"relative_time.full.just_now": "soeben",
"relative_time.full.minutes": "vor {number, plural, one {# Minute} other {# Minuten}}",
"relative_time.full.seconds": "vor {number, plural, one {1 Sekunde} other {# Sekunden}}",
"relative_time.hours": "{number} Std",
"relative_time.hours": "{number} Std.",
"relative_time.just_now": "jetzt",
"relative_time.minutes": "{number} min",
"relative_time.seconds": "{number} sek",
"relative_time.minutes": "{number} Min.",
"relative_time.seconds": "{number} Sek.",
"relative_time.today": "heute",
"reply_indicator.cancel": "Abbrechen",
"report.block": "Sperren",
@ -530,7 +531,7 @@
"search_results.accounts": "Profile",
"search_results.all": "Alles",
"search_results.hashtags": "Hashtags",
"search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden",
"search_results.nothing_found": "Nichts zu diesen Suchbegriffen gefunden",
"search_results.statuses": "Beiträge",
"search_results.statuses_fts_disabled": "Die Suche nach Beitragsinhalten ist auf diesem Mastodon-Server deaktiviert.",
"search_results.title": "Suchergebnisse für {q}",
@ -544,9 +545,9 @@
"sign_in_banner.create_account": "Konto erstellen",
"sign_in_banner.sign_in": "Anmelden",
"sign_in_banner.text": "Melde dich an, um Profilen oder Hashtags zu folgen, Beiträge zu favorisieren, zu teilen und auf sie zu antworten. Du kannst auch von deinem Konto aus auf einem anderen Server interagieren.",
"status.admin_account": "Moderationsoberfläche für @{name} öffnen",
"status.admin_domain": "Moderationsoberfläche für {domain} öffnen",
"status.admin_status": "Diesen Beitrag in der Moderationsoberfläche öffnen",
"status.admin_account": "@{name} moderieren",
"status.admin_domain": "{domain} moderieren",
"status.admin_status": "Beitrag moderieren",
"status.block": "@{name} blockieren",
"status.bookmark": "Beitrag als Lesezeichen setzen",
"status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
@ -595,7 +596,7 @@
"status.show_original": "Ursprünglichen Beitrag anzeigen",
"status.translate": "Übersetzen",
"status.translated_from_with": "Aus {lang} mittels {provider} übersetzt",
"status.uncached_media_warning": "Nicht verfügbar",
"status.uncached_media_warning": "Medien-Datei auf diesem Server noch nicht verfügbar",
"status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben",
"status.unpin": "Vom Profil lösen",
"subscribed_languages.lead": "Nach der Änderung werden nur noch Beiträge in den ausgewählten Sprachen in den Timelines deiner Startseite und deiner Listen angezeigt. Wähle keine Sprache aus, um alle Beiträge zu sehen.",
@ -646,11 +647,11 @@
"upload_progress.label": "Wird hochgeladen …",
"upload_progress.processing": "Wird verarbeitet…",
"video.close": "Video schließen",
"video.download": "Datei herunterladen",
"video.download": "Video-Datei herunterladen",
"video.exit_fullscreen": "Vollbild verlassen",
"video.expand": "Video vergrößern",
"video.fullscreen": "Vollbild",
"video.hide": "Video verbergen",
"video.hide": "Video ausblenden",
"video.mute": "Stummschalten",
"video.pause": "Pausieren",
"video.play": "Abspielen",

@ -4075,6 +4075,10 @@
"defaultMessage": "About",
"id": "footer.about"
},
{
"defaultMessage": "Status",
"id": "footer.status"
},
{
"defaultMessage": "Invite people",
"id": "footer.invite"

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Συντομεύσεις πληκτρολογίου",
"footer.privacy_policy": "Πολιτική απορρήτου",
"footer.source_code": "Προβολή πηγαίου κώδικα",
"footer.status": "Κατάσταση",
"generic.saved": "Αποθηκεύτηκε",
"getting_started.heading": "Αφετηρία",
"hashtag.column_header.tag_mode.all": "και {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -276,6 +276,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -3,7 +3,7 @@
"about.contact": "Kontakto:",
"about.disclaimer": "Mastodon estas libera, malfermitkoda programo kaj varmarko de la firmao Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Kialo ne disponebla",
"about.domain_blocks.preamble": "Mastodono ebligas vidi la enhavojn de uzantoj el aliaj serviloj en la Fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.",
"about.domain_blocks.preamble": "Mastodon ĝenerale rajtigas vidi la enhavojn de uzantoj el aliaj serviloj en la fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.",
"about.domain_blocks.silenced.explanation": "Vi ne ĝenerale vidos profilojn kaj enhavojn de ĉi tiu servilo, krom se vi eksplice trovas aŭ estas permesita de via sekvato.",
"about.domain_blocks.silenced.title": "Limigita",
"about.domain_blocks.suspended.explanation": "Neniuj datumoj el tiu servilo estos prilaboritaj, konservitaj, aŭ interŝanĝitaj, do neeblas interagi aŭ komuniki kun uzantoj de tiu servilo.",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Fulmoklavoj",
"footer.privacy_policy": "Politiko de privateco",
"footer.source_code": "Montri fontkodon",
"footer.status": "Stato",
"generic.saved": "Konservita",
"getting_started.heading": "Por komenci",
"hashtag.column_header.tag_mode.all": "kaj {additional}",
@ -460,7 +461,7 @@
"privacy.public.short": "Publika",
"privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive el la funkcio de esploro",
"privacy.unlisted.short": "Nelistigita",
"privacy_policy.last_updated": "Laste ĝisdatigita sur {date}",
"privacy_policy.last_updated": "Laste ĝisdatigita en {date}",
"privacy_policy.title": "Politiko de privateco",
"refresh": "Refreŝigu",
"regeneration_indicator.label": "Ŝargado…",
@ -487,7 +488,7 @@
"report.category.title_account": "profilo",
"report.category.title_status": "afiŝo",
"report.close": "Farita",
"report.comment.title": "Ĉu estas io alia kion vi pensas ke ni devas scii?",
"report.comment.title": "Ĉu estas ajn ion alian kiun vi pensas ke ni devus scii?",
"report.forward": "Plusendi al {target}",
"report.forward_hint": "La konto estas de alia servilo. Ĉu vi volas sendi anoniman kopion de la raporto ankaŭ al tie?",
"report.mute": "Silentigi",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"footer.status": "Estado",
"generic.saved": "Guardado",
"getting_started.heading": "Inicio de Mastodon",
"hashtag.column_header.tag_mode.all": "y {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"footer.status": "Status",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.column_header.tag_mode.all": "y {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"footer.status": "Estado",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.column_header.tag_mode.all": "y {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Kiirklahvid",
"footer.privacy_policy": "Isikuandmete kaitse",
"footer.source_code": "Lähtekood",
"footer.status": "Olek",
"generic.saved": "Salvestatud",
"getting_started.heading": "Alustamine",
"hashtag.column_header.tag_mode.all": "ja {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Lasterbideak",
"footer.privacy_policy": "Pribatutasun politika",
"footer.source_code": "Ikusi iturburu kodea",
"footer.status": "Egoera",
"generic.saved": "Gordea",
"getting_started.heading": "Menua",
"hashtag.column_header.tag_mode.all": "eta {osagarria}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "میانبرهای صفحهکلید",
"footer.privacy_policy": "سیاست محرمانگی",
"footer.source_code": "نمایش کد مبدأ",
"footer.status": "Status",
"generic.saved": "ذخیره شده",
"getting_started.heading": "آغاز کنید",
"hashtag.column_header.tag_mode.all": "و {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Pikanäppäimet",
"footer.privacy_policy": "Tietosuojakäytäntö",
"footer.source_code": "Näytä lähdekoodi",
"footer.status": "Tila",
"generic.saved": "Tallennettu",
"getting_started.heading": "Näin pääset alkuun",
"hashtag.column_header.tag_mode.all": "ja {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Knappasnarvegir",
"footer.privacy_policy": "Privatlívspolitikkur",
"footer.source_code": "Vís keldukotuna",
"footer.status": "Støða",
"generic.saved": "Goymt",
"getting_started.heading": "At byrja",
"hashtag.column_header.tag_mode.all": "og {additional}",

@ -128,7 +128,7 @@
"compose.language.search": "Rechercher des langues…",
"compose_form.direct_message_warning_learn_more": "En savoir plus",
"compose_form.encryption_warning": "Les publications sur Mastodon ne sont pas chiffrées de bout en bout. Veuillez ne partager aucune information sensible sur Mastodon.",
"compose_form.hashtag_warning": "Ce message n'apparaîtra pas dans les listes de hashtags, car il n'est pas public. Seuls les messages publics peuvent appaître dans les recherches par hashtags.",
"compose_form.hashtag_warning": "Ce message n'apparaîtra pas dans les listes de hashtags, car il n'est pas public. Seuls les messages publics peuvent apparaître dans les recherches par hashtags.",
"compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos publications privés.",
"compose_form.lock_disclaimer.lock": "verrouillé",
"compose_form.placeholder": "À quoi pensez-vous?",
@ -221,7 +221,7 @@
"empty_column.favourites": "Personne n’a encore ajouté cette publication à ses favoris. Lorsque quelqu’un le fera, elle apparaîtra ici.",
"empty_column.follow_recommendations": "Il semble qu’aucune suggestion n’ait pu être générée pour vous. Vous pouvez essayer d’utiliser la recherche pour découvrir des personnes que vous pourriez connaître ou explorer les hashtags populaires.",
"empty_column.follow_requests": "Vous n’avez pas encore de demande d'abonnement. Lorsque vous en recevrez une, elle apparaîtra ici.",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.followed_tags": "Vous n'avez pas encore suivi d'hashtags. Lorsque vous le ferez, ils apparaîtront ici.",
"empty_column.hashtag": "Il n’y a pas encore de contenu associé à ce hashtag.",
"empty_column.home": "Votre fil d'accueil est vide! Suivez plus de personnes pour la remplir. {suggestions}",
"empty_column.home.suggestions": "Voir quelques suggestions",
@ -264,7 +264,7 @@
"follow_request.authorize": "Autoriser",
"follow_request.reject": "Rejeter",
"follow_requests.unlocked_explanation": "Même si votre compte n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.",
"followed_tags": "Followed hashtags",
"followed_tags": "Hashtags suivis",
"footer.about": "À propos",
"footer.directory": "Annuaire des profils",
"footer.get_app": "Télécharger l’application",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Raccourcis clavier",
"footer.privacy_policy": "Politique de confidentialité",
"footer.source_code": "Voir le code source",
"footer.status": "Status",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.column_header.tag_mode.all": "et {additional}",
@ -381,7 +382,7 @@
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Mots masqués",
"navigation_bar.follow_requests": "Demandes d'abonnements",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.followed_tags": "Hashtags suivis",
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Se déconnecter",
@ -543,7 +544,7 @@
"server_banner.server_stats": "Statistiques du serveur:",
"sign_in_banner.create_account": "Créer un compte",
"sign_in_banner.sign_in": "Se connecter",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"sign_in_banner.text": "Identifiez-vous pour suivre des profils ou des hashtags, ajouter des favoris, partager et répondre à des messages. Vous pouvez également interagir depuis votre compte sur un autre serveur.",
"status.admin_account": "Ouvrir l’interface de modération pour @{name}",
"status.admin_domain": "Ouvrir l’interface de modération pour {domain}",
"status.admin_status": "Ouvrir ce message dans l’interface de modération",

@ -6,7 +6,7 @@
"about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur⋅rice⋅s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
"about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.",
"about.domain_blocks.silenced.title": "Limité",
"about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.",
"about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les comptes de ce serveur.",
"about.domain_blocks.suspended.title": "Suspendu",
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
@ -45,7 +45,7 @@
"account.locked_info": "Ce compte est privé. Son ou sa propriétaire approuve manuellement qui peut le suivre.",
"account.media": "Médias",
"account.mention": "Mentionner @{name}",
"account.moved_to": "{name} a indiqué que son nouveau compte est maintenant  :",
"account.moved_to": "{name} a indiqué que son nouveau compte est maintenant :",
"account.mute": "Masquer @{name}",
"account.mute_notifications": "Masquer les notifications de @{name}",
"account.muted": "Masqué·e",
@ -71,7 +71,7 @@
"admin.dashboard.monthly_retention": "Taux de rétention des utilisateur·rice·s par mois après inscription",
"admin.dashboard.retention.average": "Moyenne",
"admin.dashboard.retention.cohort": "Mois d'inscription",
"admin.dashboard.retention.cohort_size": "Nouveaux utilisateurs",
"admin.dashboard.retention.cohort_size": "Nouveaux comptes",
"alert.rate_limited.message": "Veuillez réessayer après {retry_time, time, medium}.",
"alert.rate_limited.title": "Nombre de requêtes limité",
"alert.unexpected.message": "Une erreur inattendue s’est produite.",
@ -96,7 +96,7 @@
"closed_registrations.other_server_instructions": "Puisque Mastodon est décentralisé, vous pouvez créer un compte sur un autre serveur et interagir quand même avec celui-ci.",
"closed_registrations_modal.description": "Créer un compte sur {domain} est actuellement impossible, néanmoins souvenez-vous que vous n'avez pas besoin d'un compte spécifiquement sur {domain} pour utiliser Mastodon.",
"closed_registrations_modal.find_another_server": "Trouver un autre serveur",
"closed_registrations_modal.preamble": "Mastodon est décentralisé : peu importe où vous créez votre votre, vous serez en mesure de suivre et d'interagir avec quiconque sur ce serveur. Vous pouvez même l'héberger !",
"closed_registrations_modal.preamble": "Mastodon est décentralisé : peu importe où vous créez votre compte, vous serez en mesure de suivre et d'interagir avec quiconque sur ce serveur. Vous pouvez même l'héberger !",
"closed_registrations_modal.title": "Inscription sur Mastodon",
"column.about": "À propos",
"column.blocks": "Comptes bloqués",
@ -128,8 +128,8 @@
"compose.language.search": "Rechercher des langues …",
"compose_form.direct_message_warning_learn_more": "En savoir plus",
"compose_form.encryption_warning": "Les messages sur Mastodon ne sont pas chiffrés de bout en bout. Ne partagez aucune information sensible sur Mastodon.",
"compose_form.hashtag_warning": "Ce message n'apparaîtra pas dans les listes de hashtags, car il n'est pas public. Seuls les messages publics peuvent appaître dans les recherches par hashtags.",
"compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos messages privés.",
"compose_form.hashtag_warning": "Ce message n'apparaîtra pas dans les listes de hashtags, car il n'est pas public. Seuls les messages publics peuvent apparaître dans les recherches par hashtags.",
"compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre pour voir vos messages réservés à vos abonné⋅e⋅s.",
"compose_form.lock_disclaimer.lock": "verrouillé",
"compose_form.placeholder": "Qu’avez-vous en tête?",
"compose_form.poll.add_option": "Ajouter un choix",
@ -185,12 +185,12 @@
"directory.recently_active": "Actif·ve·s récemment",
"disabled_account_banner.account_settings": "Paramètres du compte",
"disabled_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé.",
"dismissable_banner.community_timeline": "Voici les messages publics les plus récents des personnes dont les comptes sont hébergés par {domain}.",
"dismissable_banner.community_timeline": "Voici les messages publics les plus récents des comptes hébergés par {domain}.",
"dismissable_banner.dismiss": "Rejeter",
"dismissable_banner.explore_links": "On parle actuellement de ces nouvelles sur ce serveur, ainsi que sur d'autres serveurs du réseau décentralisé.",
"dismissable_banner.explore_statuses": "Ces publications depuis les serveurs du réseau décentralisé, dont celui-ci, sont actuellement en train de gagner de l'ampleur sur ce serveur.",
"dismissable_banner.explore_tags": "Ces hashtags sont actuellement en train de gagner de l'ampleur parmi les personnes sur les serveurs du réseau décentralisé dont celui-ci.",
"dismissable_banner.public_timeline": "Voici les publications publiques les plus récentes des personnes de ce serveur et des autres du réseau décentralisé que ce serveur connait.",
"dismissable_banner.public_timeline": "Voici les messages publics les plus récents des personnes de cette instance et des autres instances du réseau décentralisé connues par ce serveur.",
"embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.",
"embed.preview": "Il apparaîtra comme cela:",
"emoji_button.activity": "Activités",
@ -246,7 +246,7 @@
"filter_modal.added.context_mismatch_title": "Incompatibilité du contexte !",
"filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.",
"filter_modal.added.expired_title": "Filtre expiré!",
"filter_modal.added.review_and_configure": "Pour passer en revue et approfondir la configuration de cette catégorie de filtre, aller sur le {settings_link}.",
"filter_modal.added.review_and_configure": "Pour examiner et affiner la configuration de cette catégorie de filtre, allez à {settings_link}.",
"filter_modal.added.review_and_configure_title": "Paramètres du filtre",
"filter_modal.added.settings_link": "page des paramètres",
"filter_modal.added.short_explanation": "Ce message a été ajouté à la catégorie de filtre suivante : {title}.",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Raccourcis clavier",
"footer.privacy_policy": "Politique de confidentialité",
"footer.source_code": "Voir le code source",
"footer.status": "État",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.column_header.tag_mode.all": "et {additional}",
@ -290,17 +291,17 @@
"home.column_settings.show_replies": "Afficher les réponses",
"home.hide_announcements": "Masquer les annonces",
"home.show_announcements": "Afficher les annonces",
"interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce post aux favoris pour informer l'auteur que vous l'appréciez et le sauvegarder pour plus tard.",
"interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce message à vos favoris pour informer l'auteur⋅rice que vous l'appréciez et pour le sauvegarder pour plus tard.",
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.",
"interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez booster ce message pour le partager avec vos propres abonnés.",
"interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez partager ce message pour le faire découvrir à vos propres abonné⋅e⋅s.",
"interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.",
"interaction_modal.on_another_server": "Sur un autre serveur",
"interaction_modal.on_this_server": "Sur ce serveur",
"interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou l'interface web de votre serveur Mastodon.",
"interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.",
"interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.",
"interaction_modal.title.favourite": "Ajouter de post de {name} aux favoris",
"interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris",
"interaction_modal.title.follow": "Suivre {name}",
"interaction_modal.title.reblog": "Partager la publication de {name}",
"interaction_modal.title.reblog": "Partager le message de {name}",
"interaction_modal.title.reply": "Répondre au message de {name}",
"intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
"intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
@ -364,7 +365,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Cacher l’image} other {Cacher les images}}",
"missing_indicator.label": "Non trouvé",
"missing_indicator.sublabel": "Ressource introuvable",
"moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous avez déplacé vers {movedToAccount}.",
"moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous l'avez déplacé à {movedToAccount}.",
"mute_modal.duration": "Durée",
"mute_modal.hide_notifications": "Masquer les notifications de cette personne?",
"mute_modal.indefinite": "Indéfinie",
@ -395,7 +396,7 @@
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}",
"notification.admin.sign_up": "{name} s'est inscrit",
"notification.favourite": "{name} a aimé votre publication",
"notification.favourite": "{name} a ajouté votre message à ses favoris",
"notification.follow": "{name} vous suit",
"notification.follow_request": "{name} a demandé à vous suivre",
"notification.mention": "{name} vous a mentionné·e:",
@ -522,10 +523,10 @@
"search.placeholder": "Rechercher",
"search.search_or_paste": "Rechercher ou saisir une URL",
"search_popout.search_format": "Recherche avancée",
"search_popout.tips.full_text": "Un texte normal retourne les messages que vous avez écrits, ajoutés à vos favoris, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondants.",
"search_popout.tips.full_text": "Faire une recherche textuelle retrouve les messages que vous avez écrits, ajoutés à vos favoris, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondants.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "message",
"search_popout.tips.text": "Un texte simple renvoie les noms affichés, les identifiants et les hashtags correspondants",
"search_popout.tips.text": "Faire une recherche textuelle retrouve les noms affichés, les identifiants et les hashtags correspondants",
"search_popout.tips.user": "utilisateur",
"search_results.accounts": "Comptes",
"search_results.all": "Tous les résultats",
@ -562,7 +563,7 @@
"status.favourite": "Ajouter aux favoris",
"status.filter": "Filtrer ce message",
"status.filtered": "Filtré",
"status.hide": "Masquer la publication",
"status.hide": "Masquer le message",
"status.history.created": "créé par {name} {date}",
"status.history.edited": "édité par {name} {date}",
"status.load_more": "Charger plus",
@ -615,7 +616,7 @@
"timeline_hint.remote_resource_not_displayed": "{resource} des autres serveurs ne sont pas affichés.",
"timeline_hint.resources.followers": "Les abonnés",
"timeline_hint.resources.follows": "Les abonnements",
"timeline_hint.resources.statuses": "Les messages plus anciens",
"timeline_hint.resources.statuses": "Messages plus anciens",
"trends.counter_by_accounts": "{count, plural, one {{counter} personne} other {{counter} personnes}} au cours {days, plural, one {des dernières 24h} other {des {days} derniers jours}}",
"trends.trending_now": "Tendance en ce moment",
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
@ -627,7 +628,7 @@
"upload_error.limit": "Taille maximale d'envoi de fichier dépassée.",
"upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.",
"upload_form.audio_description": "Décrire pour les personnes ayant des difficultés d’audition",
"upload_form.description": "Décrire pour les malvoyants",
"upload_form.description": "Décrire pour les malvoyant·e·s",
"upload_form.description_missing": "Description manquante",
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Fluchtoetsen",
"footer.privacy_policy": "Privacybelied",
"footer.source_code": "Boarnekoade besjen",
"footer.status": "Steat",
"generic.saved": "Bewarre",
"getting_started.heading": "Uteinsette",
"hashtag.column_header.tag_mode.all": "en {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Aicearraí méarchláir",
"footer.privacy_policy": "Polasaí príobháideachais",
"footer.source_code": "Féach ar an gcód foinseach",
"footer.status": "Status",
"generic.saved": "Sábháilte",
"getting_started.heading": "Ag tosú amach",
"hashtag.column_header.tag_mode.all": "agus {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Ath-ghoiridean a’ mheur-chlàir",
"footer.privacy_policy": "Poileasaidh prìobhaideachd",
"footer.source_code": "Seall am bun-tùs",
"footer.status": "Status",
"generic.saved": "Chaidh a shàbhaladh",
"getting_started.heading": "Toiseach",
"hashtag.column_header.tag_mode.all": "agus {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Atallos do teclado",
"footer.privacy_policy": "Política de privacidade",
"footer.source_code": "Ver código fonte",
"footer.status": "Estado",
"generic.saved": "Gardado",
"getting_started.heading": "Primeiros pasos",
"hashtag.column_header.tag_mode.all": "e {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "קיצורי מקלדת",
"footer.privacy_policy": "מדיניות פרטיות",
"footer.source_code": "צפיה בקוד המקור",
"footer.status": "מצב",
"generic.saved": "נשמר",
"getting_started.heading": "בואו נתחיל",
"hashtag.column_header.tag_mode.all": "ו- {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "कड शटकट",
"footer.privacy_policy": "पइवि",
"footer.source_code": "सस कड द",
"footer.status": "Status",
"generic.saved": "सड",
"getting_started.heading": "पहल कदम रख",
"hashtag.column_header.tag_mode.all": "और {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Tipkovni prečaci",
"footer.privacy_policy": "Pravila o zaštiti privatnosti",
"footer.source_code": "Prikaz izvornog koda",
"footer.status": "Status",
"generic.saved": "Spremljeno",
"getting_started.heading": "Počnimo",
"hashtag.column_header.tag_mode.all": "i {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Billentyűparancsok",
"footer.privacy_policy": "Adatvédelmi szabályzat",
"footer.source_code": "Forráskód megtekintése",
"footer.status": "Állapot",
"generic.saved": "Elmentve",
"getting_started.heading": "Első lépések",
"hashtag.column_header.tag_mode.all": "és {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Ստեղնաշարի կարճատներ",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Պահպանուած է",
"getting_started.heading": "Ինչպէս սկսել",
"hashtag.column_header.tag_mode.all": "եւ {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Pintasan papan ketik",
"footer.privacy_policy": "Kebijakan privasi",
"footer.source_code": "Lihat kode sumber",
"footer.status": "Status",
"generic.saved": "Disimpan",
"getting_started.heading": "Mulai",
"hashtag.column_header.tag_mode.all": "dan {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Iwu nzuzu",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Mbido",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Sparesis",
"getting_started.heading": "Debuto",
"hashtag.column_header.tag_mode.all": "e {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Flýtileiðir á lyklaborði",
"footer.privacy_policy": "Persónuverndarstefna",
"footer.source_code": "Skoða frumkóða",
"footer.status": "Staða",
"generic.saved": "Vistað",
"getting_started.heading": "Komast í gang",
"hashtag.column_header.tag_mode.all": "og {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Scorciatoie da tastiera",
"footer.privacy_policy": "Politica sulla privacy",
"footer.source_code": "Visualizza il codice sorgente",
"footer.status": "Stato",
"generic.saved": "Salvato",
"getting_started.heading": "Per iniziare",
"hashtag.column_header.tag_mode.all": "e {additional}",

@ -45,7 +45,7 @@
"account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。",
"account.media": "メディア",
"account.mention": "@{name}さんにメンション",
"account.moved_to": "{name} さんがアカウントを引っ越しました:",
"account.moved_to": "{name}さんがアカウントを引っ越しました:",
"account.mute": "@{name}さんをミュート",
"account.mute_notifications": "@{name}さんからの通知を受け取らない",
"account.muted": "ミュート済み",
@ -54,7 +54,7 @@
"account.posts_with_replies": "投稿と返信",
"account.report": "@{name}さんを通報",
"account.requested": "フォロー承認待ちです。クリックしてキャンセル",
"account.requested_follow": "{name} さんがあなたにフォローリクエストしました",
"account.requested_follow": "{name}さんがあなたにフォローリクエストしました",
"account.share": "@{name}さんのプロフィールを共有する",
"account.show_reblogs": "@{name}さんからのブーストを表示",
"account.statuses_counter": "{counter} 投稿",
@ -276,6 +276,7 @@
"footer.keyboard_shortcuts": "キーボードショートカット",
"footer.privacy_policy": "プライバシーポリシー",
"footer.source_code": "ソースコードを表示",
"footer.status": "ステータス",
"generic.saved": "保存しました",
"getting_started.heading": "スタート",
"hashtag.column_header.tag_mode.all": "と{additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "დაწყება",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Inegzumen n unasiw",
"footer.privacy_policy": "Tasertit tabaḍnit",
"footer.source_code": "Wali tangalt taɣbalut",
"footer.status": "Status",
"generic.saved": "Yettwasekles",
"getting_started.heading": "Bdu",
"hashtag.column_header.tag_mode.all": "d {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Сақталды",
"getting_started.heading": "Желіде",
"hashtag.column_header.tag_mode.all": "және {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -1,8 +1,8 @@
{
"about.blocks": "제한된 서버들",
"about.contact": "연락처:",
"about.disclaimer": "마스토돈은 자유 오픈소스 소프트웨어이며, Mastodon gGmbH의 상표입니다",
"about.domain_blocks.no_reason_available": "이유 비공개",
"about.disclaimer": "Mastodon은 자유 오픈소스 소프트웨어이며, Mastodon gGmbH의 상표입니다",
"about.domain_blocks.no_reason_available": "사유를 밝히지 않음",
"about.domain_blocks.preamble": "마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다.",
"about.domain_blocks.silenced.explanation": "명시적으로 찾아보거나 팔로우를 하기 전까지는, 이 서버에 있는 프로필이나 게시물 등을 일반적으로 볼 수 없습니다.",
"about.domain_blocks.silenced.title": "제한됨",
@ -66,7 +66,7 @@
"account.unmute": "@{name} 뮤트 해제",
"account.unmute_notifications": "@{name}의 알림 뮤트 해제",
"account.unmute_short": "뮤트 해제",
"account_note.placeholder": "클릭해서 노트 추가",
"account_note.placeholder": "클릭하여 노트 추가",
"admin.dashboard.daily_retention": "가입 후 일별 사용자 유지율",
"admin.dashboard.monthly_retention": "가입 후 월별 사용자 유지율",
"admin.dashboard.retention.average": "평균",
@ -138,8 +138,8 @@
"compose_form.poll.remove_option": "이 항목 삭제",
"compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경",
"compose_form.poll.switch_to_single": "단일 선택 투표로 변경",
"compose_form.publish": "뿌우",
"compose_form.publish_form": "뿌우",
"compose_form.publish": "게시",
"compose_form.publish_form": "게시",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "변경사항 저장",
"compose_form.sensitive.hide": "미디어를 민감함으로 설정하기",
@ -209,7 +209,7 @@
"emoji_button.symbols": "기호",
"emoji_button.travel": "여행과 장소",
"empty_column.account_suspended": "계정 정지됨",
"empty_column.account_timeline": "여긴 게시물이 없어요!",
"empty_column.account_timeline": "이곳에는 게시물이 없습니다!",
"empty_column.account_unavailable": "프로필 사용 불가",
"empty_column.blocks": "아직 아무도 차단하지 않았습니다.",
"empty_column.bookmarked_statuses": "아직 북마크에 저장한 게시물이 없습니다. 게시물을 북마크 지정하면 여기에 나타납니다.",
@ -219,7 +219,7 @@
"empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!",
"empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.",
"empty_column.favourites": "아직 아무도 이 게시물을 마음에 들어하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.",
"empty_column.follow_recommendations": "제안을 만들 수 없었습니다. 알 수 있는 사람을 찾아보거나 유행하는 해시태그를 둘러보세요.",
"empty_column.follow_recommendations": "당신을 위한 제안이 생성될 수 없는 것 같습니다. 알 수도 있는 사람을 검색하거나 유행하는 해시태그를 둘러볼 수 있습니다.",
"empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.",
"empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.",
"empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "키보드 단축키",
"footer.privacy_policy": "개인정보 정책",
"footer.source_code": "소스코드 보기",
"footer.status": "상태",
"generic.saved": "저장됨",
"getting_started.heading": "시작하기",
"hashtag.column_header.tag_mode.all": "및 {additional}",
@ -280,7 +281,7 @@
"hashtag.column_settings.select.no_options_message": "추천할 내용이 없습니다",
"hashtag.column_settings.select.placeholder": "해시태그를 입력하세요…",
"hashtag.column_settings.tag_mode.all": "모두",
"hashtag.column_settings.tag_mode.any": "아무것이든",
"hashtag.column_settings.tag_mode.any": "어느것이든",
"hashtag.column_settings.tag_mode.none": "이것들을 제외하고",
"hashtag.column_settings.tag_toggle": "추가 해시태그를 이 컬럼에 추가합니다",
"hashtag.follow": "해시태그 팔로우",
@ -400,11 +401,11 @@
"notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다",
"notification.mention": "{name} 님이 언급하였습니다",
"notification.own_poll": "내 투표가 끝났습니다",
"notification.poll": "당신이 참여 한 투표가 종료되었습니다",
"notification.poll": "참여했던 투표가 끝났습니다.",
"notification.reblog": "{name} 님이 부스트했습니다",
"notification.status": "{name} 님이 방금 게시물을 올렸습니다",
"notification.update": "{name} 님이 게시물을 수정했습니다",
"notifications.clear": "알림 우기",
"notifications.clear": "알림 우기",
"notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?",
"notifications.column_settings.admin.report": "새 신고:",
"notifications.column_settings.admin.sign_up": "새로운 가입:",
@ -617,7 +618,7 @@
"timeline_hint.resources.follows": "팔로우",
"timeline_hint.resources.statuses": "이전 게시물",
"trends.counter_by_accounts": "이전 {days}일 동안 {counter} 명의 사용자",
"trends.trending_now": "지금 유행중",
"trends.trending_now": "지금 유행 중",
"ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.",
"units.short.billion": "{count}B",
"units.short.million": "{count}B",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Kurteriyên klavyeyê",
"footer.privacy_policy": "Peymana nepeniyê",
"footer.source_code": "Koda çavkanî nîşan bide",
"footer.status": "Status",
"generic.saved": "Tomarkirî",
"getting_started.heading": "Destpêkirin",
"hashtag.column_header.tag_mode.all": "û {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Gwithys",
"getting_started.heading": "Dhe dhalleth",
"hashtag.column_header.tag_mode.all": "ha(g) {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "servavit",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Īsinājumtaustiņi",
"footer.privacy_policy": "Privātuma politika",
"footer.source_code": "Skatīt pirmkodu",
"footer.status": "Statuss",
"generic.saved": "Saglabāts",
"getting_started.heading": "Darba sākšana",
"hashtag.column_header.tag_mode.all": "un {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Започни",
"hashtag.column_header.tag_mode.all": "и {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "സരകി",
"getting_started.heading": "തടകിക",
"hashtag.column_header.tag_mode.all": "{additional} ഉ",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Pintasan papan kekunci",
"footer.privacy_policy": "Dasar privasi",
"footer.source_code": "Lihat kod sumber",
"footer.status": "Status",
"generic.saved": "Disimpan",
"getting_started.heading": "Mari bermula",
"hashtag.column_header.tag_mode.all": "dan {additional}",

@ -1,47 +1,47 @@
{
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules",
"account.account_note_header": "Note",
"account.add_or_remove_from_list": "Add or Remove from lists",
"about.blocks": "",
"about.contact": "ဆကရန:",
"about.disclaimer": "Mastodon သည အခမ open-source software န Mastodon gGmbH ၏ ကအမတစသည",
"about.domain_blocks.no_reason_available": "အကကမရရ",
"about.domain_blocks.preamble": "Mastodon သည သင အစအဝ အခ အသ အကအရက က အပအလသည။ ဤအရသည ဤအထကသည",
"about.domain_blocks.silenced.explanation": "လငလငကမဟကက ၎ငက၍ ဤဆ ပရ အကအရက သငသည မမရပ",
"about.domain_blocks.silenced.title": "ကနသတ",
"about.domain_blocks.suspended.explanation": "ဤဆကက၊ သဆညမဟ ဖလ မပ၊ ဤဆ အသ အပအလ ဆကမဟ ဆကက မဖမညမဟ",
"about.domain_blocks.suspended.title": "ရပသည",
"about.not_available": "ဤအခကအလကက ဤဆ မရရ",
"about.powered_by": "{mastodon} ဗဟက",
"about.rules": "စည\n",
"account.account_note_header": "က",
"account.add_or_remove_from_list": "ရင ထညမဟ ဖယ။\n",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "Block @{name}",
"account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.browse_more_on_origin_server": "Browse more on the original profile",
"account.badges.group": "",
"account.block": "@{name} ကဘလမည",
"account.block_domain": " {domain}ကမည",
"account.blocked": "ဘလသည",
"account.browse_more_on_origin_server": "ရငပရက",
"account.cancel_follow_request": "Withdraw follow request",
"account.direct": "Direct message @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Domain blocked",
"account.direct": "@{name} ကကကမည",
"account.disable_notifications": "@{name} ပတငသညအခ ကက အသရပ",
"account.domain_blocked": "ပငသည\n",
"account.edit_profile": "ကတမဆငမည",
"account.enable_notifications": "Notify me when @{name} posts",
"account.enable_notifications": "@{name} ပတငသညအခ ကက အကက",
"account.endorse": "Feature on profile",
"account.featured_tags.last_status_at": "Last post on {date}",
"account.featured_tags.last_status_at": "{date}က",
"account.featured_tags.last_status_never": "No posts",
"account.featured_tags.title": "{name}'s featured hashtags",
"account.follow": "စကမည",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
"account.followers": "က",
"account.followers.empty": "ဤသကက မရ",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following": "စကသည",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.joined_short": "Joined",
"account.follows.empty": "ဤသသည မညကက မရ",
"account.follows_you": "သငကကသည",
"account.go_to_profile": "ပရရန",
"account.hide_reblogs": "@{name} ၏ မကကရန",
"account.joined_short": "",
"account.languages": "Change subscribed languages",
"account.link_verified_on": "Ownership of this link was checked on {date}",
"account.link_verified_on": "ဤလင၏ ပက {date} က စစသည",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "မ",
"account.mention": "Mention @{name}",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Sneltoetsen",
"footer.privacy_policy": "Privacybeleid",
"footer.source_code": "Broncode bekijken",
"footer.status": "Status",
"generic.saved": "Opgeslagen",
"getting_started.heading": "Aan de slag",
"hashtag.column_header.tag_mode.all": "en {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Snøggtastar",
"footer.privacy_policy": "Personvernsreglar",
"footer.source_code": "Vis kjeldekode",
"footer.status": "Status",
"generic.saved": "Gøymt",
"getting_started.heading": "Kom i gang",
"hashtag.column_header.tag_mode.all": "og {additional}",
@ -381,7 +382,7 @@
"navigation_bar.favourites": "Favorittar",
"navigation_bar.filters": "Målbundne ord",
"navigation_bar.follow_requests": "Fylgjeførespurnader",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.followed_tags": "Fulgte emneknagger",
"navigation_bar.follows_and_followers": "Fylgje og fylgjarar",
"navigation_bar.lists": "Lister",
"navigation_bar.logout": "Logg ut",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Hurtigtaster",
"footer.privacy_policy": "Personvernregler",
"footer.source_code": "Vis kildekode",
"footer.status": "Status",
"generic.saved": "Lagret",
"getting_started.heading": "Kom i gang",
"hashtag.column_header.tag_mode.all": "og {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Acorchis clavièr",
"footer.privacy_policy": "Politica de confidencialitat",
"footer.source_code": "Veire lo còdi font",
"footer.status": "Estat",
"generic.saved": "Enregistrat",
"getting_started.heading": "Per començar",
"hashtag.column_header.tag_mode.all": "e {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -276,6 +276,7 @@
"footer.keyboard_shortcuts": "Skróty klawiszowe",
"footer.privacy_policy": "Polityka prywatności",
"footer.source_code": "Zobacz kod źródłowy",
"footer.status": "Status",
"generic.saved": "Zapisano",
"getting_started.heading": "Rozpocznij",
"hashtag.column_header.tag_mode.all": "i {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Atalhos de teclado",
"footer.privacy_policy": "Política de privacidade",
"footer.source_code": "Exibir código-fonte",
"footer.status": "Status",
"generic.saved": "Salvo",
"getting_started.heading": "Primeiros passos",
"hashtag.column_header.tag_mode.all": "e {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Atalhos do teclado",
"footer.privacy_policy": "Política de privacidade",
"footer.source_code": "Ver código-fonte",
"footer.status": "Estado",
"generic.saved": "Guardado",
"getting_started.heading": "Primeiros passos",
"hashtag.column_header.tag_mode.all": "e {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Comenzi rapide de la tastatură",
"footer.privacy_policy": "Politica de confidenţialitate",
"footer.source_code": "Vizualizează codul sursă",
"footer.status": "Status",
"generic.saved": "Salvat",
"getting_started.heading": "Primii pași",
"hashtag.column_header.tag_mode.all": "și {additional}",

@ -221,7 +221,7 @@
"empty_column.favourites": "Никто ещё не добавил этот пост в «Избранное». Как только кто-то это сделает, это отобразится здесь.",
"empty_column.follow_recommendations": "Похоже, у нас нет предложений для вас. Вы можете попробовать поискать людей, которых уже знаете, или изучить актуальные хэштеги.",
"empty_column.follow_requests": "Вам ещё не приходили запросы на подписку. Все новые запросы будут показаны здесь.",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.followed_tags": "Вы еще не подписались ни на один хэштег. Когда вы это сделаете, они появятся здесь.",
"empty_column.hashtag": "С этим хэштегом пока ещё ничего не постили.",
"empty_column.home": "Ваша лента совсем пуста! Подпишитесь на других, чтобы заполнить её. {suggestions}",
"empty_column.home.suggestions": "Посмотреть некоторые предложения",
@ -264,7 +264,7 @@
"follow_request.authorize": "Авторизовать",
"follow_request.reject": "Отказать",
"follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.",
"followed_tags": "Followed hashtags",
"followed_tags": "Отслеживаемые хэштеги",
"footer.about": "О проекте",
"footer.directory": "Каталог профилей",
"footer.get_app": "Скачать приложение",
@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Сочетания клавиш",
"footer.privacy_policy": "Политика конфиденциальности",
"footer.source_code": "Исходный код",
"footer.status": "Статус",
"generic.saved": "Сохранено",
"getting_started.heading": "Начать",
"hashtag.column_header.tag_mode.all": "и {additional}",
@ -381,7 +382,7 @@
"navigation_bar.favourites": "Избранное",
"navigation_bar.filters": "Игнорируемые слова",
"navigation_bar.follow_requests": "Запросы на подписку",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.followed_tags": "Отслеживаемые хэштеги",
"navigation_bar.follows_and_followers": "Подписки и подписчики",
"navigation_bar.lists": "Списки",
"navigation_bar.logout": "Выйти",
@ -543,7 +544,7 @@
"server_banner.server_stats": "Статистика сервера:",
"sign_in_banner.create_account": "Создать учётную запись",
"sign_in_banner.sign_in": "Войти",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"sign_in_banner.text": "Войдите, чтобы отслеживать профили, хэштеги или избранное, делиться сообщениями и отвечать на них. Вы также можете взаимодействовать с вашей учётной записью на другом сервере.",
"status.admin_account": "Открыть интерфейс модератора для @{name}",
"status.admin_domain": "Открыть интерфейс модерации {domain}",
"status.admin_status": "Открыть этот пост в интерфейсе модератора",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "and {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Polìtica de riservadesa",
"footer.source_code": "View source code",
"footer.status": "Status",
"generic.saved": "Sarvadu",
"getting_started.heading": "Comente cumintzare",
"hashtag.column_header.tag_mode.all": "e {additional}",

@ -272,6 +272,7 @@
"footer.keyboard_shortcuts": "Keyboord shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View the soorce code",
"footer.status": "Status",
"generic.saved": "Saved",
"getting_started.heading": "Gettin stertit",
"hashtag.column_header.tag_mode.all": "an {additional}",

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

Loading…
Cancel
Save