100 Commits 1726085db5 ... 64f9939e39

Author SHA1 Message Date
  Matt Jankowski 64f9939e39 Use `capture_emails` helper to improve email assertions in specs (#29245) 2 months ago
  Wolfgang Fournès 86627ea2e4 Add a missing thread example to the statuses spec (#29278) 2 months ago
  Matt Jankowski 72b0c9e20b Re-enable fixed `Style/Semicolon` cop (#29212) 2 months ago
  Hinaloe c645490d55 Fix `sensitive` flag not being removed when removing CW in new compose form (#29248) 2 months ago
  github-actions[bot] ad16362efe New Crowdin Translations (automated) (#29255) 2 months ago
  renovate[bot] fe6c055f35 Update dependency eslint-plugin-jsdoc to v48.1.0 (#29275) 2 months ago
  Eugen Rochko 63f4ea055a Change follow suggestions design in web UI (#29272) 2 months ago
  Matt Jankowski 245064bb98 Move "everyone" role and "instance actor" account magic number IDs to constants (#29260) 2 months ago
  Claire 96ddf1d482 Fix flaky end-to-end OCR test (#29244) 2 months ago
  Wolfgang Fournès cfadb87077 Update enum syntax to use the new Rails 7.0 style (#29217) 2 months ago
  Matt Jankowski 1d9d14b8de Use `abort` instead of `warn(); exit` in boot.rb env check (#29209) 2 months ago
  Matt Jankowski 1946e171e6 Reduce round trips in admin/disputes/appeals spec (#29234) 2 months ago
  Matt Jankowski 3454fcbd71 Reduce round trips in auth/sessions spec (#29233) 2 months ago
  Matt Jankowski a316c0e38d Reduce round trips in disputes/appeals spec (#29232) 2 months ago
  Matt Jankowski 117b507df5 Extract `subject` from `User#mark_email_as_confirmed!` spec (#29231) 2 months ago
  Matt Jankowski 1690fb39e6 Reduce `RSpec/MultipleExpectations` in instance_actors_controller spec (#29229) 2 months ago
  Matt Jankowski bba488c189 Reduce `RSpec/MultipleExpectations` in media_attachment spec (#29228) 2 months ago
  renovate[bot] e140d05a6a Update dependency doorkeeper to v5.6.9 (#29196) 2 months ago
  Claire 5f21a1f5a3 Bump version to v4.3.0-alpha.3 (#29241) 2 months ago
  Claire 9fee5e8526 Merge pull request from GHSA-jhrq-qvrm-qr36 2 months ago
  renovate[bot] a8ee6fdd62 Update dependency pg to v1.5.5 (#29230) 2 months ago
  Matt Jankowski a9f9b0097b Reduce `RSpec/MultipleExpectations` in captcha feature spec (#29226) 2 months ago
  Matt Jankowski 4b7f04e3ea Reduce `RSpec/MultipleExpectations` in post_status_service spec (#29225) 2 months ago
  github-actions[bot] 1c93d625c6 New Crowdin Translations (automated) (#29195) 2 months ago
  Matt Jankowski ed4939296a Reduce `RSpec/MultipleExpectations` in ap/activity/create spec (#29224) 2 months ago
  Matt Jankowski 1df2ffc3ee Use `subject` in blacklist email validator spec (#29211) 2 months ago
  Matt Jankowski fc4f823464 Avoid local block var assignment in ap/process_status_update_service spec (#29210) 2 months ago
  Claire d4d0565b0f Fix user creation failure handling in OAuth paths (#29207) 2 months ago
  Matt Jankowski 844aa59bdf Doc update about ruby version 3.0+ (#29202) 2 months ago
  Claire bbbbf00084 Fix OmniAuth tests (#29201) 2 months ago
  Claire 8e8e0f104f Bump version to v4.3.0-alpha.2 (#29200) 2 months ago
  Claire b31af34c97 Merge pull request from GHSA-vm39-j3vx-pch3 2 months ago
  Emelia Smith 68eaa804c9 Merge pull request from GHSA-7w3c-p9j8-mq3x 2 months ago
  Claire 554e2a019e Add `sidekiq_unique_jobs:delete_all_locks` task and disable `sidekiq-unique-jobs` UI by default (#29199) 2 months ago
  Emelia Smith 46142cdbdd Disable administrative doorkeeper routes (#29187) 2 months ago
  Emelia Smith e8b66a0525 Ignore legacy moderator and admin columns on User model (#29188) 2 months ago
  Nicolas Hoffmann 476a043fc5 Fix modal container bounds (#29185) 2 months ago
  github-actions[bot] 5de1ce23c3 New Crowdin Translations (automated) (#29182) 2 months ago
  renovate[bot] e25d9dfb25 Update dependency dotenv to v16.4.3 (#29174) 2 months ago
  renovate[bot] b244e5cb81 Update dependency sidekiq-unique-jobs to v7.1.33 (#29175) 2 months ago
  renovate[bot] 819ede190e Update dependency dotenv to v16.4.2 (#29157) 2 months ago
  renovate[bot] cf0d6bef8b Update eslint (non-major) (#29166) 2 months ago
  renovate[bot] 58918844a9 Update peter-evans/create-pull-request action to v6 (#29167) 2 months ago
  github-actions[bot] 6482948547 New Crowdin Translations (automated) (#29156) 2 months ago
  Claire 8125dae5a8 Rename `ES_CA_CERT` to `ES_CA_FILE` for consistency (#29147) 2 months ago
  github-actions[bot] c07028b2fa New Crowdin Translations (automated) (#29152) 2 months ago
  Claire ca8fbda5d0 Add end-to-end test for OCR in media uploads (#29148) 2 months ago
  Matt Jankowski a9e91eb955 Add common stub setup for resolv dns in email mx validator spec (#29140) 2 months ago
  Claire 67ec192d7d Clean up some unused CSS definitions (#29146) 2 months ago
  renovate[bot] d4db1c497b Update dependency pghero to v3.4.1 (#29144) 2 months ago
  renovate[bot] 13840d685c Update dependency irb to v1.11.2 (#29135) 2 months ago
  Matt Jankowski 15437e4ad9 Add `context` and `before` to lengthy tag manager spec examples (#29129) 2 months ago
  Matt Jankowski 5271131658 Extract helper method for repeated form fill in admin/domain_blocks feature spec (#29128) 2 months ago
  renovate[bot] 52986f35b8 Update dependency postcss to v8.4.35 (#29136) 2 months ago
  github-actions[bot] 2a362d62a8 New Crowdin Translations (automated) (#29145) 2 months ago
  Claire eff447a455 Rewrite signature verification using regexps and `StringScanner` (#29133) 2 months ago
  Matt Jankowski 79b4b94f3a Configure `CountAsOne` value for `RSpec/ExampleLength` cop (#29115) 2 months ago
  Matt Jankowski 95da28d201 Add common `ThreadingHelper` module for specs (#29116) 2 months ago
  renovate[bot] dbafec88e5 Update dependency @reduxjs/toolkit to v2.1.0 (#28879) 2 months ago
  Matt Jankowski b2133fee5f Update artifact preservation to use `save_path` value (#29035) 2 months ago
  Claire 7efc33b909 Move HTTP Signature parsing code to its own class (#28932) 2 months ago
  github-actions[bot] 17052714a2 New Crowdin Translations (automated) (#29121) 2 months ago
  Claire 2912829411 Add support for specifying custom CA cert for Elasticsearch (#29122) 2 months ago
  Claire eeabf9af72 Fix compatibility with Redis <6.2 (#29123) 2 months ago
  Matt Jankowski da50217b88 Combine repeated requests in `admin/accounts` controller spec (#29119) 2 months ago
  renovate[bot] 492e25da06 Update dependency webmock to v3.20.0 (#29120) 2 months ago
  Claire aaa58d4807 Fix tagging of manual security nightly builds (#29061) 2 months ago
  github-actions[bot] 90ccf7beb2 New Crowdin Translations (automated) (#28965) 2 months ago
  Claire 7ee93b7431 Change `source` attribute of `Suggestion` entity in `/api/v2/suggestions` back to a string (#29108) 2 months ago
  Matt Jankowski 1e0b0a3486 Use SQL heredoc on long statement lines in migrations (#29112) 2 months ago
  Claire 64300e0fe3 Fix self-destruct schedule not actually replacing initial schedule (#29049) 2 months ago
  Matt Jankowski 2f19ddd1fa Move status serializer error handling to private method (#29031) 2 months ago
  Matt Jankowski 0df86d77fd Reduce `RSpec/ExampleLength` in PostStatusService spec example (#29105) 2 months ago
  Matt Jankowski 93a5b3f9df Move status serializer chooser to private method (#29030) 2 months ago
  renovate[bot] cf42eba0f9 Update dependency brakeman to v6.1.2 (#29062) 2 months ago
  Matt Jankowski 69e61fff38 Move direct serializer usage out of admin view partial (#29028) 2 months ago
  Matt Jankowski 2d6ab44556 Reduce request/response round-trips in ap/collections controller spec (#29102) 2 months ago
  Matt Jankowski 978fdc71ca Reduce expectation count in example from `ProcessAccountService` spec (#29100) 2 months ago
  Matt Jankowski 0877f6fda4 Remove redundant `return` in `IntentsController` (#29099) 2 months ago
  renovate[bot] e8cc98977d Update dependency bootsnap to '~> 1.18.0' (#29019) 2 months ago
  Matt Jankowski 577520b637 Replace deprecated `Sidekiq::Testing` block style (#29097) 2 months ago
  Matt Jankowski df7acdcee5 Update markers API spec for error case (#29096) 2 months ago
  Emelia Smith 4fb7f611de Return domain block digests from admin domain blocks API (#29092) 2 months ago
  Matt Jankowski dedefdc303 Move length value mapping to constant in ids to bigints migration (#29048) 2 months ago
  Matt Jankowski 4cf07ed78c Add missing action logging to `api/v1/admin/reports#update` (#29044) 2 months ago
  renovate[bot] a31427a629 Update dependency pino to v8.18.0 (#29043) 2 months ago
  Matt Jankowski 0bec5c0755 Remove migration base class switcher from `RailsSettingsMigration` (#29047) 2 months ago
  renovate[bot] 62028b1b1b Update libretranslate/libretranslate Docker tag to v1.5.5 (#29090) 2 months ago
  renovate[bot] 90f4b8d53a Update dependency postcss to v8.4.34 (#29103) 2 months ago
  Claire 9ce914cc89 Fix report reason selector in moderation interface not unselecting rules when changing category (#29026) 2 months ago
  Claire 66dda7c762 Fix already-invalid reports failing to resolve (#29027) 2 months ago
  Matt Jankowski 779d987fbc Update `codedoc/codecov-action` to v4 (#29036) 2 months ago
  renovate[bot] a2d8aa1583 Update dependency tzinfo-data to v1.2024.1 (#29052) 2 months ago
  Matt Jankowski 5ca45403e2 Update `nsa` gem to version 0.3.0 (#29065) 2 months ago
  renovate[bot] 586b4faf61 Update dependency haml_lint to v0.56.0 (#29082) 2 months ago
  renovate[bot] 916aeb574d Update DefinitelyTyped types (non-major) (#29088) 2 months ago
  renovate[bot] f00ba02653 Update dependency nokogiri to v1.16.2 [SECURITY] (#29106) 2 months ago
  Matt Jankowski 86500e3312 Extract scenic view model common methods to concern (#28111) 2 months ago
  Eugen Rochko 1666b19559 Fix confirmation e-mails when signing up through an app (#29064) 3 months ago
  y.takahashi 3c315a68af Fix 'focus the compose textarea' shortcut is not working (#29059) 3 months ago
100 changed files with 2081 additions and 722 deletions
  1. 1 1
      .devcontainer/docker-compose.yml
  2. 2 2
      .github/workflows/build-security.yml
  3. 1 1
      .github/workflows/crowdin-download.yml
  4. 3 3
      .github/workflows/test-ruby.yml
  5. 5 11
      .rubocop.yml
  6. 2 2
      .rubocop_todo.yml
  7. 95 0
      CHANGELOG.md
  8. 2 2
      Gemfile
  9. 22 27
      Gemfile.lock
  10. 1 1
      README.md
  11. 2 3
      app/controllers/activitypub/inboxes_controller.rb
  12. 1 0
      app/controllers/api/v1/admin/reports_controller.rb
  13. 17 6
      app/controllers/api/v1/statuses_controller.rb
  14. 4 1
      app/controllers/auth/omniauth_callbacks_controller.rb
  15. 3 1
      app/controllers/auth/sessions_controller.rb
  16. 2 39
      app/controllers/concerns/signature_verification.rb
  17. 11 12
      app/controllers/intents_controller.rb
  18. 13 1
      app/helpers/jsonld_helper.rb
  19. 11 0
      app/helpers/react_component_helper.rb
  20. 1 1
      app/javascript/mastodon/components/admin/ReportReasonSelector.jsx
  21. 1 0
      app/javascript/mastodon/features/compose/components/upload_button.jsx
  22. 25 8
      app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx
  23. 1 1
      app/javascript/mastodon/features/ui/index.jsx
  24. 24 1
      app/javascript/mastodon/locales/af.json
  25. 43 4
      app/javascript/mastodon/locales/ar.json
  26. 6 0
      app/javascript/mastodon/locales/ast.json
  27. 26 6
      app/javascript/mastodon/locales/be.json
  28. 21 20
      app/javascript/mastodon/locales/bg.json
  29. 7 3
      app/javascript/mastodon/locales/br.json
  30. 13 8
      app/javascript/mastodon/locales/ca.json
  31. 51 11
      app/javascript/mastodon/locales/cs.json
  32. 24 4
      app/javascript/mastodon/locales/cy.json
  33. 5 6
      app/javascript/mastodon/locales/da.json
  34. 10 10
      app/javascript/mastodon/locales/de.json
  35. 0 5
      app/javascript/mastodon/locales/el.json
  36. 27 5
      app/javascript/mastodon/locales/en-GB.json
  37. 6 1
      app/javascript/mastodon/locales/en.json
  38. 1 5
      app/javascript/mastodon/locales/eo.json
  39. 19 11
      app/javascript/mastodon/locales/es-AR.json
  40. 6 6
      app/javascript/mastodon/locales/es-MX.json
  41. 12 5
      app/javascript/mastodon/locales/es.json
  42. 0 6
      app/javascript/mastodon/locales/et.json
  43. 8 8
      app/javascript/mastodon/locales/eu.json
  44. 0 6
      app/javascript/mastodon/locales/fa.json
  45. 80 78
      app/javascript/mastodon/locales/fi.json
  46. 134 1
      app/javascript/mastodon/locales/fil.json
  47. 6 6
      app/javascript/mastodon/locales/fo.json
  48. 18 4
      app/javascript/mastodon/locales/fr-CA.json
  49. 18 4
      app/javascript/mastodon/locales/fr.json
  50. 24 4
      app/javascript/mastodon/locales/fy.json
  51. 6 0
      app/javascript/mastodon/locales/ga.json
  52. 39 4
      app/javascript/mastodon/locales/gd.json
  53. 24 4
      app/javascript/mastodon/locales/gl.json
  54. 9 6
      app/javascript/mastodon/locales/he.json
  55. 0 2
      app/javascript/mastodon/locales/hi.json
  56. 0 1
      app/javascript/mastodon/locales/hr.json
  57. 15 15
      app/javascript/mastodon/locales/hu.json
  58. 90 0
      app/javascript/mastodon/locales/ia.json
  59. 0 2
      app/javascript/mastodon/locales/id.json
  60. 13 6
      app/javascript/mastodon/locales/ie.json
  61. 0 4
      app/javascript/mastodon/locales/io.json
  62. 8 8
      app/javascript/mastodon/locales/is.json
  63. 6 6
      app/javascript/mastodon/locales/it.json
  64. 20 5
      app/javascript/mastodon/locales/ja.json
  65. 56 26
      app/javascript/mastodon/locales/kab.json
  66. 10 10
      app/javascript/mastodon/locales/ko.json
  67. 88 61
      app/javascript/mastodon/locales/lad.json
  68. 67 4
      app/javascript/mastodon/locales/lt.json
  69. 0 4
      app/javascript/mastodon/locales/lv.json
  70. 34 4
      app/javascript/mastodon/locales/ms.json
  71. 0 4
      app/javascript/mastodon/locales/my.json
  72. 17 17
      app/javascript/mastodon/locales/nl.json
  73. 15 16
      app/javascript/mastodon/locales/nn.json
  74. 0 6
      app/javascript/mastodon/locales/no.json
  75. 0 2
      app/javascript/mastodon/locales/oc.json
  76. 30 0
      app/javascript/mastodon/locales/pa.json
  77. 13 6
      app/javascript/mastodon/locales/pl.json
  78. 6 6
      app/javascript/mastodon/locales/pt-BR.json
  79. 6 6
      app/javascript/mastodon/locales/pt-PT.json
  80. 30 1
      app/javascript/mastodon/locales/ro.json
  81. 25 5
      app/javascript/mastodon/locales/ru.json
  82. 0 3
      app/javascript/mastodon/locales/si.json
  83. 28 11
      app/javascript/mastodon/locales/sk.json
  84. 24 4
      app/javascript/mastodon/locales/sl.json
  85. 6 6
      app/javascript/mastodon/locales/sq.json
  86. 24 4
      app/javascript/mastodon/locales/sr-Latn.json
  87. 6 6
      app/javascript/mastodon/locales/sr.json
  88. 9 5
      app/javascript/mastodon/locales/sv.json
  89. 24 4
      app/javascript/mastodon/locales/th.json
  90. 356 0
      app/javascript/mastodon/locales/tok.json
  91. 24 4
      app/javascript/mastodon/locales/tr.json
  92. 24 5
      app/javascript/mastodon/locales/uk.json
  93. 25 5
      app/javascript/mastodon/locales/vi.json
  94. 6 6
      app/javascript/mastodon/locales/zh-CN.json
  95. 6 6
      app/javascript/mastodon/locales/zh-HK.json
  96. 6 6
      app/javascript/mastodon/locales/zh-TW.json
  97. 2 2
      app/javascript/mastodon/reducers/compose.js
  98. 9 53
      app/javascript/styles/mastodon/components.scss
  99. 20 0
      app/lib/application_extension.rb
  100. 40 0
      app/lib/signature_parser.rb

+ 1 - 1
.devcontainer/docker-compose.yml

@@ -70,7 +70,7 @@ services:
         hard: -1
 
   libretranslate:
-    image: libretranslate/libretranslate:v1.5.4
+    image: libretranslate/libretranslate:v1.5.5
     restart: unless-stopped
     volumes:
       - lt-data:/home/libretranslate/.local

+ 2 - 2
.github/workflows/build-security.yml

@@ -38,7 +38,7 @@ jobs:
       tags: |
         type=raw,value=edge
         type=raw,value=nightly
-        type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }}
+        type=raw,value=${{ needs.compute-suffix.outputs.prerelease }}
     secrets: inherit
 
   build-image-streaming:
@@ -60,5 +60,5 @@ jobs:
       tags: |
         type=raw,value=edge
         type=raw,value=nightly
-        type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }}
+        type=raw,value=${{ needs.compute-suffix.outputs.prerelease }}
     secrets: inherit

+ 1 - 1
.github/workflows/crowdin-download.yml

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

+ 3 - 3
.github/workflows/test-ruby.yml

@@ -139,7 +139,7 @@ jobs:
 
       - name: Upload coverage reports to Codecov
         if: matrix.ruby-version == '.ruby-version'
-        uses: codecov/codecov-action@v3
+        uses: codecov/codecov-action@v4
         with:
           files: coverage/lcov/mastodon.lcov
 
@@ -224,7 +224,7 @@ jobs:
         if: failure()
         with:
           name: e2e-screenshots
-          path: tmp/screenshots/
+          path: tmp/capybara/
 
   test-search:
     name: Elastic Search integration testing
@@ -328,4 +328,4 @@ jobs:
         if: failure()
         with:
           name: test-search-screenshots
-          path: tmp/screenshots/
+          path: tmp/capybara/

+ 5 - 11
.rubocop.yml

@@ -96,12 +96,6 @@ Rails/FilePath:
 Rails/HttpStatus:
   EnforcedStyle: numeric
 
-# Reason: Allowed in boot ENV checker
-# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsexit
-Rails/Exit:
-  Exclude:
-    - 'config/boot.rb'
-
 # Reason: Conflicts with `Lint/UselessMethodDefinition` for inherited controller actions
 # https://docs.rubocop.org/rubocop-rails/cops_rails.html#railslexicallyscopedactionfilter
 Rails/LexicallyScopedActionFilter:
@@ -134,6 +128,11 @@ Rails/UnusedIgnoredColumns:
 Rails/NegateInclude:
   Enabled: false
 
+# Reason: Enforce default limit, but allow some elements to span lines
+# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecexamplelength
+RSpec/ExampleLength:
+  CountAsOne: ['array', 'heredoc', 'method_call']
+
 # Reason: Deprecated cop, will be removed in 3.0, replaced by SpecFilePathFormat
 # https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecfilepath
 RSpec/FilePath:
@@ -211,11 +210,6 @@ Style/RedundantBegin:
 Style/RescueStandardError:
   EnforcedStyle: implicit
 
-# Reason: Simplify some spec layouts
-# https://docs.rubocop.org/rubocop/cops_style.html#stylesemicolon
-Style/Semicolon:
-  AllowAsExpressionSeparator: true
-
 # Reason: Originally disabled for CodeClimate, and no config consensus has been found
 # https://docs.rubocop.org/rubocop/cops_style.html#stylesymbolarray
 Style/SymbolArray:

+ 2 - 2
.rubocop_todo.yml

@@ -36,10 +36,10 @@ Metrics/PerceivedComplexity:
 
 # Configuration parameters: CountAsOne.
 RSpec/ExampleLength:
-  Max: 22
+  Max: 20 # Override default of 5
 
 RSpec/MultipleExpectations:
-  Max: 8
+  Max: 7
 
 # Configuration parameters: AllowSubject.
 RSpec/MultipleMemoizedHelpers:

+ 95 - 0
CHANGELOG.md

@@ -2,6 +2,101 @@
 
 All notable changes to this project will be documented in this file.
 
+## [4.2.7] - 2024-02-16
+
+### Fixed
+
+- Fix OmniAuth tests and edge cases in error handling ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/29201), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/29207))
+- Fix new installs by upgrading to the latest release of the `nsa` gem, instead of a no longer existing commit ([mjankowski](https://github.com/mastodon/mastodon/pull/29065))
+
+### Security
+
+- Fix insufficient checking of remote posts ([GHSA-jhrq-qvrm-qr36](https://github.com/mastodon/mastodon/security/advisories/GHSA-jhrq-qvrm-qr36))
+
+## [4.2.6] - 2024-02-14
+
+### Security
+
+- Update the `sidekiq-unique-jobs` dependency (see [GHSA-cmh9-rx85-xj38](https://github.com/mhenrixon/sidekiq-unique-jobs/security/advisories/GHSA-cmh9-rx85-xj38))
+  In addition, we have disabled the web interface for `sidekiq-unique-jobs` out of caution.
+  If you need it, you can re-enable it by setting `ENABLE_SIDEKIQ_UNIQUE_JOBS_UI=true`.
+  If you only need to clear all locks, you can now use `bundle exec rake sidekiq_unique_jobs:delete_all_locks`.
+- Update the `nokogiri` dependency (see [GHSA-xc9x-jj77-9p9j](https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-xc9x-jj77-9p9j))
+- Disable administrative Doorkeeper routes ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/29187))
+- Fix ongoing streaming sessions not being invalidated when applications get deleted in some cases ([GHSA-7w3c-p9j8-mq3x](https://github.com/mastodon/mastodon/security/advisories/GHSA-7w3c-p9j8-mq3x))
+  In some rare cases, the streaming server was not notified of access tokens revocation on application deletion.
+- Change external authentication behavior to never reattach a new identity to an existing user by default ([GHSA-vm39-j3vx-pch3](https://github.com/mastodon/mastodon/security/advisories/GHSA-vm39-j3vx-pch3))
+  Up until now, Mastodon has allowed new identities from external authentication providers to attach to an existing local user based on their verified e-mail address.
+  This allowed upgrading users from a database-stored password to an external authentication provider, or move from one authentication provider to another.
+  However, this behavior may be unexpected, and means that when multiple authentication providers are configured, the overall security would be that of the least secure authentication provider.
+  For these reasons, this behavior is now locked under the `ALLOW_UNSAFE_AUTH_PROVIDER_REATTACH` environment variable.
+  In addition, regardless of this environment variable, Mastodon will refuse to attach two identities from the same authentication provider to the same account.
+
+## [4.2.5] - 2024-02-01
+
+### Security
+
+- Fix insufficient origin validation (CVE-2024-23832, [GHSA-3fjr-858r-92rw](https://github.com/mastodon/mastodon/security/advisories/GHSA-3fjr-858r-92rw))
+
+## [4.2.4] - 2024-01-24
+
+### Fixed
+
+- Fix error when processing remote files with unusually long names ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28823))
+- Fix processing of compacted single-item JSON-LD collections ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28816))
+- Retry 401 errors on replies fetching ([ShadowJonathan](https://github.com/mastodon/mastodon/pull/28788))
+- Fix `RecordNotUnique` errors in LinkCrawlWorker ([tribela](https://github.com/mastodon/mastodon/pull/28748))
+- Fix Mastodon not correctly processing HTTP Signatures with query strings ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28443), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/28476))
+- Fix potential redirection loop of streaming endpoint ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28665))
+- Fix streaming API redirection ignoring the port of `streaming_api_base_url` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28558))
+- Fix error when processing link preview with an array as `inLanguage` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28252))
+- Fix unsupported time zone or locale preventing sign-up ([Gargron](https://github.com/mastodon/mastodon/pull/28035))
+- Fix "Hide these posts from home" list setting not refreshing when switching lists ([brianholley](https://github.com/mastodon/mastodon/pull/27763))
+- Fix missing background behind dismissable banner in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/27479))
+- Fix line wrapping of language selection button with long locale codes ([gunchleoc](https://github.com/mastodon/mastodon/pull/27100), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27127))
+- Fix `Undo Announce` activity not being sent to non-follower authors ([MitarashiDango](https://github.com/mastodon/mastodon/pull/18482))
+- Fix N+1s because of association preloaders not actually getting called ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28339))
+- Fix empty column explainer getting cropped under certain conditions ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28337))
+- Fix `LinkCrawlWorker` error when encountering empty OEmbed response ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28268))
+- Fix call to inefficient `delete_matched` cache method in domain blocks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28367))
+
+### Security
+
+- Add rate-limit of TOTP authentication attempts at controller level ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/28801))
+
+## [4.2.3] - 2023-12-05
+
+### Fixed
+
+- Fix dependency on `json-canonicalization` version that has been made unavailable since last release
+
+## [4.2.2] - 2023-12-04
+
+### Changed
+
+- Change dismissed banners to be stored server-side ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27055))
+- Change GIF max matrix size error to explicitly mention GIF files ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27927))
+- Change `Follow` activities delivery to bypass availability check ([ShadowJonathan](https://github.com/mastodon/mastodon/pull/27586))
+- Change single-column navigation notice to be displayed outside of the logo container ([renchap](https://github.com/mastodon/mastodon/pull/27462), [renchap](https://github.com/mastodon/mastodon/pull/27476))
+- Change Content-Security-Policy to be tighter on media paths ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26889))
+- Change post language code to include country code when relevant ([gunchleoc](https://github.com/mastodon/mastodon/pull/27099), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27207))
+
+### Fixed
+
+- Fix upper border radius of onboarding columns ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27890))
+- Fix incoming status creation date not being restricted to standard ISO8601 ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27655), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/28081))
+- Fix some posts from threads received out-of-order sometimes not being inserted into timelines ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27653))
+- Fix posts from force-sensitized accounts being able to trend ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27620))
+- Fix error when trying to delete already-deleted file with OpenStack Swift ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27569))
+- Fix batch attachment deletion when using OpenStack Swift ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27554))
+- Fix processing LDSigned activities from actors with unknown public keys ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27474))
+- Fix error and incorrect URLs in `/api/v1/accounts/:id/featured_tags` for remote accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27459))
+- Fix report processing notice not mentioning the report number when performing a custom action ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27442))
+- Fix handling of `inLanguage` attribute in preview card processing ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27423))
+- Fix own posts being removed from home timeline when unfollowing a used hashtag ([kmycode](https://github.com/mastodon/mastodon/pull/27391))
+- Fix some link anchors being recognized as hashtags ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27271), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27584))
+- Fix format-dependent redirects being cached regardless of requested format ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27634))
+
 ## [4.2.1] - 2023-10-10
 
 ### Added

+ 2 - 2
Gemfile

@@ -26,7 +26,7 @@ gem 'blurhash', '~> 0.1'
 
 gem 'active_model_serializers', '~> 0.10'
 gem 'addressable', '~> 2.8'
-gem 'bootsnap', '~> 1.17.0', require: false
+gem 'bootsnap', '~> 1.18.0', require: false
 gem 'browser'
 gem 'charlock_holmes', '~> 0.7.7'
 gem 'chewy', '~> 7.3'
@@ -63,7 +63,7 @@ gem 'kaminari', '~> 1.2'
 gem 'link_header', '~> 0.0'
 gem 'mime-types', '~> 3.5.0', require: 'mime/types/columnar'
 gem 'nokogiri', '~> 1.15'
-gem 'nsa', github: 'jhawthorn/nsa', ref: 'e020fcc3a54d993ab45b7194d89ab720296c111b'
+gem 'nsa'
 gem 'oj', '~> 3.14'
 gem 'ox', '~> 2.14'
 gem 'parslet'

+ 22 - 27
Gemfile.lock

@@ -7,17 +7,6 @@ GIT
       hkdf (~> 0.2)
       jwt (~> 2.0)
 
-GIT
-  remote: https://github.com/jhawthorn/nsa.git
-  revision: e020fcc3a54d993ab45b7194d89ab720296c111b
-  ref: e020fcc3a54d993ab45b7194d89ab720296c111b
-  specs:
-    nsa (0.2.8)
-      activesupport (>= 4.2, < 7.2)
-      concurrent-ruby (~> 1.0, >= 1.0.2)
-      sidekiq (>= 3.5)
-      statsd-ruby (~> 1.4, >= 1.4.0)
-
 GEM
   remote: https://rubygems.org/
   specs:
@@ -155,9 +144,9 @@ GEM
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
     blurhash (0.1.7)
-    bootsnap (1.17.1)
+    bootsnap (1.18.3)
       msgpack (~> 1.2)
-    brakeman (6.1.1)
+    brakeman (6.1.2)
       racc
     browser (5.3.1)
     brpoplpush-redis_script (0.1.3)
@@ -193,7 +182,8 @@ GEM
     cose (1.3.0)
       cbor (~> 0.5.9)
       openssl-signature_algorithm (~> 1.0)
-    crack (0.4.5)
+    crack (0.4.6)
+      bigdecimal
       rexml
     crass (1.0.6)
     css_parser (1.14.0)
@@ -229,7 +219,7 @@ GEM
     docile (1.4.0)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
-    doorkeeper (5.6.8)
+    doorkeeper (5.6.9)
       railties (>= 5)
     dotenv (2.8.1)
     dotenv-rails (2.8.1)
@@ -319,13 +309,13 @@ GEM
       activesupport (>= 5.1)
       haml (>= 4.0.6)
       railties (>= 5.1)
-    haml_lint (0.55.0)
+    haml_lint (0.56.0)
       haml (>= 5.0)
       parallel (~> 1.10)
       rainbow
       rubocop (>= 1.0)
       sysexits (~> 1.1)
-    hashdiff (1.0.1)
+    hashdiff (1.1.0)
     hashie (5.0.0)
     hcaptcha (7.1.0)
       json
@@ -361,7 +351,7 @@ GEM
       terminal-table (>= 1.5.1)
     idn-ruby (0.1.5)
     io-console (0.7.2)
-    irb (1.11.1)
+    irb (1.11.2)
       rdoc
       reline (>= 0.4.2)
     jmespath (1.6.2)
@@ -465,9 +455,14 @@ GEM
     net-smtp (0.4.0.1)
       net-protocol
     nio4r (2.5.9)
-    nokogiri (1.16.0)
+    nokogiri (1.16.2)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
+    nsa (0.3.0)
+      activesupport (>= 4.2, < 7.2)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      sidekiq (>= 3.5)
+      statsd-ruby (~> 1.4, >= 1.4.0)
     oj (3.16.3)
       bigdecimal (>= 3.0)
     omniauth (2.1.1)
@@ -510,8 +505,8 @@ GEM
     parslet (2.0.0)
     pastel (0.8.0)
       tty-color (~> 0.5)
-    pg (1.5.4)
-    pghero (3.4.0)
+    pg (1.5.5)
+    pghero (3.4.1)
       activerecord (>= 6)
     posix-spawn (0.3.15)
     premailer (1.21.0)
@@ -712,7 +707,7 @@ GEM
       rufus-scheduler (~> 3.2)
       sidekiq (>= 6, < 8)
       tilt (>= 1.4.0)
-    sidekiq-unique-jobs (7.1.31)
+    sidekiq-unique-jobs (7.1.33)
       brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
       concurrent-ruby (~> 1.0, >= 1.0.5)
       redis (< 5.0)
@@ -771,7 +766,7 @@ GEM
       unf (~> 0.1.0)
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2023.4)
+    tzinfo-data (1.2024.1)
       tzinfo (>= 1.0.0)
     unf (0.1.4)
       unf_ext
@@ -798,7 +793,7 @@ GEM
     webfinger (1.2.0)
       activesupport
       httpclient (>= 2.4)
-    webmock (3.19.1)
+    webmock (3.20.0)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -816,7 +811,7 @@ GEM
     xorcist (1.1.3)
     xpath (3.2.0)
       nokogiri (~> 1.8)
-    zeitwerk (2.6.12)
+    zeitwerk (2.6.13)
 
 PLATFORMS
   ruby
@@ -829,7 +824,7 @@ DEPENDENCIES
   better_errors (~> 2.9)
   binding_of_caller (~> 1.0)
   blurhash (~> 0.1)
-  bootsnap (~> 1.17.0)
+  bootsnap (~> 1.18.0)
   brakeman (~> 6.0)
   browser
   bundler-audit (~> 0.9)
@@ -886,7 +881,7 @@ DEPENDENCIES
   net-http (~> 0.4.0)
   net-ldap (~> 0.18)
   nokogiri (~> 1.15)
-  nsa!
+  nsa
   oj (~> 3.14)
   omniauth (~> 2.0)
   omniauth-cas (~> 3.0.0.beta.1)

+ 1 - 1
README.md

@@ -69,7 +69,7 @@ Mastodon acts as an OAuth2 provider, so 3rd party apps can use the REST and Stre
 
 - **PostgreSQL** 12+
 - **Redis** 4+
-- **Ruby** 2.7+
+- **Ruby** 3.0+
 - **Node.js** 16+
 
 The repository includes deployment configurations for **Docker and docker-compose** as well as specific platforms like **Heroku**, **Scalingo**, and **Nanobox**. For Helm charts, reference the [mastodon/chart repository](https://github.com/mastodon/chart). The [**standalone** installation guide](https://docs.joinmastodon.org/admin/install/) is available in the documentation.

+ 2 - 3
app/controllers/activitypub/inboxes_controller.rb

@@ -62,11 +62,10 @@ class ActivityPub::InboxesController < ActivityPub::BaseController
     return if raw_params.blank? || ENV['DISABLE_FOLLOWERS_SYNCHRONIZATION'] == 'true' || signed_request_account.nil?
 
     # Re-using the syntax for signature parameters
-    tree   = SignatureParamsParser.new.parse(raw_params)
-    params = SignatureParamsTransformer.new.apply(tree)
+    params = SignatureParser.parse(raw_params)
 
     ActivityPub::PrepareFollowersSynchronizationService.new.call(signed_request_account, params)
-  rescue Parslet::ParseFailed
+  rescue SignatureParser::ParsingError
     Rails.logger.warn 'Error parsing Collection-Synchronization header'
   end
 

+ 1 - 0
app/controllers/api/v1/admin/reports_controller.rb

@@ -35,6 +35,7 @@ class Api::V1::Admin::ReportsController < Api::BaseController
   def update
     authorize @report, :update?
     @report.update!(report_params)
+    log_action :update, @report
     render json: @report, serializer: REST::Admin::ReportSerializer
   end
 

+ 17 - 6
app/controllers/api/v1/statuses_controller.rb

@@ -71,13 +71,9 @@ class Api::V1::StatusesController < Api::BaseController
       with_rate_limit: true
     )
 
-    render json: @status, serializer: @status.is_a?(ScheduledStatus) ? REST::ScheduledStatusSerializer : REST::StatusSerializer
+    render json: @status, serializer: serializer_for_status
   rescue PostStatusService::UnexpectedMentionsError => e
-    unexpected_accounts = ActiveModel::Serializer::CollectionSerializer.new(
-      e.accounts,
-      serializer: REST::AccountSerializer
-    )
-    render json: { error: e.message, unexpected_accounts: unexpected_accounts }, status: 422
+    render json: unexpected_accounts_error_json(e), status: 422
   end
 
   def update
@@ -155,6 +151,21 @@ class Api::V1::StatusesController < Api::BaseController
     )
   end
 
+  def serializer_for_status
+    @status.is_a?(ScheduledStatus) ? REST::ScheduledStatusSerializer : REST::StatusSerializer
+  end
+
+  def unexpected_accounts_error_json(error)
+    {
+      error: error.message,
+      unexpected_accounts: serialized_accounts(error.accounts),
+    }
+  end
+
+  def serialized_accounts(accounts)
+    ActiveModel::Serializer::CollectionSerializer.new(accounts, serializer: REST::AccountSerializer)
+  end
+
   def pagination_params(core_params)
     params.slice(:limit).permit(:limit).merge(core_params)
   end

+ 4 - 1
app/controllers/auth/omniauth_callbacks_controller.rb

@@ -7,7 +7,7 @@ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
   def self.provides_callback_for(provider)
     define_method provider do
       @provider = provider
-      @user = User.find_for_oauth(request.env['omniauth.auth'], current_user)
+      @user = User.find_for_omniauth(request.env['omniauth.auth'], current_user)
 
       if @user.persisted?
         record_login_activity
@@ -17,6 +17,9 @@ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
         session["devise.#{provider}_data"] = request.env['omniauth.auth']
         redirect_to new_user_registration_url
       end
+    rescue ActiveRecord::RecordInvalid
+      flash[:alert] = I18n.t('devise.failure.omniauth_user_creation_failure') if is_navigational_format?
+      redirect_to new_user_session_url
     end
   end
 

+ 3 - 1
app/controllers/auth/sessions_controller.rb

@@ -183,7 +183,9 @@ class Auth::SessionsController < Devise::SessionsController
     )
 
     # Only send a notification email every hour at most
-    return if redis.set("2fa_failure_notification:#{user.id}", '1', ex: 1.hour, get: true).present?
+    return if redis.get("2fa_failure_notification:#{user.id}").present?
+
+    redis.set("2fa_failure_notification:#{user.id}", '1', ex: 1.hour)
 
     UserMailer.failed_2fa(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later!
   end

+ 2 - 39
app/controllers/concerns/signature_verification.rb

@@ -12,39 +12,6 @@ module SignatureVerification
 
   class SignatureVerificationError < StandardError; end
 
-  class SignatureParamsParser < Parslet::Parser
-    rule(:token)         { match("[0-9a-zA-Z!#$%&'*+.^_`|~-]").repeat(1).as(:token) }
-    rule(:quoted_string) { str('"') >> (qdtext | quoted_pair).repeat.as(:quoted_string) >> str('"') }
-    # qdtext and quoted_pair are not exactly according to spec but meh
-    rule(:qdtext)        { match('[^\\\\"]') }
-    rule(:quoted_pair)   { str('\\') >> any }
-    rule(:bws)           { match('\s').repeat }
-    rule(:param)         { (token.as(:key) >> bws >> str('=') >> bws >> (token | quoted_string).as(:value)).as(:param) }
-    rule(:comma)         { bws >> str(',') >> bws }
-    # Old versions of node-http-signature add an incorrect "Signature " prefix to the header
-    rule(:buggy_prefix)  { str('Signature ') }
-    rule(:params)        { buggy_prefix.maybe >> (param >> (comma >> param).repeat).as(:params) }
-    root(:params)
-  end
-
-  class SignatureParamsTransformer < Parslet::Transform
-    rule(params: subtree(:param)) do
-      (param.is_a?(Array) ? param : [param]).each_with_object({}) { |(key, value), hash| hash[key] = value }
-    end
-
-    rule(param: { key: simple(:key), value: simple(:val) }) do
-      [key, val]
-    end
-
-    rule(quoted_string: simple(:string)) do
-      string.to_s
-    end
-
-    rule(token: simple(:string)) do
-      string.to_s
-    end
-  end
-
   def require_account_signature!
     render json: signature_verification_failure_reason, status: signature_verification_failure_code unless signed_request_account
   end
@@ -135,12 +102,8 @@ module SignatureVerification
   end
 
   def signature_params
-    @signature_params ||= begin
-      raw_signature = request.headers['Signature']
-      tree          = SignatureParamsParser.new.parse(raw_signature)
-      SignatureParamsTransformer.new.apply(tree)
-    end
-  rescue Parslet::ParseFailed
+    @signature_params ||= SignatureParser.parse(request.headers['Signature'])
+  rescue SignatureParser::ParsingError
     raise SignatureVerificationError, 'Error parsing signature parameters'
   end
 

+ 11 - 12
app/controllers/intents_controller.rb

@@ -1,27 +1,26 @@
 # frozen_string_literal: true
 
 class IntentsController < ApplicationController
-  before_action :check_uri
+  EXPECTED_SCHEME = 'web+mastodon'
 
+  before_action :handle_invalid_uri, unless: :valid_uri?
   rescue_from Addressable::URI::InvalidURIError, with: :handle_invalid_uri
 
   def show
-    if uri.scheme == 'web+mastodon'
-      case uri.host
-      when 'follow'
-        return redirect_to authorize_interaction_path(uri: uri.query_values['uri'].delete_prefix('acct:'))
-      when 'share'
-        return redirect_to share_path(text: uri.query_values['text'])
-      end
+    case uri.host
+    when 'follow'
+      redirect_to authorize_interaction_path(uri: uri.query_values['uri'].delete_prefix('acct:'))
+    when 'share'
+      redirect_to share_path(text: uri.query_values['text'])
+    else
+      handle_invalid_uri
     end
-
-    not_found
   end
 
   private
 
-  def check_uri
-    not_found if uri.blank?
+  def valid_uri?
+    uri.present? && uri.scheme == EXPECTED_SCHEME
   end
 
   def handle_invalid_uri

+ 13 - 1
app/helpers/jsonld_helper.rb

@@ -174,7 +174,19 @@ module JsonLdHelper
     build_request(uri, on_behalf_of, options: request_options).perform do |response|
       raise Mastodon::UnexpectedResponseError, response unless response_successful?(response) || response_error_unsalvageable?(response) || !raise_on_temporary_error
 
-      body_to_json(response.body_with_limit) if response.code == 200
+      body_to_json(response.body_with_limit) if response.code == 200 && valid_activitypub_content_type?(response)
+    end
+  end
+
+  def valid_activitypub_content_type?(response)
+    return true if response.mime_type == 'application/activity+json'
+
+    # When the mime type is `application/ld+json`, we need to check the profile,
+    # but `http.rb` does not parse it for us.
+    return false unless response.mime_type == 'application/ld+json'
+
+    response.headers[HTTP::Headers::CONTENT_TYPE]&.split(';')&.map(&:strip)&.any? do |str|
+      str.start_with?('profile="') && str[9...-1].split.include?('https://www.w3.org/ns/activitystreams')
     end
   end
 

+ 11 - 0
app/helpers/react_component_helper.rb

@@ -15,9 +15,20 @@ module ReactComponentHelper
     div_tag_with_data(data)
   end
 
+  def serialized_media_attachments(media_attachments)
+    media_attachments.map { |attachment| serialized_attachment(attachment) }
+  end
+
   private
 
   def div_tag_with_data(data)
     content_tag(:div, nil, data: data)
   end
+
+  def serialized_attachment(attachment)
+    ActiveModelSerializers::SerializableResource.new(
+      attachment,
+      serializer: REST::MediaAttachmentSerializer
+    ).as_json
+  end
 end

+ 1 - 1
app/javascript/mastodon/components/admin/ReportReasonSelector.jsx

@@ -124,7 +124,7 @@ class ReportReasonSelector extends PureComponent {
 
     api().put(`/api/v1/admin/reports/${id}`, {
       category,
-      rule_ids,
+      rule_ids: category === 'violation' ? rule_ids : [],
     }).catch(err => {
       console.error(err);
     });

+ 1 - 0
app/javascript/mastodon/features/compose/components/upload_button.jsx

@@ -65,6 +65,7 @@ class UploadButton extends ImmutablePureComponent {
             key={resetFileKey}
             ref={this.setRef}
             type='file'
+            name='file-upload-input'
             multiple
             accept={acceptContentTypes.toArray().join(',')}
             onChange={this.handleChange}

+ 25 - 8
app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx

@@ -21,6 +21,7 @@ import { DisplayName } from 'mastodon/components/display_name';
 import { Icon } from 'mastodon/components/icon';
 import { IconButton } from 'mastodon/components/icon_button';
 import { VerifiedBadge } from 'mastodon/components/verified_badge';
+import { domain } from 'mastodon/initial_state';
 
 const messages = defineMessages({
   follow: { id: 'account.follow', defaultMessage: 'Follow' },
@@ -28,27 +29,43 @@ const messages = defineMessages({
   previous: { id: 'lightbox.previous', defaultMessage: 'Previous' },
   next: { id: 'lightbox.next', defaultMessage: 'Next' },
   dismiss: { id: 'follow_suggestions.dismiss', defaultMessage: "Don't show again" },
+  friendsOfFriendsHint: { id: 'follow_suggestions.hints.friends_of_friends', defaultMessage: 'This profile is popular among the people you follow.' },
+  similarToRecentlyFollowedHint: { id: 'follow_suggestions.hints.similar_to_recently_followed', defaultMessage: 'This profile is similar to the profiles you have most recently followed.' },
+  featuredHint: { id: 'follow_suggestions.hints.featured', defaultMessage: 'This profile has been hand-picked by the {domain} team.' },
+  mostFollowedHint: { id: 'follow_suggestions.hints.most_followed', defaultMessage: 'This profile is one of the most followed on {domain}.'},
+  mostInteractionsHint: { id: 'follow_suggestions.hints.most_interactions', defaultMessage: 'This profile has been recently getting a lot of attention on {domain}.' },
 });
 
 const Source = ({ id }) => {
-  let label;
+  const intl = useIntl();
+
+  let label, hint;
 
   switch (id) {
   case 'friends_of_friends':
+    hint = intl.formatMessage(messages.friendsOfFriendsHint);
+    label = <FormattedMessage id='follow_suggestions.personalized_suggestion' defaultMessage='Personalized suggestion' />;
+    break;
   case 'similar_to_recently_followed':
+    hint = intl.formatMessage(messages.similarToRecentlyFollowedHint);
     label = <FormattedMessage id='follow_suggestions.personalized_suggestion' defaultMessage='Personalized suggestion' />;
     break;
   case 'featured':
-    label = <FormattedMessage id='follow_suggestions.curated_suggestion' defaultMessage="Editors' Choice" />;
+    hint = intl.formatMessage(messages.featuredHint, { domain });
+    label = <FormattedMessage id='follow_suggestions.curated_suggestion' defaultMessage='Staff pick' />;
     break;
   case 'most_followed':
+    hint = intl.formatMessage(messages.mostFollowedHint, { domain });
+    label = <FormattedMessage id='follow_suggestions.popular_suggestion' defaultMessage='Popular suggestion' />;
+    break;
   case 'most_interactions':
+    hint = intl.formatMessage(messages.mostInteractionsHint, { domain });
     label = <FormattedMessage id='follow_suggestions.popular_suggestion' defaultMessage='Popular suggestion' />;
     break;
   }
 
   return (
-    <div className='inline-follow-suggestions__body__scrollable__card__text-stack__source'>
+    <div className='inline-follow-suggestions__body__scrollable__card__text-stack__source' title={hint}>
       <Icon icon={InfoIcon} />
       {label}
     </div>
@@ -59,7 +76,7 @@ Source.propTypes = {
   id: PropTypes.oneOf(['friends_of_friends', 'similar_to_recently_followed', 'featured', 'most_followed', 'most_interactions']),
 };
 
-const Card = ({ id, source }) => {
+const Card = ({ id, sources }) => {
   const intl = useIntl();
   const account = useSelector(state => state.getIn(['accounts', id]));
   const relationship = useSelector(state => state.getIn(['relationships', id]));
@@ -89,17 +106,17 @@ const Card = ({ id, source }) => {
 
       <div className='inline-follow-suggestions__body__scrollable__card__text-stack'>
         <Link to={`/@${account.get('acct')}`}><DisplayName account={account} /></Link>
-        {firstVerifiedField ? <VerifiedBadge link={firstVerifiedField.get('value')} /> : <Source id={source.get(0)} />}
+        {firstVerifiedField ? <VerifiedBadge link={firstVerifiedField.get('value')} /> : <Source id={sources.get(0)} />}
       </div>
 
-      <Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={handleFollow} />
+      <Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} secondary={following} onClick={handleFollow} />
     </div>
   );
 };
 
 Card.propTypes = {
   id: PropTypes.string.isRequired,
-  source: ImmutablePropTypes.list,
+  sources: ImmutablePropTypes.list,
 };
 
 const DISMISSIBLE_ID = 'home/follow-suggestions';
@@ -175,7 +192,7 @@ export const InlineFollowSuggestions = ({ hidden }) => {
             <Card
               key={suggestion.get('account')}
               id={suggestion.get('account')}
-              source={suggestion.get('source')}
+              sources={suggestion.get('sources')}
             />
           ))}
         </div>

+ 1 - 1
app/javascript/mastodon/features/ui/index.jsx

@@ -438,7 +438,7 @@ class UI extends PureComponent {
   handleHotkeyNew = e => {
     e.preventDefault();
 
-    const element = this.node.querySelector('.compose-form__autosuggest-wrapper textarea');
+    const element = this.node.querySelector('.autosuggest-textarea__textarea');
 
     if (element) {
       element.focus();

+ 24 - 1
app/javascript/mastodon/locales/af.json

@@ -33,6 +33,7 @@
   "account.follows.empty": "Die gebruiker volg nog niemand.",
   "account.go_to_profile": "Gaan na profiel",
   "account.hide_reblogs": "Versteek plasings wat deur @{name} aangestuur is",
+  "account.in_memoriam": "Ter nagedagtenis.",
   "account.joined_short": "Aangesluit",
   "account.link_verified_on": "Eienaarskap van hierdie skakel is nagegaan op {date}",
   "account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.",
@@ -71,6 +72,7 @@
   "bundle_column_error.network.title": "Netwerkfout",
   "bundle_column_error.retry": "Probeer weer",
   "bundle_column_error.return": "Keer terug na die tuisblad",
+  "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Sluit",
   "bundle_modal_error.message": "Die laai van die komponent het iewers skeefgeloop.",
   "bundle_modal_error.retry": "Probeer weer",
@@ -149,6 +151,8 @@
   "emoji_button.food": "Eet- en drinkgoed",
   "emoji_button.nature": "Natuur",
   "emoji_button.not_found": "Geen passende emoji gevind nie",
+  "emoji_button.objects": "Voorwerpe",
+  "emoji_button.people": "Mense",
   "emoji_button.search": "Soek...",
   "emoji_button.search_results": "Soekresultate",
   "empty_column.account_timeline": "Geen plasings hier nie!",
@@ -161,7 +165,12 @@
   "empty_column.lists": "Jy het nog geen lyste nie. Wanneer jy een skep, sal dit hier vertoon.",
   "empty_column.notifications": "Jy het nog geen kennisgewings nie. Interaksie van ander mense met jou, sal hier vertoon.",
   "explore.search_results": "Soekresultate",
+  "explore.suggested_follows": "Mense",
+  "explore.trending_links": "Nuus",
+  "filter_modal.added.settings_link": "instellings bladsy",
   "filter_modal.select_filter.search": "Soek of skep",
+  "firehose.local": "Hierdie bediener",
+  "firehose.remote": "Ander bedieners",
   "footer.about": "Oor",
   "footer.directory": "Profielgids",
   "footer.get_app": "Kry die app",
@@ -170,14 +179,21 @@
   "footer.privacy_policy": "Privaatheidsbeleid",
   "footer.source_code": "Wys bronkode",
   "getting_started.heading": "Kom aan die gang",
+  "hashtag.column_header.tag_mode.all": "en {additional}",
+  "hashtag.column_header.tag_mode.any": "of {additional}",
+  "hashtag.column_header.tag_mode.none": "sonder {additional}",
   "hashtag.column_settings.select.placeholder": "Voer hutsetikette in…",
   "hashtag.column_settings.tag_toggle": "Voeg meer etikette by hierdie kolom",
   "hashtag.follow": "Volg hutsetiket",
   "home.column_settings.show_reblogs": "Wys aangestuurde plasings",
   "interaction_modal.description.reblog": "Met 'n rekening op Mastodon kan jy hierdie plasing aanstuur om dit met jou volgers te deel.",
   "interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy op hierdie plasing reageer.",
+  "interaction_modal.title.follow": "Volg {name}",
   "interaction_modal.title.reblog": "Stuur {name} se plasing aan",
   "interaction_modal.title.reply": "Reageer op {name} se plasing",
+  "intervals.full.days": "{number, plural, one {# dag} other {# dae}}",
+  "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}",
+  "intervals.full.minutes": "{number, plural, one {# minuut} other {# minute}}",
   "keyboard_shortcuts.back": "Navigeer terug",
   "keyboard_shortcuts.blocked": "Vertoon lys van geblokkeerde gebruikers",
   "keyboard_shortcuts.boost": "Stuur aan",
@@ -209,8 +225,11 @@
   "keyboard_shortcuts.toot": "Begin ’n nuwe plasing",
   "keyboard_shortcuts.unfocus": "Fokus uit van teksveld/soekveld",
   "keyboard_shortcuts.up": "Beweeg opwaarts in die lys",
+  "lightbox.next": "Volgende",
+  "lightbox.previous": "Vorige",
   "limited_account_hint.action": "Vertoon profiel in elk geval",
   "limited_account_hint.title": "Hierdie profiel is deur moderators van {domain} versteek.",
+  "link_preview.author": "Deur {name}",
   "lists.account.add": "Voeg by lys",
   "lists.account.remove": "Verwyder vanaf lys",
   "lists.delete": "Verwyder lys",
@@ -237,6 +256,7 @@
   "notification.reblog": "{name} het jou plasing aangestuur",
   "notifications.column_settings.push": "Stootkennisgewings",
   "notifications.column_settings.reblog": "Aangestuurde plasings:",
+  "notifications.column_settings.sound": "Speel klank",
   "notifications.column_settings.status": "Nuwe plasings:",
   "notifications.column_settings.unread_notifications.highlight": "Lig ongelese kennisgewings uit",
   "notifications.filter.boosts": "Aangestuurde plasings",
@@ -300,5 +320,8 @@
   "upload_form.audio_description": "Describe for people with hearing loss",
   "upload_form.description": "Describe for the visually impaired",
   "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
-  "upload_progress.label": "Uploading…"
+  "upload_progress.label": "Uploading…",
+  "video.fullscreen": "Volskerm",
+  "video.mute": "Klank afskakel",
+  "video.unmute": "Klank aanskakel"
 }

+ 43 - 4
app/javascript/mastodon/locales/ar.json

@@ -21,6 +21,7 @@
   "account.blocked": "محظور",
   "account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي",
   "account.cancel_follow_request": "إلغاء طلب المتابعة",
+  "account.copy": "نسخ الرابط إلى الملف الشخصي",
   "account.direct": "إشارة خاصة لـ @{name}",
   "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}",
   "account.domain_blocked": "اسم النِّطاق محظور",
@@ -31,6 +32,7 @@
   "account.featured_tags.last_status_never": "لا توجد رسائل",
   "account.featured_tags.title": "وسوم {name} المميَّزة",
   "account.follow": "متابعة",
+  "account.follow_back": "تابعه بدورك",
   "account.followers": "مُتابِعون",
   "account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
   "account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two {مُتابعانِ اِثنان} few {{counter} مُتابِعين} many {{counter} مُتابِعًا} other {{counter} مُتابع}}",
@@ -51,6 +53,7 @@
   "account.mute_notifications_short": "كتم الإشعارات",
   "account.mute_short": "اكتم",
   "account.muted": "مَكتوم",
+  "account.mutual": "متبادل",
   "account.no_bio": "لم يتم تقديم وصف.",
   "account.open_original_page": "افتح الصفحة الأصلية",
   "account.posts": "منشورات",
@@ -143,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "مُقفَل",
   "compose_form.placeholder": "فِيمَ تُفكِّر؟",
   "compose_form.poll.duration": "مُدَّة اِستطلاع الرأي",
+  "compose_form.poll.multiple": "متعدد الخيارات",
+  "compose_form.poll.option_placeholder": "الخيار {number}",
+  "compose_form.poll.single": "اختر واحدا",
   "compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
   "compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
+  "compose_form.poll.type": "الأسلوب",
+  "compose_form.publish": "نشر",
   "compose_form.publish_form": "منشور جديد",
+  "compose_form.reply": "ردّ",
+  "compose_form.save_changes": "تحديث",
   "compose_form.spoiler.marked": "إزالة تحذير المحتوى",
   "compose_form.spoiler.unmarked": "إضافة تحذير للمحتوى",
+  "compose_form.spoiler_placeholder": "تحذير المحتوى (اختياري)",
   "confirmation_modal.cancel": "إلغاء",
   "confirmations.block.block_and_report": "حظره والإبلاغ عنه",
   "confirmations.block.confirm": "حظر",
@@ -179,6 +190,7 @@
   "conversation.mark_as_read": "اعتبرها كمقروءة",
   "conversation.open": "اعرض المحادثة",
   "conversation.with": "مع {names}",
+  "copy_icon_button.copied": "نُسِخ إلى الحافظة",
   "copypaste.copied": "تم نسخه",
   "copypaste.copy_to_clipboard": "نسخ إلى الحافظة",
   "directory.federated": "مِن الفديفرس المعروف",
@@ -210,6 +222,7 @@
   "emoji_button.search_results": "نتائج البحث",
   "emoji_button.symbols": "رموز",
   "emoji_button.travel": "الأماكن والسفر",
+  "empty_column.account_hides_collections": "اختار هذا المستخدم عدم إتاحة هذه المعلومات للعامة",
   "empty_column.account_suspended": "حساب معلق",
   "empty_column.account_timeline": "لا توجد منشورات هنا!",
   "empty_column.account_unavailable": "الملف التعريفي غير متوفر",
@@ -264,6 +277,12 @@
   "follow_request.authorize": "ترخيص",
   "follow_request.reject": "رفض",
   "follow_requests.unlocked_explanation": "حتى وإن كان حسابك غير مقفل، يعتقد فريق {domain} أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.",
+  "follow_suggestions.curated_suggestion": "خيار المحرر",
+  "follow_suggestions.dismiss": "لا تُظهرها مجدّدًا",
+  "follow_suggestions.personalized_suggestion": "توصية مخصصة",
+  "follow_suggestions.popular_suggestion": "توصية رائجة",
+  "follow_suggestions.view_all": "عرض الكل",
+  "follow_suggestions.who_to_follow": "حسابات للمُتابَعة",
   "followed_tags": "الوسوم المتابَعة",
   "footer.about": "عن",
   "footer.directory": "دليل الصفحات التعريفية",
@@ -290,13 +309,9 @@
   "hashtag.follow": "اتبع الوسم",
   "hashtag.unfollow": "ألغِ متابعة الوسم",
   "hashtags.and_other": "…و {count, plural, zero {} one {# واحد آخر} two {# اثنان آخران} few {# آخرون} many {# آخَرًا}other {# آخرون}}",
-  "home.actions.go_to_explore": "اطّلع على ما هو رائج حاليا",
-  "home.actions.go_to_suggestions": "ابحث عن أشخاص لِمُتابعتهم",
   "home.column_settings.basic": "الأساسية",
   "home.column_settings.show_reblogs": "اعرض المعاد نشرها",
   "home.column_settings.show_replies": "اعرض الردود",
-  "home.explore_prompt.body": "سوف يحتوي خيط أخبارك الرئيسي على مزيج من المنشورات مِنها التي تحتوي على وسوم اخترتَ متابعتها، وأشخاص اخترتَ متابعتهم والمنشورات التي أعادوا نشرها. ومع ذلك، إن لا زال خيط أخبارك يبدو هادئا جدا، ماذا لو:",
-  "home.explore_prompt.title": "هذه هي صفحتك الرئيسة في ماستدون.",
   "home.hide_announcements": "إخفاء الإعلانات",
   "home.pending_critical_update.body": "يرجى تحديث خادم ماستدون في أقرب وقت ممكن!",
   "home.pending_critical_update.link": "اطّلع على التحديثات",
@@ -377,6 +392,7 @@
   "lists.search": "إبحث في قائمة الحسابات التي تُتابِعها",
   "lists.subheading": "قوائمك",
   "load_pending": "{count, plural, one {# عنصر جديد} other {# عناصر جديدة}}",
+  "loading_indicator.label": "جاري التحميل…",
   "media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}",
   "moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.",
   "mute_modal.duration": "المدة",
@@ -464,6 +480,17 @@
   "onboarding.follows.empty": "نأسف، لا يمكن عرض نتائج في الوقت الحالي. جرب البحث أو انتقل لصفحة الاستكشاف لإيجاد أشخاص للمتابعة، أو حاول مرة أخرى.",
   "onboarding.follows.lead": "مقتطفات خيطك الرئيس هي الطريقة الأساسية لتجربة ماستدون. كلما زاد عدد الأشخاص الذين تتبعهم، كلما زاد خيط أخبارك نشاطا وإثارة للاهتمام. بداية، إليك بعض الاقتراحات:",
   "onboarding.follows.title": "أضفِ طابعا شخصيا على موجزات خيطك الرئيس",
+  "onboarding.profile.discoverable": "اجعل ملفي الشخصي قابلاً للاكتشاف",
+  "onboarding.profile.discoverable_hint": "عندما تختار تفعيل إمكانية الاكتشاف على ماستدون، قد تظهر منشوراتك في نتائج البحث والمواضيع الرائجة، وقد يتم اقتراح ملفك الشخصي لأشخاص ذوي اهتمامات مماثلة معك.",
+  "onboarding.profile.display_name": "الاسم العلني",
+  "onboarding.profile.display_name_hint": "اسمك الكامل أو اسمك المرح…",
+  "onboarding.profile.lead": "يمكنك دائمًا إكمال ذلك لاحقًا في الإعدادات، حيث يتوفر المزيد من خيارات التخصيص.",
+  "onboarding.profile.note": "نبذة عنك",
+  "onboarding.profile.note_hint": "يمكنك @ذِكر أشخاص آخرين أو استعمال #الوسوم…",
+  "onboarding.profile.save_and_continue": "حفظ و إستمرار",
+  "onboarding.profile.title": "إعداد الملف الشخصي",
+  "onboarding.profile.upload_avatar": "تحميل صورة الملف الشخصي",
+  "onboarding.profile.upload_header": "تحميل رأسية الملف الشخصي",
   "onboarding.share.lead": "اسمح للأشخاص بمعرفة إمكانية الوصول إليك على ماستدون!",
   "onboarding.share.message": "أنا {username} في #Mastodon! تعال لمتابعتي على {url}",
   "onboarding.share.next_steps": "الخطوات المحتملة التالية:",
@@ -497,9 +524,18 @@
   "poll_button.add_poll": "إضافة استطلاع للرأي",
   "poll_button.remove_poll": "إزالة استطلاع الرأي",
   "privacy.change": "اضبط خصوصية المنشور",
+  "privacy.direct.long": "كل من ذُكر في المنشور",
+  "privacy.direct.short": "أشخاص محددون",
+  "privacy.private.long": "متابعيك فقط",
+  "privacy.private.short": "للمتابِعين",
+  "privacy.public.long": "أي شخص على أو خارج ماستدون",
   "privacy.public.short": "للعامة",
+  "privacy.unlisted.additional": "هذا يتصرف بالضبط مثل النشر للعامة، باستثناء أن المنشور لن يظهر في الموجزات الحية أو في الوسوم أو في الإستكشاف، أو في نتائج بحث ماستدون، حتى وإن قمت بتفعيله على مستوى الحساب.",
+  "privacy.unlisted.long": "خوارزميات أقل",
+  "privacy.unlisted.short": "للعامة دون صخب",
   "privacy_policy.last_updated": "آخر تحديث {date}",
   "privacy_policy.title": "سياسة الخصوصية",
+  "recommended": "موصى به",
   "refresh": "أنعِش",
   "regeneration_indicator.label": "جارٍ التحميل…",
   "regeneration_indicator.sublabel": "جارٍ تجهيز موجزات خيطك الرئيس!",
@@ -514,7 +550,9 @@
   "relative_time.minutes": "{number}د",
   "relative_time.seconds": "{number}ثا",
   "relative_time.today": "اليوم",
+  "reply_indicator.attachments": "{count, plural, zero {}one {# مرفق} two {# المرفقات} few {# مرفقات} many {# مرفقات} other {# مرفقًا}}",
   "reply_indicator.cancel": "إلغاء",
+  "reply_indicator.poll": "استطلاع رأي",
   "report.block": "حظر",
   "report.block_explanation": "لن ترى منشوراته ولن يمكنه متابعتك أو رؤية منشوراتك، سيكون بديهيا له أنه مكتوم.",
   "report.categories.legal": "إشعارات قانونية",
@@ -570,6 +608,7 @@
   "search.quick_action.status_search": "المنشورات المطابقة لـ {x}",
   "search.search_or_paste": "ابحث أو أدخل رابطا تشعبيا URL",
   "search_popout.full_text_search_disabled_message": "غير متوفر على {domain}.",
+  "search_popout.full_text_search_logged_out_message": "متاح فقط عند تسجيل الدخول.",
   "search_popout.language_code": "رمز لغة ISO",
   "search_popout.options": "خيارات البحث",
   "search_popout.quick_actions": "الإجراءات السريعة",

+ 6 - 0
app/javascript/mastodon/locales/ast.json

@@ -199,6 +199,12 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Refugar",
   "follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu «{domain}» pensó qu'a lo meyor quies revisar manualmente les solicitúes de siguimientu d'estes cuentes.",
+  "follow_suggestions.curated_suggestion": "Escoyeta del sirvidor",
+  "follow_suggestions.dismiss": "Nun volver amosar",
+  "follow_suggestions.personalized_suggestion": "Suxerencia personalizada",
+  "follow_suggestions.popular_suggestion": "Suxerencia popular",
+  "follow_suggestions.view_all": "Ver too",
+  "follow_suggestions.who_to_follow": "A quién siguir",
   "footer.about": "Tocante a",
   "footer.directory": "Direutoriu de perfiles",
   "footer.get_app": "Consiguir l'aplicación",

+ 26 - 6
app/javascript/mastodon/locales/be.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "закрыты",
   "compose_form.placeholder": "Што здарылася?",
   "compose_form.poll.duration": "Працягласць апытання",
+  "compose_form.poll.multiple": "Множны выбар",
+  "compose_form.poll.option_placeholder": "Варыянт {number}",
+  "compose_form.poll.single": "Адзін варыянт",
   "compose_form.poll.switch_to_multiple": "Змяніце апытанне, каб дазволіць некалькі варыянтаў адказу",
   "compose_form.poll.switch_to_single": "Змяніце апытанне, каб дазволіць адзіны варыянт адказу",
-  "compose_form.publish_form": "Апублікаваць",
+  "compose_form.poll.type": "Стыль",
+  "compose_form.publish": "Даслаць",
+  "compose_form.publish_form": "Новы допіс",
+  "compose_form.reply": "Адказаць",
+  "compose_form.save_changes": "Абнавіць",
   "compose_form.spoiler.marked": "Выдаліць папярэджанне аб змесціве",
   "compose_form.spoiler.unmarked": "Дадаць папярэджанне аб змесціве",
+  "compose_form.spoiler_placeholder": "Папярэджанне аб змесціве (неабавязкова)",
   "confirmation_modal.cancel": "Скасаваць",
   "confirmations.block.block_and_report": "Заблакіраваць і паскардзіцца",
   "confirmations.block.confirm": "Заблакіраваць",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Аўтарызацыя",
   "follow_request.reject": "Адхіліць",
   "follow_requests.unlocked_explanation": "Ваш акаўнт не схаваны, аднак прадстаўнікі {domain} палічылі, што вы можаце захацець праглядзець запыты на падпіску з гэтых профіляў уручную.",
+  "follow_suggestions.curated_suggestion": "Выбар сервера",
+  "follow_suggestions.dismiss": "Не паказваць зноў",
+  "follow_suggestions.personalized_suggestion": "Персаналізаваная прапанова",
+  "follow_suggestions.popular_suggestion": "Папулярная прапанова",
+  "follow_suggestions.view_all": "Праглядзець усё",
+  "follow_suggestions.who_to_follow": "На каго падпісацца",
   "followed_tags": "Падпіскі",
   "footer.about": "Пра нас",
   "footer.directory": "Дырэкторыя профіляў",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Падпісацца на хэштэг",
   "hashtag.unfollow": "Адпісацца ад хэштэга",
   "hashtags.and_other": "…і яшчэ {count, plural,  other {#}}",
-  "home.actions.go_to_explore": "Паглядзіце, што ў трэндзе",
-  "home.actions.go_to_suggestions": "Знайсці людзей, каб падпісацца",
   "home.column_settings.basic": "Асноўныя",
   "home.column_settings.show_reblogs": "Паказаць пашырэнні",
   "home.column_settings.show_replies": "Паказваць адказы",
-  "home.explore_prompt.body": "Ваша галоўная стужка змяшчае сумесь допісаў з хэштэгамі, за якімі вы вырашылі сачыць, допісаў ад людзей, за якімі вы вырашылі сачыць, і допісаў, якія яны пашыраюць. Зараз усё выглядае даволі ціха, так што як наконт:",
-  "home.explore_prompt.title": "Гэта ваша апорная кропка ў Mastodon.",
   "home.hide_announcements": "Схаваць аб'явы",
   "home.pending_critical_update.body": "Калі ласка, абнавіце свой сервер Mastodon як мага хутчэй!",
   "home.pending_critical_update.link": "Прагледзець абнаўленні",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Дадаць апытанне",
   "poll_button.remove_poll": "Выдаліць апытанне",
   "privacy.change": "Змяніць прыватнасць допісу",
+  "privacy.direct.long": "Усе згаданыя ў допісе",
+  "privacy.direct.short": "Канкрэтныя людзі",
+  "privacy.private.long": "Толькі вашыя падпісчыкі",
+  "privacy.private.short": "Падпісчыкі",
+  "privacy.public.long": "Усе, хто ёсць і каго няма ў Mastodon",
   "privacy.public.short": "Публічны",
+  "privacy.unlisted.additional": "Паводзіць сябе гэтак жа, як і публічны, за выключэннем таго, што пост не будзе адлюстроўвацца ў жывой стужцы, хэштэгах, аглядзе або ў пошуку Mastodon, нават калі вы ўключылі бачнасць у пошуку ў наладах.",
+  "privacy.unlisted.long": "Менш фанфар ад алгарытмаў",
+  "privacy.unlisted.short": "Ціхі публічны",
   "privacy_policy.last_updated": "Адноўлена {date}",
   "privacy_policy.title": "Палітыка канфідэнцыйнасці",
   "recommended": "Рэкамендуем",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number} хв",
   "relative_time.seconds": "{number} с",
   "relative_time.today": "сёння",
+  "reply_indicator.attachments": "{count, plural, one {# далучэнне} few {# далучэнні} many {# далучэнняў} other {# далучэння}}",
   "reply_indicator.cancel": "Скасаваць",
+  "reply_indicator.poll": "Апытанне",
   "report.block": "Заблакіраваць",
   "report.block_explanation": "Вы перастанеце бачыць допісы гэтага карыстальніка. Ён не зможа сачыць за вамі і бачыць вашы допісы. Ён зможа зразумець, што яго заблакіравалі.",
   "report.categories.legal": "Права",
@@ -664,7 +684,7 @@
   "status.show_more": "Паказаць болей",
   "status.show_more_all": "Разгарнуць усё",
   "status.show_original": "Паказаць арыгінал",
-  "status.title.with_attachments": "{user} апублікаваў {attachmentCount, plural, one {укладанне} other {{attachmentCount} укладанні}}",
+  "status.title.with_attachments": "{user} апублікаваў {attachmentCount, plural, one {далучэнне} few {{attachmentCount} далучэнні} many {{attachmentCount} далучэнняў} other {{attachmentCount} далучэння}}",
   "status.translate": "Перакласці",
   "status.translated_from_with": "Перакладзена з {lang} з дапамогай {provider}",
   "status.uncached_media_warning": "Перадпрагляд недаступны",

+ 21 - 20
app/javascript/mastodon/locales/bg.json

@@ -3,12 +3,12 @@
   "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": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
   "about.domain_blocks.suspended.title": "Спряно",
-  "about.not_available": "Тази информация не е била направена налична на този сървър.",
+  "about.not_available": "Тази информация не е публична на този сървър.",
   "about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}",
   "about.rules": "Правила на сървъра",
   "account.account_note_header": "Бележка",
@@ -110,7 +110,7 @@
   "column.about": "Относно",
   "column.blocks": "Блокирани потребители",
   "column.bookmarks": "Отметки",
-  "column.community": "Локална часова ос",
+  "column.community": "Локален инфопоток",
   "column.direct": "Частни споменавания",
   "column.directory": "Разглеждане на профили",
   "column.domain_blocks": "Блокирани домейни",
@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Вашият акаунт не е в положение {locked}. Всеки може да ви последва, за да разглежда публикациите ви само за последователи.",
   "compose_form.lock_disclaimer.lock": "заключено",
   "compose_form.placeholder": "Какво мислите?",
-  "compose_form.poll.add_option": "Добавяне на избор",
   "compose_form.poll.duration": "Времетраене на анкетата",
   "compose_form.poll.multiple": "Множествен избор",
   "compose_form.poll.option_placeholder": "Избор {number}",
-  "compose_form.poll.remove_option": "Премахване на тази възможност",
   "compose_form.poll.single": "Подберете нещо",
   "compose_form.poll.switch_to_multiple": "Промяна на анкетата, за да се позволят множество възможни избора",
   "compose_form.poll.switch_to_single": "Промяна на анкетата, за да се позволи един възможен избор",
@@ -203,7 +201,7 @@
   "disabled_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен.",
   "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации от хора, чиито акаунти са разположени в {domain}.",
   "dismissable_banner.dismiss": "Отхвърляне",
-  "dismissable_banner.explore_links": "Тези новини се разказват от хората в този и други сървъри на децентрализираната мрежа точно сега.",
+  "dismissable_banner.explore_links": "Това са най-споделяните новини в социалната мрежа днес. По-нови истории, споделени от повече хора се показват по-напред.",
   "dismissable_banner.explore_statuses": "Има публикации през социалната мрежа, които днес набират популярност. По-новите публикации с повече подсилвания и любими са класирани по-високо.",
   "dismissable_banner.explore_tags": "Тези хаштагове сега набират популярност сред хората в този и други сървъри на децентрализирата мрежа.",
   "dismissable_banner.public_timeline": "Ето най-новите обществени публикации от хора в социална мрежа, която хората в {domain} следват.",
@@ -224,16 +222,16 @@
   "emoji_button.search_results": "Резултати от търсене",
   "emoji_button.symbols": "Символи",
   "emoji_button.travel": "Пътуване и места",
-  "empty_column.account_hides_collections": "Този потребител е избрал да не прави това сведение достъпно",
+  "empty_column.account_hides_collections": "Този потребител е избрал да не дава тази информация",
   "empty_column.account_suspended": "Спрян акаунт",
   "empty_column.account_timeline": "Тук няма публикации!",
   "empty_column.account_unavailable": "Профилът не е наличен",
   "empty_column.blocks": "Още не сте блокирали никакви потребители.",
   "empty_column.bookmarked_statuses": "Още не сте отметнали публикации. Отметвайки някоя, то тя ще се покаже тук.",
-  "empty_column.community": "Местната часова ос е празна. Напишете нещо обществено, за да завъртите нещата!",
+  "empty_column.community": "Локалният инфопоток е празен. Публикувайте нещо, за да започнете!",
   "empty_column.direct": "Още нямате никакви частни споменавания. Тук ще се показват, изпращайки или получавайки едно.",
   "empty_column.domain_blocks": "Още няма блокирани домейни.",
-  "empty_column.explore_statuses": "Няма нищо налагащо се в момента. Проверете пак по-късно!",
+  "empty_column.explore_statuses": "Няма тенденции в момента. Проверете пак по-късно!",
   "empty_column.favourited_statuses": "Още нямате никакви любими публикации. Правейки любима, то тя ще се покаже тук.",
   "empty_column.favourites": "Още никого не е слагал публикацията в любими. Когато някой го направи, този човек ще се покаже тук.",
   "empty_column.follow_requests": "Още нямате заявки за последване. Получавайки такава, то тя ще се покаже тук.",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Упълномощаване",
   "follow_request.reject": "Отхвърляне",
   "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.",
+  "follow_suggestions.curated_suggestion": "Избор от редакторите",
+  "follow_suggestions.dismiss": "Без ново показване",
+  "follow_suggestions.personalized_suggestion": "Персонализирано предложение",
+  "follow_suggestions.popular_suggestion": "Популярно предложение",
+  "follow_suggestions.view_all": "Преглед на всички",
+  "follow_suggestions.who_to_follow": "Кого да се следва",
   "followed_tags": "Последвани хаштагове",
   "footer.about": "Относно",
   "footer.directory": "Директория на профилите",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Следване на хаштаг",
   "hashtag.unfollow": "Спиране на следване на хаштаг",
   "hashtags.and_other": "…и {count, plural, other {# още}}",
-  "home.actions.go_to_explore": "Вижте какво изгрява",
-  "home.actions.go_to_suggestions": "Намиране на хора за следване",
   "home.column_settings.basic": "Основно",
   "home.column_settings.show_reblogs": "Показване на подсилванията",
   "home.column_settings.show_replies": "Показване на отговорите",
-  "home.explore_prompt.body": "Вашият начален инфоканал ще е смес на публикации от хаштаговете, които сте избрали да следвате, избраните хора да следвате, а и публикациите, които са подсилили. Ако изглежда твърде тихо в момента, то може да искате да:",
-  "home.explore_prompt.title": "Това е началната ви база с Mastodon.",
   "home.hide_announcements": "Скриване на оповестяванията",
   "home.pending_critical_update.body": "Обновете сървъра си в Mastodon възможно най-скоро!",
   "home.pending_critical_update.link": "Преглед на обновяванията",
@@ -348,10 +348,10 @@
   "keyboard_shortcuts.favourites": "Отваряне на списъка с любими",
   "keyboard_shortcuts.federated": "Отваряне на федерирания инфопоток",
   "keyboard_shortcuts.heading": "Клавишни съчетания",
-  "keyboard_shortcuts.home": "Отваряне на началната часова ос",
+  "keyboard_shortcuts.home": "Отваряне на личния инфопоток",
   "keyboard_shortcuts.hotkey": "Бърз клавиш",
   "keyboard_shortcuts.legend": "Показване на тази легенда",
-  "keyboard_shortcuts.local": "Отваряне на местна часова ос",
+  "keyboard_shortcuts.local": "Отваряне на локалния инфопоток",
   "keyboard_shortcuts.mention": "Споменаване на автора",
   "keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители",
   "keyboard_shortcuts.my_profile": "Отваряне на профила ви",
@@ -402,12 +402,12 @@
   "navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
   "navigation_bar.blocks": "Блокирани потребители",
   "navigation_bar.bookmarks": "Отметки",
-  "navigation_bar.community_timeline": "Локална часова ос",
+  "navigation_bar.community_timeline": "Локален инфопоток",
   "navigation_bar.compose": "Съставяне на нова публикация",
   "navigation_bar.direct": "Частни споменавания",
   "navigation_bar.discover": "Откриване",
   "navigation_bar.domain_blocks": "Блокирани домейни",
-  "navigation_bar.explore": "Изследване",
+  "navigation_bar.explore": "Разглеждане",
   "navigation_bar.favourites": "Любими",
   "navigation_bar.filters": "Заглушени думи",
   "navigation_bar.follow_requests": "Заявки за последване",
@@ -474,10 +474,10 @@
   "notifications_permission_banner.title": "Никога не пропускате нещо",
   "onboarding.action.back": "Върнете ме обратно",
   "onboarding.actions.back": "Върнете ме обратно",
-  "onboarding.actions.go_to_explore": "Вижте какво изгрява",
+  "onboarding.actions.go_to_explore": "Виж тенденции",
   "onboarding.actions.go_to_home": "Към началния ви инфоканал",
   "onboarding.compose.template": "Здравейте, #Mastodon!",
-  "onboarding.follows.empty": "За съжаление, в момента не могат да се показват резултати. Може да опитате да употребявате търсене или да прегледате страницата за изследване, за да намерите страница за последване, или да опитате пак по-късно.",
+  "onboarding.follows.empty": "За съжаление, в момента не могат да бъдат показани резултати. Може да опитате да търсите или да разгледате, за да намерите кого да последвате, или опитайте отново по-късно.",
   "onboarding.follows.lead": "Може да бъдете куратор на началния си инфоканал. Последвайки повече хора, по-деен и по-интересен ще става. Тези профили може да са добра начална точка, от която винаги по-късно да спрете да следвате!",
   "onboarding.follows.title": "Популярно в Mastodon",
   "onboarding.profile.discoverable": "Правене на моя профил откриваем",
@@ -524,12 +524,13 @@
   "poll_button.add_poll": "Анкетиране",
   "poll_button.remove_poll": "Премахване на анкета",
   "privacy.change": "Промяна на поверителността на публикация",
-  "privacy.direct.long": "Всеки споменат в публикацията",
+  "privacy.direct.long": "Споменатите в публикацията",
   "privacy.direct.short": "Определени хора",
   "privacy.private.long": "Само последователите ви",
   "privacy.private.short": "Последователи",
   "privacy.public.long": "Всеки във и извън Mastodon",
   "privacy.public.short": "Публично",
+  "privacy.unlisted.additional": "Това действие е точно като публичното, с изключение на това, че публикацията няма да се появява в каналите на живо, хаштаговете, разглеждането или търсенето в Mastodon, дори ако сте избрали да се публично видими на ниво акаунт.",
   "privacy.unlisted.long": "По-малко алгоритмични фанфари",
   "privacy.unlisted.short": "Тиха публика",
   "privacy_policy.last_updated": "Последно осъвременяване на {date}",

+ 7 - 3
app/javascript/mastodon/locales/br.json

@@ -143,9 +143,14 @@
   "compose_form.lock_disclaimer.lock": "prennet",
   "compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?",
   "compose_form.poll.duration": "Pad ar sontadeg",
+  "compose_form.poll.single": "Dibabit unan",
   "compose_form.poll.switch_to_multiple": "Kemmañ ar sontadeg evit aotren meur a zibab",
   "compose_form.poll.switch_to_single": "Kemmañ ar sontadeg evit aotren un dibab hepken",
+  "compose_form.poll.type": "Neuz",
+  "compose_form.publish": "Embann",
   "compose_form.publish_form": "Embann",
+  "compose_form.reply": "Respont",
+  "compose_form.save_changes": "Hizivadur",
   "compose_form.spoiler.marked": "Kuzhet eo an destenn a-dreñv ur c'hemenn",
   "compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn",
   "confirmation_modal.cancel": "Nullañ",
@@ -280,12 +285,9 @@
   "hashtag.follow": "Heuliañ ar ger-klik",
   "hashtag.unfollow": "Paouez heuliañ an hashtag",
   "hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}",
-  "home.actions.go_to_explore": "Gwelet petra zo diouzh ar c'hiz",
-  "home.actions.go_to_suggestions": "Kavout tud da heuliañ",
   "home.column_settings.basic": "Diazez",
   "home.column_settings.show_reblogs": "Diskouez ar skignadennoù",
   "home.column_settings.show_replies": "Diskouez ar respontoù",
-  "home.explore_prompt.title": "Homañ eo ho pajenn degemer e-barzh Mastodon.",
   "home.hide_announcements": "Kuzhat ar c'hemennoù",
   "home.pending_critical_update.body": "Hizivait ho servijer Mastodon kerkent ha ma c'hallit mar plij!",
   "home.pending_critical_update.link": "Gwelet an hizivadennoù",
@@ -475,6 +477,7 @@
   "poll_button.add_poll": "Ouzhpennañ ur sontadeg",
   "poll_button.remove_poll": "Dilemel ar sontadeg",
   "privacy.change": "Cheñch prevezded an toud",
+  "privacy.private.short": "Heulierien",
   "privacy.public.short": "Publik",
   "privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}",
   "privacy_policy.title": "Reolennoù Prevezded",
@@ -494,6 +497,7 @@
   "relative_time.seconds": "{number}eil",
   "relative_time.today": "hiziv",
   "reply_indicator.cancel": "Nullañ",
+  "reply_indicator.poll": "Sontadeg",
   "report.block": "Stankañ",
   "report.block_explanation": "Ne vo ket gwelet toudoù ar gont-se ken. Ne welo ket ho toudoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.",
   "report.categories.legal": "Lezennel",

+ 13 - 8
app/javascript/mastodon/locales/ca.json

@@ -145,18 +145,16 @@
   "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.",
   "compose_form.lock_disclaimer.lock": "blocat",
   "compose_form.placeholder": "Què tens al cap?",
-  "compose_form.poll.add_option": "Afegiu una opció",
   "compose_form.poll.duration": "Durada de l'enquesta",
   "compose_form.poll.multiple": "Opcions múltiples",
   "compose_form.poll.option_placeholder": "Opció {number}",
-  "compose_form.poll.remove_option": "Treu aquesta opció",
   "compose_form.poll.single": "Trieu-ne una",
   "compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre múltiples opcions",
   "compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció",
   "compose_form.poll.type": "Estil",
   "compose_form.publish": "Publica",
   "compose_form.publish_form": "Nou tut",
-  "compose_form.reply": "Responeu",
+  "compose_form.reply": "Respon",
   "compose_form.save_changes": "Actualitza",
   "compose_form.spoiler.marked": "Elimina l'avís de contingut",
   "compose_form.spoiler.unmarked": "Afegeix avís de contingut",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Autoritza",
   "follow_request.reject": "Rebutja",
   "follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que és possible que vulguis revisar manualment les sol·licituds de seguiment d’aquests comptes.",
+  "follow_suggestions.curated_suggestion": "Tria de l'editor",
+  "follow_suggestions.dismiss": "No ho tornis a mostrar",
+  "follow_suggestions.personalized_suggestion": "Suggeriment personalitzat",
+  "follow_suggestions.popular_suggestion": "Suggeriment popular",
+  "follow_suggestions.view_all": "Mostra-ho tot",
+  "follow_suggestions.who_to_follow": "A qui seguir",
   "followed_tags": "Etiquetes seguides",
   "footer.about": "Quant a",
   "footer.directory": "Directori de perfils",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Segueix l'etiqueta",
   "hashtag.unfollow": "Deixa de seguir l'etiqueta",
   "hashtags.and_other": "…i {count, plural, other {# més}}",
-  "home.actions.go_to_explore": "Mira què és tendència",
-  "home.actions.go_to_suggestions": "Troba persones a seguir",
   "home.column_settings.basic": "Bàsic",
   "home.column_settings.show_reblogs": "Mostra els impulsos",
   "home.column_settings.show_replies": "Mostra les respostes",
-  "home.explore_prompt.body": "La teva línia de temps Inici tindrà una barreja dels tuts de les etiquetes que has triat seguir, de les persones que has triat seguir i dels tuts que s'impulsen. Ara mateix es veu força tranquil·la, què et sembla si:",
-  "home.explore_prompt.title": "Aquesta és la teva base inicial a Mastodon.",
   "home.hide_announcements": "Amaga els anuncis",
   "home.pending_critical_update.body": "Si us plau actualitza el teu servidor Mastodon tant aviat com sigui possible!",
   "home.pending_critical_update.link": "Veure actualitzacions",
@@ -524,12 +524,15 @@
   "poll_button.add_poll": "Afegeix una enquesta",
   "poll_button.remove_poll": "Elimina l'enquesta",
   "privacy.change": "Canvia la privacitat del tut",
-  "privacy.direct.long": "Tothom mencionat en aquesta publicació",
+  "privacy.direct.long": "Tothom mencionat a la publicació",
   "privacy.direct.short": "Persones concretes",
   "privacy.private.long": "Només els vostres seguidors",
   "privacy.private.short": "Seguidors",
   "privacy.public.long": "Tothom dins o fora Mastodon",
   "privacy.public.short": "Públic",
+  "privacy.unlisted.additional": "Es comporta igual que públic, excepte que la publicació no apareixerà als canals en directe o etiquetes, l'explora o a la cerca de Mastodon, fins i tot si ho heu activat a nivell de compte.",
+  "privacy.unlisted.long": "Menys fanfàrries algorísmiques",
+  "privacy.unlisted.short": "Públic silenciós",
   "privacy_policy.last_updated": "Darrera actualització {date}",
   "privacy_policy.title": "Política de Privacitat",
   "recommended": "Recomanat",
@@ -547,7 +550,9 @@
   "relative_time.minutes": "{number}min",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "avui",
+  "reply_indicator.attachments": "{count, plural, one {# adjunt} other {# adjunts}}",
   "reply_indicator.cancel": "Cancel·la",
+  "reply_indicator.poll": "Enquesta",
   "report.block": "Bloca",
   "report.block_explanation": "No veuràs els seus tuts. Ells no podran veure els teus tuts ni et podran seguir. Podran saber que estan blocats.",
   "report.categories.legal": "Legal",

+ 51 - 11
app/javascript/mastodon/locales/cs.json

@@ -32,6 +32,7 @@
   "account.featured_tags.last_status_never": "Žádné příspěvky",
   "account.featured_tags.title": "Hlavní hashtagy uživatele {name}",
   "account.follow": "Sledovat",
+  "account.follow_back": "Také sledovat",
   "account.followers": "Sledující",
   "account.followers.empty": "Tohoto uživatele zatím nikdo nesleduje.",
   "account.followers_counter": "{count, plural, one {{counter} Sledující} few {{counter} Sledující} many {{counter} Sledujících} other {{counter} Sledujících}}",
@@ -52,6 +53,7 @@
   "account.mute_notifications_short": "Ztlumit upozornění",
   "account.mute_short": "Ztlumit",
   "account.muted": "Skrytý",
+  "account.mutual": "Vzájemné",
   "account.no_bio": "Nebyl poskytnut žádný popis.",
   "account.open_original_page": "Otevřít původní stránku",
   "account.posts": "Příspěvky",
@@ -144,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "zamčený",
   "compose_form.placeholder": "Co se vám honí hlavou?",
   "compose_form.poll.duration": "Doba trvání ankety",
+  "compose_form.poll.multiple": "Výběr z více možností",
+  "compose_form.poll.option_placeholder": "Volba {number}",
+  "compose_form.poll.single": "Vyber jednu",
   "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více voleb",
   "compose_form.poll.switch_to_single": "Povolit u ankety výběr pouze jedné volby",
+  "compose_form.poll.type": "Styl",
+  "compose_form.publish": "Odeslat",
   "compose_form.publish_form": "Zveřejnit",
+  "compose_form.reply": "Odpovědět",
+  "compose_form.save_changes": "Aktualizovat",
   "compose_form.spoiler.marked": "Odebrat varování o obsahu",
   "compose_form.spoiler.unmarked": "Přidat varování o obsahu",
+  "compose_form.spoiler_placeholder": "Upozornění na obsah (nepovinné)",
   "confirmation_modal.cancel": "Zrušit",
   "confirmations.block.block_and_report": "Blokovat a nahlásit",
   "confirmations.block.confirm": "Blokovat",
@@ -227,7 +237,7 @@
   "empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.",
   "empty_column.followed_tags": "Zatím jste nesledovali žádné hashtagy. Až to uděláte, objeví se zde.",
   "empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.",
-  "empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí. {suggestions}",
+  "empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí.",
   "empty_column.list": "V tomto seznamu zatím nic není. Až nějaký člen z tohoto seznamu zveřejní nový příspěvek, objeví se zde.",
   "empty_column.lists": "Zatím nemáte žádné seznamy. Až nějaký vytvoříte, zobrazí se zde.",
   "empty_column.mutes": "Zatím jste neskryli žádného uživatele.",
@@ -267,6 +277,12 @@
   "follow_request.authorize": "Autorizovat",
   "follow_request.reject": "Zamítnout",
   "follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto žádosti o sledování zkontrolovat ručně.",
+  "follow_suggestions.curated_suggestion": "Návrh serveru",
+  "follow_suggestions.dismiss": "Znovu nezobrazovat",
+  "follow_suggestions.personalized_suggestion": "Přizpůsobený návrh",
+  "follow_suggestions.popular_suggestion": "Populární návrh",
+  "follow_suggestions.view_all": "Zobrazit vše",
+  "follow_suggestions.who_to_follow": "Koho sledovat",
   "followed_tags": "Sledované hashtagy",
   "footer.about": "O aplikaci",
   "footer.directory": "Adresář profilů",
@@ -287,15 +303,15 @@
   "hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
   "hashtag.column_settings.tag_mode.none": "Žádný z těchto",
   "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
+  "hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} few {{counter} účastníci} other {{counter} účastníků}}",
+  "hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
+  "hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
   "hashtag.follow": "Sledovat hashtag",
   "hashtag.unfollow": "Přestat sledovat hashtag",
-  "home.actions.go_to_explore": "Podívejte se, co frčí",
-  "home.actions.go_to_suggestions": "Najít lidi ke sledování",
+  "hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}",
   "home.column_settings.basic": "Základní",
   "home.column_settings.show_reblogs": "Zobrazit boosty",
   "home.column_settings.show_replies": "Zobrazit odpovědi",
-  "home.explore_prompt.body": "Váš domovský kanál bude obsahovat směs příspěvků z hashtagů, které jste se rozhodli sledovat, lidí, které jste se rozhodli sledovat, a příspěvků, které boostují. Pokud vám to připadá příliš klidné, možná budete chtít:",
-  "home.explore_prompt.title": "Toto je vaše domovská základna uvnitř Mastodonu.",
   "home.hide_announcements": "Skrýt oznámení",
   "home.pending_critical_update.body": "Aktualizujte, prosím, svůj Mastodon server co nejdříve!",
   "home.pending_critical_update.link": "Zobrazit aktualizace",
@@ -376,6 +392,7 @@
   "lists.search": "Hledejte mezi lidmi, které sledujete",
   "lists.subheading": "Vaše seznamy",
   "load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položek} other {# nových položek}}",
+  "loading_indicator.label": "Načítání…",
   "media_gallery.toggle_visible": "{number, plural, one {Skrýt obrázek} few {Skrýt obrázky} many {Skrýt obrázky} other {Skrýt obrázky}}",
   "moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován, protože jste se přesunul/a na {movedToAccount}.",
   "mute_modal.duration": "Trvání",
@@ -461,8 +478,19 @@
   "onboarding.actions.go_to_home": "Přejít na svůj domovský feed",
   "onboarding.compose.template": "Ahoj #Mastodon!",
   "onboarding.follows.empty": "Bohužel, žádné výsledky nelze momentálně zobrazit. Můžete zkusit vyhledat nebo procházet stránku s průzkumem a najít lidi, kteří budou sledovat, nebo to zkuste znovu později.",
-  "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
-  "onboarding.follows.title": "Populární na Mastodonu",
+  "onboarding.follows.lead": "Domovský kanál je hlavní metodou zažívání Mastodonu. Čím více lidí sledujete, tím aktivnější a zajímavější bude. Pro začnutí, zde máte několik návrhů:",
+  "onboarding.follows.title": "Přispůsobit vlastní domovský kanál",
+  "onboarding.profile.discoverable": "Udělat svůj profil vyhledatelným",
+  "onboarding.profile.discoverable_hint": "Když se rozhodnete být vyhledatelný na Mastodonu, vaše příspěvky se mohou objevit ve výsledcích vyhledávání a v populárních, a váš profil může být navrhován lidem s podobnými zájmy.",
+  "onboarding.profile.display_name": "Zobrazované jméno",
+  "onboarding.profile.display_name_hint": "Vaše celé jméno nebo přezdívka…",
+  "onboarding.profile.lead": "Toto můžete vždy dokončit později v nastavení, kde je k dispozici ještě více možností přizpůsobení.",
+  "onboarding.profile.note": "O vás",
+  "onboarding.profile.note_hint": "Můžete @zmínit jiné osoby nebo #hashtagy…",
+  "onboarding.profile.save_and_continue": "Uložit a pokračovat",
+  "onboarding.profile.title": "Nastavení profilu",
+  "onboarding.profile.upload_avatar": "Nahrát profilový obrázek",
+  "onboarding.profile.upload_header": "Nahrát hlavičku profilu",
   "onboarding.share.lead": "Dejte lidem vědět, jak vás mohou najít na Mastodonu!",
   "onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}",
   "onboarding.share.next_steps": "Možné další kroky:",
@@ -470,13 +498,13 @@
   "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
   "onboarding.start.skip": "Want to skip right ahead?",
   "onboarding.start.title": "Dokázali jste to!",
-  "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
-  "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
-  "onboarding.steps.publish_status.body": "Řekněte světu Ahoj.",
+  "onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
+  "onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
+  "onboarding.steps.publish_status.body": "Řekněte světu ahoj s pomocí textem, fotografiemi, videami nebo anketami {emoji}",
   "onboarding.steps.publish_status.title": "Vytvořte svůj první příspěvek",
   "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
   "onboarding.steps.setup_profile.title": "Přizpůsobit svůj profil",
-  "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
+  "onboarding.steps.share_profile.body": "Dejte blízkým lidem vědět, jak vás mohou najít na Mastodonu",
   "onboarding.steps.share_profile.title": "Sdílejte svůj profil",
   "onboarding.tips.2fa": "<strong>Víte, že?</strong> Svůj účet můžete zabezpečit nastavením dvoufaktorového ověřování v nastavení účtu. Funguje s jakoukoli TOTP aplikací podle vašeho výběru, telefonní číslo není nutné!",
   "onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
@@ -496,9 +524,18 @@
   "poll_button.add_poll": "Přidat anketu",
   "poll_button.remove_poll": "Odebrat anketu",
   "privacy.change": "Změnit soukromí příspěvku",
+  "privacy.direct.long": "Všichni zmínění v příspěvku",
+  "privacy.direct.short": "Vybraní lidé",
+  "privacy.private.long": "Jen vaši sledující",
+  "privacy.private.short": "Sledující",
+  "privacy.public.long": "Kdokoliv na Mastodonu i mimo něj",
   "privacy.public.short": "Veřejné",
+  "privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.",
+  "privacy.unlisted.long": "Méně algoritmických fanfár",
+  "privacy.unlisted.short": "Ztišené veřejné",
   "privacy_policy.last_updated": "Naposledy aktualizováno {date}",
   "privacy_policy.title": "Zásady ochrany osobních údajů",
+  "recommended": "Doporučeno",
   "refresh": "Obnovit",
   "regeneration_indicator.label": "Načítání…",
   "regeneration_indicator.sublabel": "Váš domovský kanál se připravuje!",
@@ -513,7 +550,9 @@
   "relative_time.minutes": "{number} m",
   "relative_time.seconds": "{number} s",
   "relative_time.today": "dnes",
+  "reply_indicator.attachments": "{count, plural, one {{counter} příloha} few {{counter} přílohy} other {{counter} přilohů}}",
   "reply_indicator.cancel": "Zrušit",
+  "reply_indicator.poll": "Anketa",
   "report.block": "Blokovat",
   "report.block_explanation": "Neuvidíte příspěvky tohoto uživatele. On neuvidí vaše příspěvky, ani vás nebude moci sledovat. Pozná, že je blokován.",
   "report.categories.legal": "Právní ustanovení",
@@ -569,6 +608,7 @@
   "search.quick_action.status_search": "Příspěvky odpovídající {x}",
   "search.search_or_paste": "Hledat nebo vložit URL",
   "search_popout.full_text_search_disabled_message": "Nedostupné na {domain}.",
+  "search_popout.full_text_search_logged_out_message": "Dostupné pouze po přihlášení.",
   "search_popout.language_code": "Kód jazyka podle ISO",
   "search_popout.options": "Možnosti hledání",
   "search_popout.quick_actions": "Rychlé akce",

+ 24 - 4
app/javascript/mastodon/locales/cy.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "wedi ei gloi",
   "compose_form.placeholder": "Beth sydd ar eich meddwl?",
   "compose_form.poll.duration": "Cyfnod pleidlais",
+  "compose_form.poll.multiple": "Dewis lluosog",
+  "compose_form.poll.option_placeholder": "Dewis {number}",
+  "compose_form.poll.single": "Ddewis un",
   "compose_form.poll.switch_to_multiple": "Newid pleidlais i adael mwy nag un dewis",
   "compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
+  "compose_form.poll.type": "Arddull",
+  "compose_form.publish": "Postiad",
   "compose_form.publish_form": "Cyhoeddi",
+  "compose_form.reply": "Ateb",
+  "compose_form.save_changes": "Diweddariad",
   "compose_form.spoiler.marked": "Dileu rhybudd cynnwys",
   "compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys",
+  "compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)",
   "confirmation_modal.cancel": "Diddymu",
   "confirmations.block.block_and_report": "Rhwystro ac Adrodd",
   "confirmations.block.confirm": "Blocio",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Awdurdodi",
   "follow_request.reject": "Gwrthod",
   "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
+  "follow_suggestions.curated_suggestion": "Dewis y Golygydd",
+  "follow_suggestions.dismiss": "Peidio â dangos hwn eto",
+  "follow_suggestions.personalized_suggestion": "Awgrym personol",
+  "follow_suggestions.popular_suggestion": "Awgrym poblogaidd",
+  "follow_suggestions.view_all": "Gweld y cyfan",
+  "follow_suggestions.who_to_follow": "Pwy i ddilyn",
   "followed_tags": "Hashnodau rydych yn eu dilyn",
   "footer.about": "Ynghylch",
   "footer.directory": "Cyfeiriadur proffiliau",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Dilyn hashnod",
   "hashtag.unfollow": "Dad-ddilyn hashnod",
   "hashtags.and_other": "…a {count, plural, other {# more}}",
-  "home.actions.go_to_explore": "Gweld beth yw'r tuedd",
-  "home.actions.go_to_suggestions": "Ffeindio pobl i'w dilyn",
   "home.column_settings.basic": "Syml",
   "home.column_settings.show_reblogs": "Dangos hybiau",
   "home.column_settings.show_replies": "Dangos atebion",
-  "home.explore_prompt.body": "Bydd eich llif cartref yn cynnwys cymysgedd o bostiadau o'r hashnodau rydych chi wedi dewis eu dilyn, y bobl rydych chi wedi dewis eu dilyn, a'r postiadau maen nhw'n rhoi hwb iddyn nhw. Os yw hynny'n teimlo'n rhy dawel, efallai y byddwch eisiau:",
-  "home.explore_prompt.title": "Dyma'ch cartref o fewn Mastodon.",
   "home.hide_announcements": "Cuddio cyhoeddiadau",
   "home.pending_critical_update.body": "Diweddarwch eich gweinydd Mastodon cyn gynted â phosibl!",
   "home.pending_critical_update.link": "Gweld y diweddariadau",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Ychwanegu pleidlais",
   "poll_button.remove_poll": "Tynnu pleidlais",
   "privacy.change": "Addasu preifatrwdd y post",
+  "privacy.direct.long": "Pawb sydd â son amdanyn nhw yn y postiad",
+  "privacy.direct.short": "Pobl benodol",
+  "privacy.private.long": "Eich dilynwyr yn unig",
+  "privacy.private.short": "Dilynwyr",
+  "privacy.public.long": "Unrhyw ar ac oddi ar Mastodon",
   "privacy.public.short": "Cyhoeddus",
+  "privacy.unlisted.additional": "Mae hwn yn ymddwyn yn union fel y cyhoeddus, ac eithrio na fydd y postiad yn ymddangos mewn ffrydiau byw neu hashnodau, archwilio, neu chwiliad Mastodon, hyd yn oed os ydych wedi eich cynnwys ar draws y cyfrif.",
+  "privacy.unlisted.long": "Llai o ddathliadau algorithmig",
+  "privacy.unlisted.short": "Tewi'r cyhoeddus",
   "privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}",
   "privacy_policy.title": "Polisi Preifatrwydd",
   "recommended": "Argymhellwyd",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number} munud",
   "relative_time.seconds": "{number} eiliad",
   "relative_time.today": "heddiw",
+  "reply_indicator.attachments": "{count, plural, one {# attachment} arall {# attachments}}",
   "reply_indicator.cancel": "Canslo",
+  "reply_indicator.poll": "Arolwg",
   "report.block": "Blocio",
   "report.block_explanation": "Ni welwch chi eu postiadau. Ni allan nhw weld eich postiadau na'ch dilyn. Byddan nhw'n gallu gweld eu bod nhw wedi'u rhwystro.",
   "report.categories.legal": "Cyfreithiol",

+ 5 - 6
app/javascript/mastodon/locales/da.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.",
   "compose_form.lock_disclaimer.lock": "låst",
   "compose_form.placeholder": "Hvad tænker du på?",
-  "compose_form.poll.add_option": "Tilføj mulighed",
   "compose_form.poll.duration": "Afstemningens varighed",
   "compose_form.poll.multiple": "Multivalg",
   "compose_form.poll.option_placeholder": "Valgmulighed {number}",
-  "compose_form.poll.remove_option": "Fjern denne valgmulighed",
   "compose_form.poll.single": "Vælg én",
   "compose_form.poll.switch_to_multiple": "Ændr afstemning til flervalgstype",
   "compose_form.poll.switch_to_single": "Ændr afstemning til enkeltvalgstype",
@@ -279,6 +277,11 @@
   "follow_request.authorize": "Godkend",
   "follow_request.reject": "Afvis",
   "follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, synes {domain}-personalet, du måske bør gennemgå disse anmodninger manuelt.",
+  "follow_suggestions.dismiss": "Vis ikke igen",
+  "follow_suggestions.personalized_suggestion": "Personligt forslag",
+  "follow_suggestions.popular_suggestion": "Populært forslag",
+  "follow_suggestions.view_all": "Vis alle",
+  "follow_suggestions.who_to_follow": "Hvem, som skal følges",
   "followed_tags": "Hashtag, som følges",
   "footer.about": "Om",
   "footer.directory": "Profiloversigt",
@@ -305,13 +308,9 @@
   "hashtag.follow": "Følg hashtag",
   "hashtag.unfollow": "Stop med at følge hashtag",
   "hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
-  "home.actions.go_to_explore": "Se, hvad som trender",
-  "home.actions.go_to_suggestions": "Find nogle personer at følge",
   "home.column_settings.basic": "Grundlæggende",
   "home.column_settings.show_reblogs": "Vis boosts",
   "home.column_settings.show_replies": "Vis svar",
-  "home.explore_prompt.body": "Dit hjemmefeed vil have en blanding af indlæg fra de hashtags, du har valgt at følge, de personer, du har valgt at følge, og de indlæg, de booster. Hvis her virker for stille, kan du prøve:",
-  "home.explore_prompt.title": "Dette er din hjemmebase i Mastodon.",
   "home.hide_announcements": "Skjul bekendtgørelser",
   "home.pending_critical_update.body": "Opdater din Mastodon-server snarest muligt!",
   "home.pending_critical_update.link": "Se opdateringer",

+ 10 - 10
app/javascript/mastodon/locales/de.json

@@ -145,15 +145,13 @@
   "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Andere können dir folgen und deine Beiträge sehen, die nur für Follower bestimmt sind.",
   "compose_form.lock_disclaimer.lock": "geschützt",
   "compose_form.placeholder": "Was gibt’s Neues?",
-  "compose_form.poll.add_option": "Auswahl hinzufügen",
   "compose_form.poll.duration": "Umfragedauer",
-  "compose_form.poll.multiple": "Mehrfachauswahl",
-  "compose_form.poll.option_placeholder": "{number}. Auswahlmöglichkeit",
-  "compose_form.poll.remove_option": "Dieses Auswahlfeld entfernen",
+  "compose_form.poll.multiple": "Mul­ti­ple-Choice",
+  "compose_form.poll.option_placeholder": "Option {number}",
   "compose_form.poll.single": "Einfachauswahl",
   "compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben",
   "compose_form.poll.switch_to_single": "Nur Einfachauswahl erlauben",
-  "compose_form.poll.type": "Art",
+  "compose_form.poll.type": "Stil",
   "compose_form.publish": "Veröffentlichen",
   "compose_form.publish_form": "Neuer Beitrag",
   "compose_form.reply": "Antworten",
@@ -279,6 +277,12 @@
   "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.",
+  "follow_suggestions.curated_suggestion": "Auswahl des Herausgebers",
+  "follow_suggestions.dismiss": "Nicht mehr anzeigen",
+  "follow_suggestions.personalized_suggestion": "Persönliche Empfehlung",
+  "follow_suggestions.popular_suggestion": "Beliebte Empfehlung",
+  "follow_suggestions.view_all": "Alle anzeigen",
+  "follow_suggestions.who_to_follow": "Empfohlene Profile",
   "followed_tags": "Gefolgte Hashtags",
   "footer.about": "Über",
   "footer.directory": "Profilverzeichnis",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Hashtag folgen",
   "hashtag.unfollow": "Hashtag entfolgen",
   "hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}",
-  "home.actions.go_to_explore": "Trends ansehen",
-  "home.actions.go_to_suggestions": "Profile zum Folgen finden",
   "home.column_settings.basic": "Allgemein",
   "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
   "home.column_settings.show_replies": "Antworten anzeigen",
-  "home.explore_prompt.body": "Deine Startseite wird eine Mischung aus Beiträgen mit Hashtags und den Profilen, denen du folgst sowie den Beiträgen, die sie teilen, enthalten. Sollte es sich zu still anfühlen:",
-  "home.explore_prompt.title": "Das ist dein Zuhause bei Mastodon.",
   "home.hide_announcements": "Ankündigungen ausblenden",
   "home.pending_critical_update.body": "Bitte aktualisiere deinen Mastodon-Server so schnell wie möglich!",
   "home.pending_critical_update.link": "Updates ansehen",
@@ -528,7 +528,7 @@
   "privacy.direct.short": "Bestimmte Profile",
   "privacy.private.long": "Nur deine Follower",
   "privacy.private.short": "Follower",
-  "privacy.public.long": "Alle auf und außerhalb von Mastodon",
+  "privacy.public.long": "Alle in und außerhalb von Mastodon",
   "privacy.public.short": "Öffentlich",
   "privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch erscheint dieser Beitrag nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion – selbst wenn du das in den Einstellungen aktiviert hast.",
   "privacy.unlisted.long": "Weniger im Algorithmus berücksichtigt",

+ 0 - 5
app/javascript/mastodon/locales/el.json

@@ -140,11 +140,9 @@
   "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σου προς τους ακολούθους σου.",
   "compose_form.lock_disclaimer.lock": "κλειδωμένο",
   "compose_form.placeholder": "Τι σκέφτεσαι;",
-  "compose_form.poll.add_option": "Προσθήκη επιλογής",
   "compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
   "compose_form.poll.multiple": "Πολλαπλή επιλογή",
   "compose_form.poll.option_placeholder": "Επιλογή {number}",
-  "compose_form.poll.remove_option": "Αφαίρεση επιλογής",
   "compose_form.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές",
   "compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή",
   "compose_form.poll.type": "Στυλ",
@@ -291,12 +289,9 @@
   "hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα",
   "hashtag.follow": "Παρακολούθηση ετικέτας",
   "hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας",
-  "home.actions.go_to_suggestions": "Βρείτε άτομα για να ακολουθήσετε",
   "home.column_settings.basic": "Βασικές ρυθμίσεις",
   "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
   "home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
-  "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:\nΗ τροφοδοσία της αρχικής σελίδας σας είναι ένα μίγμα από αναρτήσεις με τις ετικέτες και τα άτομα που επιλέξατε να ακολουθείτε, και τις αναρτήσεις που προωθούν. Εάν αυτό σας φαίνεται πολύ ήσυχο, μπορεί να θέλετε:",
-  "home.explore_prompt.title": "Αυτό είναι το σπίτι σας στο Mastodon.",
   "home.hide_announcements": "Απόκρυψη ανακοινώσεων",
   "home.pending_critical_update.link": "Δείτε ενημερώσεις",
   "home.pending_critical_update.title": "Κρίσιμη ενημέρωση ασφαλείας διαθέσιμη!",

+ 27 - 5
app/javascript/mastodon/locales/en-GB.json

@@ -32,6 +32,7 @@
   "account.featured_tags.last_status_never": "No posts",
   "account.featured_tags.title": "{name}'s featured hashtags",
   "account.follow": "Follow",
+  "account.follow_back": "Follow back",
   "account.followers": "Followers",
   "account.followers.empty": "No one follows this user yet.",
   "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
@@ -52,6 +53,7 @@
   "account.mute_notifications_short": "Mute notifications",
   "account.mute_short": "Mute",
   "account.muted": "Muted",
+  "account.mutual": "Mutual",
   "account.no_bio": "No description provided.",
   "account.open_original_page": "Open original page",
   "account.posts": "Posts",
@@ -144,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "locked",
   "compose_form.placeholder": "What's on your mind?",
   "compose_form.poll.duration": "Poll duration",
+  "compose_form.poll.multiple": "Multiple choice",
+  "compose_form.poll.option_placeholder": "Option {number}",
+  "compose_form.poll.single": "Pick one",
   "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
   "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.type": "Style",
+  "compose_form.publish": "Post",
   "compose_form.publish_form": "New post",
+  "compose_form.reply": "Reply",
+  "compose_form.save_changes": "Update",
   "compose_form.spoiler.marked": "Remove content warning",
   "compose_form.spoiler.unmarked": "Add content warning",
+  "compose_form.spoiler_placeholder": "Content warning (optional)",
   "confirmation_modal.cancel": "Cancel",
   "confirmations.block.block_and_report": "Block & Report",
   "confirmations.block.confirm": "Block",
@@ -267,6 +277,12 @@
   "follow_request.authorize": "Authorise",
   "follow_request.reject": "Reject",
   "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
+  "follow_suggestions.curated_suggestion": "Editors' Choice",
+  "follow_suggestions.dismiss": "Don't show again",
+  "follow_suggestions.personalized_suggestion": "Personalised suggestion",
+  "follow_suggestions.popular_suggestion": "Popular suggestion",
+  "follow_suggestions.view_all": "View all",
+  "follow_suggestions.who_to_follow": "Who to follow",
   "followed_tags": "Followed hashtags",
   "footer.about": "About",
   "footer.directory": "Profiles directory",
@@ -292,14 +308,10 @@
   "hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today",
   "hashtag.follow": "Follow hashtag",
   "hashtag.unfollow": "Unfollow hashtag",
-  "hashtags.and_other": "…and {count, plural, one {}other {# more}}",
-  "home.actions.go_to_explore": "See what's trending",
-  "home.actions.go_to_suggestions": "Find people to follow",
+  "hashtags.and_other": "…and {count, plural, one {one more} other {# more}}",
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
-  "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:",
-  "home.explore_prompt.title": "This is your home base within Mastodon.",
   "home.hide_announcements": "Hide announcements",
   "home.pending_critical_update.body": "Please update your Mastodon server as soon as possible!",
   "home.pending_critical_update.link": "See updates",
@@ -512,7 +524,15 @@
   "poll_button.add_poll": "Add a poll",
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Change post privacy",
+  "privacy.direct.long": "Everyone mentioned in the post",
+  "privacy.direct.short": "Specific people",
+  "privacy.private.long": "Only your followers",
+  "privacy.private.short": "Followers",
+  "privacy.public.long": "Anyone on and off Mastodon",
   "privacy.public.short": "Public",
+  "privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.",
+  "privacy.unlisted.long": "Fewer algorithmic fanfares",
+  "privacy.unlisted.short": "Quiet public",
   "privacy_policy.last_updated": "Last updated {date}",
   "privacy_policy.title": "Privacy Policy",
   "recommended": "Recommended",
@@ -530,7 +550,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "today",
+  "reply_indicator.attachments": "{count, plural, one {# attachment} other {# attachments}}",
   "reply_indicator.cancel": "Cancel",
+  "reply_indicator.poll": "Poll",
   "report.block": "Block",
   "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
   "report.categories.legal": "Legal",

+ 6 - 1
app/javascript/mastodon/locales/en.json

@@ -277,8 +277,13 @@
   "follow_request.authorize": "Authorize",
   "follow_request.reject": "Reject",
   "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "follow_suggestions.curated_suggestion": "Editors' Choice",
+  "follow_suggestions.curated_suggestion": "Staff pick",
   "follow_suggestions.dismiss": "Don't show again",
+  "follow_suggestions.hints.featured": "This profile has been hand-picked by the {domain} team.",
+  "follow_suggestions.hints.friends_of_friends": "This profile is popular among the people you follow.",
+  "follow_suggestions.hints.most_followed": "This profile is one of the most followed on {domain}.",
+  "follow_suggestions.hints.most_interactions": "This profile has been recently getting a lot of attention on {domain}.",
+  "follow_suggestions.hints.similar_to_recently_followed": "This profile is similar to the profiles you have most recently followed.",
   "follow_suggestions.personalized_suggestion": "Personalized suggestion",
   "follow_suggestions.popular_suggestion": "Popular suggestion",
   "follow_suggestions.view_all": "View all",

+ 1 - 5
app/javascript/mastodon/locales/eo.json

@@ -115,7 +115,7 @@
   "column.directory": "Foliumi la profilojn",
   "column.domain_blocks": "Blokitaj domajnoj",
   "column.favourites": "Stelumoj",
-  "column.firehose": "Vivantaj fluoj",
+  "column.firehose": "Rektaj fluoj",
   "column.follow_requests": "Petoj de sekvado",
   "column.home": "Hejmo",
   "column.lists": "Listoj",
@@ -295,13 +295,9 @@
   "hashtag.follow": "Sekvi la kradvorton",
   "hashtag.unfollow": "Ne plu sekvi la kradvorton",
   "hashtags.and_other": "…kaj {count, plural,other {# pli}}",
-  "home.actions.go_to_explore": "Vidi kio populariĝas",
-  "home.actions.go_to_suggestions": "Trovi homojn por sekvi",
   "home.column_settings.basic": "Bazaj agordoj",
   "home.column_settings.show_reblogs": "Montri diskonigojn",
   "home.column_settings.show_replies": "Montri respondojn",
-  "home.explore_prompt.body": "Via hejmafiŝaro havos miksitajn afiŝojn de kradvortoj kiujn vi elektis sekvi, personoj kiujn vi elektis sekvi, kaj afiŝoj kiujn ili suprenigis.",
-  "home.explore_prompt.title": "Ĉi tio estas via hejma paĝo en Mastodon.",
   "home.hide_announcements": "Kaŝi la anoncojn",
   "home.pending_critical_update.body": "Ĝisdatigu vian servilon de Mastodon kiel eble plej baldau!",
   "home.pending_critical_update.link": "Vidi ĝisdatigojn",

+ 19 - 11
app/javascript/mastodon/locales/es-AR.json

@@ -146,14 +146,13 @@
   "compose_form.lock_disclaimer.lock": "privada",
   "compose_form.placeholder": "¿Qué onda?",
   "compose_form.poll.duration": "Duración de la encuesta",
-  "compose_form.poll.multiple": "Selección múltiple",
+  "compose_form.poll.multiple": "Múltiples opciones",
   "compose_form.poll.option_placeholder": "Opción {number}",
-  "compose_form.poll.remove_option": "Quitar esta opción",
-  "compose_form.poll.single": "Elige uno",
+  "compose_form.poll.single": "Elegí una",
   "compose_form.poll.switch_to_multiple": "Cambiar encuesta para permitir opciones múltiples",
   "compose_form.poll.switch_to_single": "Cambiar encuesta para permitir una sola opción",
   "compose_form.poll.type": "Estilo",
-  "compose_form.publish": "Publicar",
+  "compose_form.publish": "Enviar",
   "compose_form.publish_form": "Nuevo mensaje",
   "compose_form.reply": "Responder",
   "compose_form.save_changes": "Actualizar",
@@ -278,6 +277,12 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rechazar",
   "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.",
+  "follow_suggestions.curated_suggestion": "Cuentas elegidas del servidor",
+  "follow_suggestions.dismiss": "No mostrar de nuevo",
+  "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
+  "follow_suggestions.popular_suggestion": "Sugerencia popular",
+  "follow_suggestions.view_all": "Ver todo",
+  "follow_suggestions.who_to_follow": "A quién seguir",
   "followed_tags": "Etiquetas seguidas",
   "footer.about": "Información",
   "footer.directory": "Directorio de perfiles",
@@ -304,13 +309,9 @@
   "hashtag.follow": "Seguir etiqueta",
   "hashtag.unfollow": "Dejar de seguir etiqueta",
   "hashtags.and_other": "…y {count, plural, other {# más}}",
-  "home.actions.go_to_explore": "Ver qué está en tendencia",
-  "home.actions.go_to_suggestions": "Encontrar cuentas para seguir",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar adhesiones",
   "home.column_settings.show_replies": "Mostrar respuestas",
-  "home.explore_prompt.body": "Tu línea temporal principal tendrá una mezcla de mensajes de etiquetas que hayás decidido seguir, cuentas que hayás seguido y mensajes a los que éstas adhieran. Si está muy tranquilo por acá, quizás quieras:",
-  "home.explore_prompt.title": "Este es tu inicio en Mastodon.",
   "home.hide_announcements": "Ocultar anuncios",
   "home.pending_critical_update.body": "Por favor, ¡actualizá tu servidor de Mastodon lo antes posible!",
   "home.pending_critical_update.link": "Ver actualizaciones",
@@ -523,10 +524,15 @@
   "poll_button.add_poll": "Agregar encuesta",
   "poll_button.remove_poll": "Quitar encuesta",
   "privacy.change": "Configurar privacidad del mensaje",
-  "privacy.direct.short": "Personas específicas",
+  "privacy.direct.long": "Todas las cuentas mencionadas en el mensaje",
+  "privacy.direct.short": "Cuentas específicas",
   "privacy.private.long": "Solo tus seguidores",
   "privacy.private.short": "Seguidores",
+  "privacy.public.long": "Cualquier persona dentro y fuera de Mastodon",
   "privacy.public.short": "Público",
+  "privacy.unlisted.additional": "Esto se comporta exactamente igual que con la configuración de privacidad de mensaje \"Público\", excepto que el mensaje no aparecerá en los líneas temporales en vivo, ni en las etiquetas, ni en la línea temporal \"Explorá\", ni en la búsqueda de Mastodon; incluso si optaste por hacer tu cuenta visible.",
+  "privacy.unlisted.long": "Menos fanfarrias algorítmicas",
+  "privacy.unlisted.short": "Público silencioso",
   "privacy_policy.last_updated": "Última actualización: {date}",
   "privacy_policy.title": "Política de privacidad",
   "recommended": "Opción recomendada",
@@ -544,7 +550,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "hoy",
+  "reply_indicator.attachments": "{count, plural,one {# adjunto} other {# adjuntos}}",
   "reply_indicator.cancel": "Cancelar",
+  "reply_indicator.poll": "Encuesta",
   "report.block": "Bloquear",
   "report.block_explanation": "No verás sus mensajes. No podrán ver tus mensajes ni seguirte. Se van a dar cuentra de que están bloqueados.",
   "report.categories.legal": "Legales",
@@ -644,8 +652,8 @@
   "status.filter": "Filtrar este mensaje",
   "status.filtered": "Filtrado",
   "status.hide": "Ocultar mensaje",
-  "status.history.created": "Creado por {name} el {date}",
-  "status.history.edited": "Editado por {name} el {date}",
+  "status.history.created": "Creado por {name}, {date}",
+  "status.history.edited": "Editado por {name}, {date}",
   "status.load_more": "Cargar más",
   "status.media.open": "Clic para abrir",
   "status.media.show": "Clic para mostrar",

+ 6 - 6
app/javascript/mastodon/locales/es-MX.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
   "compose_form.placeholder": "¿En qué estás pensando?",
-  "compose_form.poll.add_option": "Agregar opción",
   "compose_form.poll.duration": "Duración de la encuesta",
   "compose_form.poll.multiple": "Selección múltiple",
   "compose_form.poll.option_placeholder": "Opción {number}",
-  "compose_form.poll.remove_option": "Eliminar esta opción",
   "compose_form.poll.single": "Seleccione uno",
   "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones",
   "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rechazar",
   "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
+  "follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
+  "follow_suggestions.dismiss": "No mostrar de nuevo",
+  "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
+  "follow_suggestions.popular_suggestion": "Sugerencia popular",
+  "follow_suggestions.view_all": "Ver todo",
+  "follow_suggestions.who_to_follow": "A quién seguir",
   "followed_tags": "Hashtags seguidos",
   "footer.about": "Acerca de",
   "footer.directory": "Directorio de perfiles",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Seguir etiqueta",
   "hashtag.unfollow": "Dejar de seguir etiqueta",
   "hashtags.and_other": "…y {count, plural, other {# más}}",
-  "home.actions.go_to_explore": "Ver tendencias",
-  "home.actions.go_to_suggestions": "Encuentra gente a la que seguir",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar retoots",
   "home.column_settings.show_replies": "Mostrar respuestas",
-  "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de los hashtags que has escogido seguir, las personas que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:",
-  "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.",
   "home.hide_announcements": "Ocultar anuncios",
   "home.pending_critical_update.body": "¡Por favor actualiza tu servidor Mastodon lo antes posible!",
   "home.pending_critical_update.link": "Ver actualizaciones",

+ 12 - 5
app/javascript/mastodon/locales/es.json

@@ -148,7 +148,6 @@
   "compose_form.poll.duration": "Duración de la encuesta",
   "compose_form.poll.multiple": "Selección múltiple",
   "compose_form.poll.option_placeholder": "Opción {number}",
-  "compose_form.poll.remove_option": "Quitar esta opción",
   "compose_form.poll.single": "Elige uno",
   "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones",
   "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción",
@@ -278,6 +277,12 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rechazar",
   "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
+  "follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
+  "follow_suggestions.dismiss": "No mostrar de nuevo",
+  "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
+  "follow_suggestions.popular_suggestion": "Sugerencia popular",
+  "follow_suggestions.view_all": "Ver todo",
+  "follow_suggestions.who_to_follow": "A quién seguir",
   "followed_tags": "Etiquetas seguidas",
   "footer.about": "Acerca de",
   "footer.directory": "Directorio de perfiles",
@@ -304,13 +309,9 @@
   "hashtag.follow": "Seguir etiqueta",
   "hashtag.unfollow": "Dejar de seguir etiqueta",
   "hashtags.and_other": "…y {count, plural, other {# más}}",
-  "home.actions.go_to_explore": "Ver tendencias",
-  "home.actions.go_to_suggestions": "Encuentra personas a las que seguir",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar impulsos",
   "home.column_settings.show_replies": "Mostrar respuestas",
-  "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de las etiquetas que has escogido seguir, las personas que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:",
-  "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.",
   "home.hide_announcements": "Ocultar anuncios",
   "home.pending_critical_update.body": "Por favor, ¡actualiza tu servidor Mastodon lo antes posible!",
   "home.pending_critical_update.link": "Ver actualizaciones",
@@ -523,10 +524,15 @@
   "poll_button.add_poll": "Añadir una encuesta",
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
+  "privacy.direct.long": "Todos los mencionados en el post",
   "privacy.direct.short": "Personas específicas",
   "privacy.private.long": "Solo tus seguidores",
   "privacy.private.short": "Seguidores",
+  "privacy.public.long": "Cualquiera dentro y fuera de Mastodon",
   "privacy.public.short": "Público",
+  "privacy.unlisted.additional": "Esto se comporta exactamente igual que el público, excepto que la publicación no aparecerá en la cronología en directo o en las etiquetas, la exploración o búsqueda de Mastodon, incluso si está optado por activar la cuenta de usuario.",
+  "privacy.unlisted.long": "Menos fanfares algorítmicos",
+  "privacy.unlisted.short": "Público tranquilo",
   "privacy_policy.last_updated": "Actualizado por última vez {date}",
   "privacy_policy.title": "Política de Privacidad",
   "recommended": "Recomendado",
@@ -545,6 +551,7 @@
   "relative_time.seconds": "{number} s",
   "relative_time.today": "hoy",
   "reply_indicator.cancel": "Cancelar",
+  "reply_indicator.poll": "Encuesta",
   "report.block": "Bloquear",
   "report.block_explanation": "No verás sus publicaciones. No podrán ver tus publicaciones ni seguirte. Podrán saber que están bloqueados.",
   "report.categories.legal": "Legal",

+ 0 - 6
app/javascript/mastodon/locales/et.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Su konto ei ole {locked}. Igaüks saab sind jälgida, et näha su ainult-jälgijatele postitusi.",
   "compose_form.lock_disclaimer.lock": "lukus",
   "compose_form.placeholder": "Millest mõtled?",
-  "compose_form.poll.add_option": "Lisa valik",
   "compose_form.poll.duration": "Küsitluse kestus",
   "compose_form.poll.multiple": "Valikvastustega",
   "compose_form.poll.option_placeholder": "Valik {number}",
-  "compose_form.poll.remove_option": "Eemalda see valik",
   "compose_form.poll.single": "Vali üks",
   "compose_form.poll.switch_to_multiple": "Muuda küsitlust mitmikvaliku lubamiseks",
   "compose_form.poll.switch_to_single": "Muuda küsitlust ainult ühe valiku lubamiseks",
@@ -305,13 +303,9 @@
   "hashtag.follow": "Jälgi silti",
   "hashtag.unfollow": "Lõpeta sildi jälgimine",
   "hashtags.and_other": "…ja {count, plural, one {}other {# veel}}",
-  "home.actions.go_to_explore": "Vaata, mis on populaarne",
-  "home.actions.go_to_suggestions": "Leia inimesi, keda jälgida",
   "home.column_settings.basic": "Peamine",
   "home.column_settings.show_reblogs": "Näita jagamisi",
   "home.column_settings.show_replies": "Näita vastuseid",
-  "home.explore_prompt.body": "Sinu koduvoos on koos jälgimiseks valitud siltidega postitused, sinu jälgitavate inimeste postitused ja postitused, mida nad jagavad. Kui see tundub liiga vaikne, võid sa soovida:",
-  "home.explore_prompt.title": "See on sinu kodubaas Mastodonis.",
   "home.hide_announcements": "Peida teadaanded",
   "home.pending_critical_update.body": "Palun uuenda oma Mastodoni server nii ruttu kui võimalik!",
   "home.pending_critical_update.link": "Vaata uuendusi",

+ 8 - 8
app/javascript/mastodon/locales/eu.json

@@ -132,7 +132,7 @@
   "column_header.unpin": "Desfinkatu",
   "column_subheading.settings": "Ezarpenak",
   "community.column_settings.local_only": "Lokala soilik",
-  "community.column_settings.media_only": "Multimedia besterik ez",
+  "community.column_settings.media_only": "Edukiak soilik",
   "community.column_settings.remote_only": "Urrunekoa soilik",
   "compose.language.change": "Aldatu hizkuntza",
   "compose.language.search": "Bilatu hizkuntzak...",
@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren bidalketak ikusteko.",
   "compose_form.lock_disclaimer.lock": "giltzapetuta",
   "compose_form.placeholder": "Zer duzu buruan?",
-  "compose_form.poll.add_option": "Gehitu aukera",
   "compose_form.poll.duration": "Inkestaren iraupena",
   "compose_form.poll.multiple": "Aukera aniza",
   "compose_form.poll.option_placeholder": "{number}. aukera",
-  "compose_form.poll.remove_option": "Kendu aukera hau",
   "compose_form.poll.single": "Hautatu bat",
   "compose_form.poll.switch_to_multiple": "Aldatu inkesta hainbat aukera onartzeko",
   "compose_form.poll.switch_to_single": "Aldatu inkesta aukera bakarra onartzeko",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Baimendu",
   "follow_request.reject": "Ukatu",
   "follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskaerak agian eskuz begiratu nahiko dituzula.",
+  "follow_suggestions.curated_suggestion": "Zerbitzariaren iradokizunak",
+  "follow_suggestions.dismiss": "Ez erakutsi berriro",
+  "follow_suggestions.personalized_suggestion": "Iradokizun pertsonalizatua",
+  "follow_suggestions.popular_suggestion": "Iradokizun ezaguna",
+  "follow_suggestions.view_all": "Ikusi denak",
+  "follow_suggestions.who_to_follow": "Zein jarraitu",
   "followed_tags": "Jarraitutako traolak",
   "footer.about": "Honi buruz",
   "footer.directory": "Profil-direktorioa",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Jarraitu traolari",
   "hashtag.unfollow": "Utzi traola jarraitzeari",
   "hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}",
-  "home.actions.go_to_explore": "Ikusi zer dagoen pil-pilean",
-  "home.actions.go_to_suggestions": "Aurkitu jendea jarraitzeko",
   "home.column_settings.basic": "Oinarrizkoa",
   "home.column_settings.show_reblogs": "Erakutsi bultzadak",
   "home.column_settings.show_replies": "Erakutsi erantzunak",
-  "home.explore_prompt.body": "Zure hasierako jarioak jarraitzeko aukeratu dituzun traolen, jarraitzeko aukeratu duzun jendearen eta beraiek bultzatutako argitalpenen nahasketa bat edukiko du. Nahiko isila dirudi oraintxe, beraz, zergatik ez:",
-  "home.explore_prompt.title": "Hau zure hasiera da Mastodonen.",
   "home.hide_announcements": "Ezkutatu iragarpenak",
   "home.pending_critical_update.body": "Eguneratu zure Mastodoneko zerbitzaria leheinbailehen!",
   "home.pending_critical_update.link": "Ikusi eguneraketak",
@@ -356,7 +356,7 @@
   "keyboard_shortcuts.muted": "mutututako erabiltzaileen zerrenda irekitzeko",
   "keyboard_shortcuts.my_profile": "zure profila irekitzeko",
   "keyboard_shortcuts.notifications": "jakinarazpenen zutabea irekitzeko",
-  "keyboard_shortcuts.open_media": "media zabaltzeko",
+  "keyboard_shortcuts.open_media": "Ireki edukia",
   "keyboard_shortcuts.pinned": "Ireki finkatutako bidalketen zerrenda",
   "keyboard_shortcuts.profile": "egilearen profila irekitzeko",
   "keyboard_shortcuts.reply": "Erantzun bidalketari",

+ 0 - 6
app/javascript/mastodon/locales/fa.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پی‌گیرتان شده و فرسته‌های ویژهٔ پی‌گیرانتان را ببیند.",
   "compose_form.lock_disclaimer.lock": "قفل‌شده",
   "compose_form.placeholder": "تازه چه خبر؟",
-  "compose_form.poll.add_option": "افزودن گزینه",
   "compose_form.poll.duration": "مدت نظرسنجی",
   "compose_form.poll.multiple": "چند گزینه‌ای",
   "compose_form.poll.option_placeholder": "گزینهٔ {number}",
-  "compose_form.poll.remove_option": "برداشتن این گزینه",
   "compose_form.poll.single": "گزینش یکی",
   "compose_form.poll.switch_to_multiple": "تغییر نظرسنجی برای اجازه به چندین گزینه",
   "compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تک‌گزینه‌ای",
@@ -305,13 +303,9 @@
   "hashtag.follow": "پی‌گرفتن برچسب",
   "hashtag.unfollow": "پی‌نگرفتن برچسب",
   "hashtags.and_other": "…و {count, plural, other {# بیش‌تر}}",
-  "home.actions.go_to_explore": "ببینید چه داغ است",
-  "home.actions.go_to_suggestions": "یافتن افراد برای پی‌گیری",
   "home.column_settings.basic": "پایه‌ای",
   "home.column_settings.show_reblogs": "نمایش تقویت‌ها",
   "home.column_settings.show_replies": "نمایش پاسخ‌ها",
-  "home.explore_prompt.body": "خوراک خانگیتان ترکیبی از فرسته‌ها از برچسب‌هایی که برای پی‌گیری گزیده‌اید، افرادی که پی می‌گیرید و فرسته‌هایی که تقویت می‌کنند را خواهد داشت. اگر خیلی خلوت به نظر می‌رسد،‌ شاید بخواهید:",
-  "home.explore_prompt.title": "این پایگاه خانگیتان در ماستودون است.",
   "home.hide_announcements": "نهفتن اعلامیه‌ها",
   "home.pending_critical_update.body": "لطفاً کارساز ماستودونتان را در نخستین فرصت به‌روز کنید!",
   "home.pending_critical_update.link": "دیدن به‌روز رسانی‌ها",

+ 80 - 78
app/javascript/mastodon/locales/fi.json

@@ -2,8 +2,8 @@
   "about.blocks": "Moderoidut palvelimet",
   "about.contact": "Ota yhteys:",
   "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
-  "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu",
-  "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.",
+  "about.domain_blocks.no_reason_available": "Syy ei ole tiedossa",
+  "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
   "about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.",
   "about.domain_blocks.silenced.title": "Rajoitettu",
   "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",
@@ -19,7 +19,7 @@
   "account.block_domain": "Estä verkkotunnus {domain}",
   "account.block_short": "Estä",
   "account.blocked": "Estetty",
-  "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
+  "account.browse_more_on_origin_server": "Selaile kattavampaa alkuperäprofiilia",
   "account.cancel_follow_request": "Peruuta seurantapyyntö",
   "account.copy": "Kopioi linkki profiiliin",
   "account.direct": "Mainitse @{name} yksityisesti",
@@ -27,7 +27,7 @@
   "account.domain_blocked": "Verkkotunnus estetty",
   "account.edit_profile": "Muokkaa profiilia",
   "account.enable_notifications": "Ilmoita minulle, kun @{name} julkaisee",
-  "account.endorse": "Pidä esillä profiilissa",
+  "account.endorse": "Suosittele profiilissasi",
   "account.featured_tags.last_status_at": "Viimeisin julkaisu {date}",
   "account.featured_tags.last_status_never": "Ei julkaisuja",
   "account.featured_tags.title": "Käyttäjän {name} esillä pidettävät aihetunnisteet",
@@ -39,7 +39,7 @@
   "account.following": "Seuratut",
   "account.following_counter": "{count, plural, one {{counter} seurattu} other {{counter} seurattua}}",
   "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
-  "account.go_to_profile": "Avaa profiili",
+  "account.go_to_profile": "Mene profiiliin",
   "account.hide_reblogs": "Piilota käyttäjän @{name} tehostukset",
   "account.in_memoriam": "Muistoissamme.",
   "account.joined_short": "Liittynyt",
@@ -64,10 +64,10 @@
   "account.share": "Jaa käyttäjän @{name} profiili",
   "account.show_reblogs": "Näytä käyttäjän @{name} tehostukset",
   "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
-  "account.unblock": "Poista käyttäjän @{name} esto",
-  "account.unblock_domain": "Poista verkkotunnuksen {domain} esto",
+  "account.unblock": "Kumoa käyttäjän @{name} esto",
+  "account.unblock_domain": "Kumoa verkkotunnuksen {domain} esto",
   "account.unblock_short": "Poista esto",
-  "account.unendorse": "Älä pidä esillä profiilissa",
+  "account.unendorse": "Kumoa suosittelu profiilissasi",
   "account.unfollow": "Lopeta seuraaminen",
   "account.unmute": "Poista käyttäjän @{name} mykistys",
   "account.unmute_notifications_short": "Poista ilmoitusten mykistys",
@@ -75,7 +75,7 @@
   "account_note.placeholder": "Lisää muistiinpano napsauttamalla",
   "admin.dashboard.daily_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen päivittäin",
   "admin.dashboard.monthly_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen kuukausittain",
-  "admin.dashboard.retention.average": "Keskimäärin",
+  "admin.dashboard.retention.average": "Keskiarvo",
   "admin.dashboard.retention.cohort": "Rekisteröitymis-kk.",
   "admin.dashboard.retention.cohort_size": "Uusia käyttäjiä",
   "admin.impact_report.instance_accounts": "Tilien profiilit, jotka tämä poistaisi",
@@ -86,7 +86,7 @@
   "alert.rate_limited.title": "Pyyntömäärää rajoitettu",
   "alert.unexpected.message": "Tapahtui odottamaton virhe.",
   "alert.unexpected.title": "Hups!",
-  "announcement.announcement": "Ilmoitus",
+  "announcement.announcement": "Tiedote",
   "attachments_list.unprocessed": "(käsittelemätön)",
   "audio.hide": "Piilota ääni",
   "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}",
@@ -145,14 +145,12 @@
   "compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.",
   "compose_form.lock_disclaimer.lock": "lukittu",
   "compose_form.placeholder": "Mitä mietit?",
-  "compose_form.poll.add_option": "Lisää vaihtoehto",
   "compose_form.poll.duration": "Äänestyksen kesto",
   "compose_form.poll.multiple": "Monivalinta",
   "compose_form.poll.option_placeholder": "Vaihtoehto {number}",
-  "compose_form.poll.remove_option": "Poista tämä vaihtoehto",
   "compose_form.poll.single": "Valitse yksi",
-  "compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi",
-  "compose_form.poll.switch_to_single": "Muuta äänestys sallimaan vain yksi valinta",
+  "compose_form.poll.switch_to_multiple": "Muuta kysely monivalinnaksi",
+  "compose_form.poll.switch_to_single": "Muuta kysely sallimaan vain yksi valinta",
   "compose_form.poll.type": "Tyyli",
   "compose_form.publish": "Julkaise",
   "compose_form.publish_form": "Uusi julkaisu",
@@ -166,13 +164,13 @@
   "confirmations.block.confirm": "Estä",
   "confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?",
   "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö",
-  "confirmations.cancel_follow_request.message": "Haluatko varmasti peruuttaa pyyntösi seurata profiilia {name}?",
+  "confirmations.cancel_follow_request.message": "Haluatko varmasti perua pyyntösi seurata käyttäjätiliä {name}?",
   "confirmations.delete.confirm": "Poista",
   "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?",
   "confirmations.delete_list.confirm": "Poista",
   "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?",
   "confirmations.discard_edit_media.confirm": "Hylkää",
-  "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun, hylätäänkö ne silti?",
+  "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun. Hylätäänkö ne silti?",
   "confirmations.domain_block.confirm": "Estä koko verkkotunnus",
   "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkkotunnuksen {domain}? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimi. Et näe sisältöä tästä verkkotunnuksesta millään julkisilla aikajanoilla tai ilmoituksissa. Tähän verkkotunnukseen kuuluvat seuraajasi poistetaan.",
   "confirmations.edit.confirm": "Muokkaa",
@@ -182,12 +180,12 @@
   "confirmations.mute.confirm": "Mykistä",
   "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.",
   "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?",
-  "confirmations.redraft.confirm": "Poista & palauta muokattavaksi",
+  "confirmations.redraft.confirm": "Poista ja palauta muokattavaksi",
   "confirmations.redraft.message": "Haluatko varmasti poistaa julkaisun ja tehdä siitä luonnoksen? Suosikit ja tehostukset menetetään, ja alkuperäisen julkaisun vastaukset jäävät orvoiksi.",
   "confirmations.reply.confirm": "Vastaa",
   "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?",
   "confirmations.unfollow.confirm": "Lopeta seuraaminen",
-  "confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta profiilia {name}?",
+  "confirmations.unfollow.message": "Haluatko varmasti lopettaa profiilin {name} seuraamisen?",
   "conversation.delete": "Poista keskustelu",
   "conversation.mark_as_read": "Merkitse luetuksi",
   "conversation.open": "Näytä keskustelu",
@@ -201,10 +199,10 @@
   "directory.recently_active": "Hiljattain aktiiviset",
   "disabled_account_banner.account_settings": "Tilin asetukset",
   "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.",
-  "dismissable_banner.community_timeline": "Nämä ovat viimeisimpiä julkaisuja käyttäjiltä, joiden tili sijaitsee palvelimella {domain}.",
+  "dismissable_banner.community_timeline": "Nämä ovat tuoreimpia julkaisuja käyttäjiltä, joiden tili on palvelimella {domain}.",
   "dismissable_banner.dismiss": "Hylkää",
   "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat listauksessa korkeimmalle.",
-  "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikiksi lisätyimmät nousevat listauksessa korkeimmalle.",
+  "dismissable_banner.explore_statuses": "Tänään nämä sosiaalisen verkon julkaisut keräävät eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat listauksessa korkeammalle.",
   "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat listauksessa korkeimmalle.",
   "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.",
   "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.",
@@ -216,18 +214,18 @@
   "emoji_button.food": "Ruoka ja juoma",
   "emoji_button.label": "Lisää emoji",
   "emoji_button.nature": "Luonto",
-  "emoji_button.not_found": "Vastaavia emojeja ei löytynyt",
+  "emoji_button.not_found": "Vastaavia emojeita ei löytynyt",
   "emoji_button.objects": "Esineet",
   "emoji_button.people": "Ihmiset",
   "emoji_button.recent": "Usein käytetyt",
-  "emoji_button.search": "Hae...",
+  "emoji_button.search": "Etsi...",
   "emoji_button.search_results": "Hakutulokset",
   "emoji_button.symbols": "Symbolit",
   "emoji_button.travel": "Matkailu ja paikat",
-  "empty_column.account_hides_collections": "Käyttäjä on päättänyt olla julkaisematta näitä tietoja",
+  "empty_column.account_hides_collections": "Käyttäjä on päättänyt pitää nämä tiedot yksityisinä",
   "empty_column.account_suspended": "Tili jäädytetty",
   "empty_column.account_timeline": "Ei viestejä täällä.",
-  "empty_column.account_unavailable": "Profiilia ei löydy",
+  "empty_column.account_unavailable": "Profiilia ei ole saatavilla",
   "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.",
   "empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
   "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
@@ -238,17 +236,17 @@
   "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä julkaisua suosikkeihinsa. Kun joku tekee niin, tulee hän tähän näkyviin.",
   "empty_column.follow_requests": "Et ole vielä vastaanottanut seuraamispyyntöjä. Saamasi pyynnöt näkyvät täällä.",
   "empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.",
-  "empty_column.hashtag": "Tällä aihetunnisteella ei ole vielä mitään.",
+  "empty_column.hashtag": "Tällä aihetunnisteella ei löydy vielä sisältöä.",
   "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.",
   "empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.",
   "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.",
   "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
   "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.",
   "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä",
-  "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
+  "error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.",
   "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
   "error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttö ehkä onnistua eri selaimella tai natiivisovelluksella.",
-  "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytöstä ja päivittää sivu. Jos se ei auta, voit silti käyttää Mastodonia eri selaimen tai sovelluksen kautta.",
+  "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytöstä, ja virkistä sitten sivunlataus. Mikäli ongelma jatkuu, voit mahdollisesti käyttää Mastodonia eri selaimella tai natiivilla sovelluksella.",
   "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
   "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
   "explore.search_results": "Hakutulokset",
@@ -257,13 +255,13 @@
   "explore.trending_links": "Uutiset",
   "explore.trending_statuses": "Julkaisut",
   "explore.trending_tags": "Aihetunnisteet",
-  "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske kontekstia, jossa olet tarkastellut tätä julkaisua. Jos haluat, että julkaisu suodatetaan myös tässä kontekstissa, sinun pitää muokata suodatinta.",
-  "filter_modal.added.context_mismatch_title": "Konteksti ei täsmää!",
-  "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut, joten sinun on muutettava viimeistä voimassaolopäivää, jotta suodatin on voimassa.",
+  "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet tarkastellut tätä julkaisua. Jos haluat julkaisun suodatettavan myös tässä asiayhteydessä, muokkaa suodatinta.",
+  "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!",
+  "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut, joten sinun on muutettava viimeistä voimassaolopäivää, jotta suodatusta käytettäisiin.",
   "filter_modal.added.expired_title": "Vanhentunut suodatin!",
-  "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin kohdassa {settings_link}.",
+  "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Suodattimen asetukset",
-  "filter_modal.added.settings_link": "asetukset-sivulle",
+  "filter_modal.added.settings_link": "asetussivulla",
   "filter_modal.added.short_explanation": "Tämä julkaisu on lisätty seuraavaan suodatinluokkaan: {title}.",
   "filter_modal.added.title": "Suodatin lisätty!",
   "filter_modal.select_filter.context_mismatch": "ei sovellu tähän kontekstiin",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Valtuuta",
   "follow_request.reject": "Hylkää",
   "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
+  "follow_suggestions.curated_suggestion": "Päätoimittajan valinta",
+  "follow_suggestions.dismiss": "Älä näytä uudelleen",
+  "follow_suggestions.personalized_suggestion": "Personoitu ehdotus",
+  "follow_suggestions.popular_suggestion": "Suosittu ehdotus",
+  "follow_suggestions.view_all": "Näytä kaikki",
+  "follow_suggestions.who_to_follow": "Ehdotuksia seurattavaksi",
   "followed_tags": "Seuratut aihetunnisteet",
   "footer.about": "Tietoja",
   "footer.directory": "Profiilihakemisto",
@@ -305,15 +309,11 @@
   "hashtag.follow": "Seuraa aihetunnistetta",
   "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen",
   "hashtags.and_other": "…ja {count, plural, other {# lisää}}",
-  "home.actions.go_to_explore": "Katso, mikä on suosittua",
-  "home.actions.go_to_suggestions": "Löydä seurattavia käyttäjiä",
   "home.column_settings.basic": "Perusasetukset",
   "home.column_settings.show_reblogs": "Näytä tehostukset",
   "home.column_settings.show_replies": "Näytä vastaukset",
-  "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamiasi aihetunnisteita ja käyttäjiä sekä heidän tehostamiaan julkaisuja. Jos se tuntuu liian hiljaiselta, saatat haluta:",
-  "home.explore_prompt.title": "Tämä on tukikohtasi Mastodonissa.",
   "home.hide_announcements": "Piilota tiedotteet",
-  "home.pending_critical_update.body": "Päivitäthän Mastodon-palvelimen mahdollisimman pian!",
+  "home.pending_critical_update.body": "Päivitäthän Mastodon-palvelinohjelmistosi mahdollisimman pian!",
   "home.pending_critical_update.link": "Tutustu päivityssisältöihin",
   "home.pending_critical_update.title": "Kriittinen tietoturvapäivitys saatavilla!",
   "home.show_announcements": "Näytä tiedotteet",
@@ -352,7 +352,7 @@
   "keyboard_shortcuts.hotkey": "Pikanäppäin",
   "keyboard_shortcuts.legend": "Näytä tämä ohje",
   "keyboard_shortcuts.local": "Avaa paikallinen aikajana",
-  "keyboard_shortcuts.mention": "Mainitse kirjoittaja",
+  "keyboard_shortcuts.mention": "Mainitse julkaisija",
   "keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo",
   "keyboard_shortcuts.my_profile": "Avaa profiilisi",
   "keyboard_shortcuts.notifications": "Avaa ilmoitussarake",
@@ -370,12 +370,12 @@
   "keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä",
   "keyboard_shortcuts.up": "Siirry listassa ylöspäin",
   "lightbox.close": "Sulje",
-  "lightbox.compress": "Pakkaa kuvan näkymälaatikko",
-  "lightbox.expand": "Laajenna kuvan näkymälaatikko",
+  "lightbox.compress": "Tiivis kuvankatselunäkymä",
+  "lightbox.expand": "Laajennettu kuvankatselunäkymä",
   "lightbox.next": "Seuraava",
   "lightbox.previous": "Edellinen",
   "limited_account_hint.action": "Näytä profiili joka tapauksessa",
-  "limited_account_hint.title": "Palvelun {domain} valvojat ovat piilottaneet tämän profiilin.",
+  "limited_account_hint.title": "Palvelimen {domain} valvojat ovat piilottaneet tämän käyttäjätilin.",
   "link_preview.author": "Julkaissut {name}",
   "lists.account.add": "Lisää listalle",
   "lists.account.remove": "Poista listalta",
@@ -389,21 +389,21 @@
   "lists.replies_policy.list": "Listan jäsenille",
   "lists.replies_policy.none": "Ei kellekään",
   "lists.replies_policy.title": "Näytä vastaukset:",
-  "lists.search": "Etsi seuraamistasi henkilöistä",
+  "lists.search": "Etsi seuraamiesi henkilöiden keskuudesta",
   "lists.subheading": "Omat listasi",
   "load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}",
   "loading_indicator.label": "Ladataan…",
   "media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}",
   "moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.",
   "mute_modal.duration": "Kesto",
-  "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?",
+  "mute_modal.hide_notifications": "Piilotetaanko tältä käyttäjältä tulevat ilmoitukset?",
   "mute_modal.indefinite": "Ikuisesti",
   "navigation_bar.about": "Tietoja",
   "navigation_bar.advanced_interface": "Avaa edistyneessä selainkäyttöliittymässä",
   "navigation_bar.blocks": "Estetyt käyttäjät",
   "navigation_bar.bookmarks": "Kirjanmerkit",
   "navigation_bar.community_timeline": "Paikallinen aikajana",
-  "navigation_bar.compose": "Kirjoita uusi julkaisu",
+  "navigation_bar.compose": "Luo uusi julkaisu",
   "navigation_bar.direct": "Yksityiset maininnat",
   "navigation_bar.discover": "Löydä uutta",
   "navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
@@ -428,10 +428,10 @@
   "notification.admin.sign_up": "{name} rekisteröityi",
   "notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa",
   "notification.follow": "{name} seurasi sinua",
-  "notification.follow_request": "{name} haluaa seurata sinua",
+  "notification.follow_request": "{name} on pyytänyt lupaa saada seurata sinua",
   "notification.mention": "{name} mainitsi sinut",
   "notification.own_poll": "Äänestyksesi on päättynyt",
-  "notification.poll": "Äänestys, johon osallistuit, on päättynyt",
+  "notification.poll": "Kysely, johon osallistuit, on päättynyt",
   "notification.reblog": "{name} tehosti julkaisuasi",
   "notification.status": "{name} julkaisi juuri",
   "notification.update": "{name} muokkasi julkaisua",
@@ -478,7 +478,7 @@
   "onboarding.actions.go_to_home": "Siirry kotisyötteeseeni",
   "onboarding.compose.template": "Tervehdys #Mastodon!",
   "onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata tutustumissivua löytääksesi seurattavaa tai yrittää myöhemmin uudelleen.",
-  "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!",
+  "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta – voit milloin tahansa myös lopettaa niiden seuraamisen:",
   "onboarding.follows.title": "Mukauta kotisyötettäsi",
   "onboarding.profile.discoverable": "Aseta profiilini löydettäväksi",
   "onboarding.profile.discoverable_hint": "Kun olet määrittänyt itsesi löydettäväksi Mastodonista, julkaisusi voivat näkyä hakutuloksissa ja suosituissa kohteissa. Lisäksi profiiliasi voidaan ehdottaa käyttäjille, jotka ovat kiinnostuneita kanssasi samoista aiheista.",
@@ -506,7 +506,7 @@
   "onboarding.steps.setup_profile.title": "Mukauta profiiliasi",
   "onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista",
   "onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi",
-  "onboarding.tips.2fa": "<strong>Tiesitkö?</strong> Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeroa!",
+  "onboarding.tips.2fa": "<strong>Tiesitkö?</strong> Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron antoa!",
   "onboarding.tips.accounts_from_other_servers": "<strong>Tiesitkö?</strong> Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!",
   "onboarding.tips.migration": "<strong>Tiesitkö?</strong> Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!",
   "onboarding.tips.verification": "<strong>Tiesitkö?</strong> Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!",
@@ -521,8 +521,8 @@
   "poll.vote": "Äänestä",
   "poll.voted": "Äänestit tätä vastausta",
   "poll.votes": "{votes, plural, one {# ääni} other {# ääntä}}",
-  "poll_button.add_poll": "Lisää äänestys",
-  "poll_button.remove_poll": "Poista äänestys",
+  "poll_button.add_poll": "Lisää kysely",
+  "poll_button.remove_poll": "Poista kysely",
   "privacy.change": "Muuta julkaisun näkyvyyttä",
   "privacy.direct.long": "Kaikki tässä julkaisussa mainitut",
   "privacy.direct.short": "Tietyt henkilöt",
@@ -530,7 +530,9 @@
   "privacy.private.short": "Seuraajat",
   "privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
   "privacy.public.short": "Julkinen",
-  "privacy.unlisted.additional": "Tämä toimii kuten julkinen, paitsi että julkaisu ei näy livesyötteissä, aihetunnisteissa, selaa-näkymässä tai Mastodon-haussa, vaikka olisit sallinut ne käyttäjätilin laajuisesti.",
+  "privacy.unlisted.additional": "Tämä on muutoin kuin julkinen julkaisu, mutta sitä ei näytetä livesyöte-, aihetunniste- tai selailunäkymissä eikä Mastodon-hakutuloksissakaan, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.",
+  "privacy.unlisted.long": "Vähemmän algoritmiperusteista sisältöä",
+  "privacy.unlisted.short": "Vaivihkaisesti julkinen",
   "privacy_policy.last_updated": "Viimeksi päivitetty {date}",
   "privacy_policy.title": "Tietosuojakäytäntö",
   "recommended": "Suositeltu",
@@ -553,16 +555,16 @@
   "reply_indicator.poll": "Kysely",
   "report.block": "Estä",
   "report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkee, että olet estänyt hänet.",
-  "report.categories.legal": "Lakiasiat",
+  "report.categories.legal": "Juridiset tiedot",
   "report.categories.other": "Muu",
   "report.categories.spam": "Roskaposti",
-  "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen sääntöä",
+  "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen säännöistä",
   "report.category.subtitle": "Valitse sopivin",
   "report.category.title": "Kerro meille, miksi tämä {type} pitää raportoida",
-  "report.category.title_account": "profiili",
-  "report.category.title_status": "julkaisu",
+  "report.category.title_account": "profiilissa",
+  "report.category.title_status": "julkaisussa",
   "report.close": "Valmis",
-  "report.comment.title": "Olisiko jotain muuta, mitä meidän pitäisi tietää?",
+  "report.comment.title": "Onko vielä jotain muuta, mitä meidän pitäisi tietää?",
   "report.forward": "Välitä kohteeseen {target}",
   "report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?",
   "report.mute": "Mykistä",
@@ -570,18 +572,18 @@
   "report.next": "Seuraava",
   "report.placeholder": "Lisäkommentit",
   "report.reasons.dislike": "En pidä siitä",
-  "report.reasons.dislike_description": "Et halua nähdä sitä",
+  "report.reasons.dislike_description": "Sisältö on sen tyyppistä, ettet halua nähdä sitä",
   "report.reasons.legal": "Se on laitonta",
   "report.reasons.legal_description": "Katsot sisällön rikkovan maasi tai palvelimen kotimaan lakeja",
   "report.reasons.other": "Jotain muuta",
-  "report.reasons.other_description": "Ongelma ei sovi muihin kategorioihin",
+  "report.reasons.other_description": "Muut raportointisyyt eivät kuvaa ongelmaa",
   "report.reasons.spam": "Se on roskapostia",
-  "report.reasons.spam_description": "Haitalliset linkit, väärennetyt sitoutumiset tai toistuvat vastaukset",
+  "report.reasons.spam_description": "Haitalliset linkit, henkilöväärennökset tai itseään toistavat vastaukset",
   "report.reasons.violation": "Se rikkoo palvelimen sääntöjä",
-  "report.reasons.violation_description": "Tiedät, että se rikkoo tiettyjä sääntöjä",
+  "report.reasons.violation_description": "Tiedät sisällön rikkovan tiettyjä sääntöjä",
   "report.rules.subtitle": "Valitse kaikki sopivat",
   "report.rules.title": "Mitä sääntöjä rikotaan?",
-  "report.statuses.subtitle": "Valitse kaikki sopivat",
+  "report.statuses.subtitle": "Valitse kaikki soveltuvat julkaisut",
   "report.statuses.title": "Onko julkaisuja, jotka tukevat tätä raporttia?",
   "report.submit": "Lähetä",
   "report.target": "Raportoidaan {target}",
@@ -595,14 +597,14 @@
   "report_notification.categories.legal": "Laillinen",
   "report_notification.categories.other": "Muu",
   "report_notification.categories.spam": "Roskaposti",
-  "report_notification.categories.violation": "Sääntöjen rikkominen",
+  "report_notification.categories.violation": "Sääntörikkomus",
   "report_notification.open": "Avaa raportti",
   "search.no_recent_searches": "Ei viimeaikaisia hakuja",
   "search.placeholder": "Hae",
   "search.quick_action.account_search": "Profiilit haulla {x}",
   "search.quick_action.go_to_account": "Siirry profiiliin {x}",
   "search.quick_action.go_to_hashtag": "Siirry aihetunnisteeseen {x}",
-  "search.quick_action.open_url": "Avaa URL-osoite Mastodonissa",
+  "search.quick_action.open_url": "Avaa verkko-osoite Mastodonissa",
   "search.quick_action.status_search": "Julkaisut haulla {x}",
   "search.search_or_paste": "Hae tai liitä URL-osoite",
   "search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.",
@@ -611,16 +613,16 @@
   "search_popout.options": "Hakuvalinnat",
   "search_popout.quick_actions": "Pikatoiminnot",
   "search_popout.recent": "Viimeaikaiset haut",
-  "search_popout.specific_date": "tarkka päiväys",
+  "search_popout.specific_date": "tietty päivämäärä",
   "search_popout.user": "käyttäjä",
   "search_results.accounts": "Profiilit",
   "search_results.all": "Kaikki",
   "search_results.hashtags": "Aihetunnisteet",
-  "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään",
+  "search_results.nothing_found": "Hakusi ei tuottanut tuloksia",
   "search_results.see_all": "Näytä kaikki",
   "search_results.statuses": "Julkaisut",
   "search_results.title": "Hae {q}",
-  "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)",
+  "server_banner.about_active_users": "Palvelimen käyttäjät viimeisten 30 päivän ajalta (kuukauden aktiiviset käyttäjät)",
   "server_banner.active_users": "aktiivista käyttäjää",
   "server_banner.administered_by": "Ylläpitäjä:",
   "server_banner.introduction": "{domain} kuuluu hajautettuun sosiaaliseen verkostoon, jonka voimanlähde on {mastodon}.",
@@ -657,7 +659,7 @@
   "status.media.show": "Napsauta näyttääksesi",
   "status.media_hidden": "Media piilotettu",
   "status.mention": "Mainitse @{name}",
-  "status.more": "Lisää",
+  "status.more": "Enemmän",
   "status.mute": "Mykistä @{name}",
   "status.mute_conversation": "Mykistä keskustelu",
   "status.open": "Laajenna julkaisu",
@@ -679,14 +681,14 @@
   "status.show_filter_reason": "Näytä joka tapauksessa",
   "status.show_less": "Näytä vähemmän",
   "status.show_less_all": "Näytä kaikista vähemmän",
-  "status.show_more": "Näytä lisää",
+  "status.show_more": "Näytä enemmän",
   "status.show_more_all": "Näytä kaikista enemmän",
   "status.show_original": "Näytä alkuperäinen",
   "status.title.with_attachments": "{user} liitti {attachmentCount, plural, one {{attachmentCount} tiedoston} other {{attachmentCount} tiedostoa}}",
   "status.translate": "Käännä",
-  "status.translated_from_with": "Käännetty kielestä {lang} käyttäen {provider}",
+  "status.translated_from_with": "Käännetty kielestä {lang} käyttäen palvelua {provider}",
   "status.uncached_media_warning": "Esikatselu ei ole käytettävissä",
-  "status.unmute_conversation": "Poista keskustelun mykistys",
+  "status.unmute_conversation": "Kumoa keskustelun mykistys",
   "status.unpin": "Irrota profiilista",
   "subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Älä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.",
   "subscribed_languages.save": "Tallenna muutokset",
@@ -696,9 +698,9 @@
   "time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä",
   "time_remaining.hours": "{number, plural, one {# tunti} other {# tuntia}} jäljellä",
   "time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä",
-  "time_remaining.moments": "Hetki jäljellä",
+  "time_remaining.moments": "Hetkiä jäljellä",
   "time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä",
-  "timeline_hint.remote_resource_not_displayed": "{resource} muilta palvelimilta ei näytetä.",
+  "timeline_hint.remote_resource_not_displayed": "Muiden palvelinten {resource}-tietoa ei näytetä täällä.",
   "timeline_hint.resources.followers": "Seuraajat",
   "timeline_hint.resources.follows": "seurattua",
   "timeline_hint.resources.statuses": "Vanhemmat julkaisut",
@@ -711,23 +713,23 @@
   "upload_area.title": "Lataa raahaamalla ja pudottamalla tähän",
   "upload_button.label": "Lisää kuvia, video tai äänitiedosto",
   "upload_error.limit": "Tiedostolatauksien rajoitus ylitetty.",
-  "upload_error.poll": "Tiedoston lataaminen ei ole sallittua äänestyksissä.",
+  "upload_error.poll": "Tiedostojen lisääminen ei ole sallittua kyselyjen ohessa.",
   "upload_form.audio_description": "Kuvaile sisältöä kuuroille ja kuulorajoitteisille",
   "upload_form.description": "Kuvaile sisältöä sokeille ja näkörajoitteisille",
   "upload_form.edit": "Muokkaa",
-  "upload_form.thumbnail": "Vaihda pikkukuva",
+  "upload_form.thumbnail": "Vaihda pienoiskuva",
   "upload_form.video_description": "Kuvaile sisältöä kuuroille, kuulorajoitteisille, sokeille tai näkörajoitteisille",
   "upload_modal.analyzing_picture": "Analysoidaan kuvaa…",
   "upload_modal.apply": "Käytä",
-  "upload_modal.applying": "Asetetaan…",
+  "upload_modal.applying": "Otetaan käyttöön…",
   "upload_modal.choose_image": "Valitse kuva",
   "upload_modal.description_placeholder": "Nopea ruskea kettu hyppää laiskan koiran yli",
   "upload_modal.detect_text": "Tunnista teksti kuvasta",
   "upload_modal.edit_media": "Muokkaa mediaa",
-  "upload_modal.hint": "Klikkaa tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
+  "upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
   "upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…",
   "upload_modal.preview_label": "Esikatselu ({ratio})",
-  "upload_progress.label": "Ladataan...",
+  "upload_progress.label": "Tallennetaan...",
   "upload_progress.processing": "Käsitellään…",
   "username.taken": "Käyttäjänimi on jo varattu. Kokeile toista",
   "video.close": "Sulje video",
@@ -737,7 +739,7 @@
   "video.fullscreen": "Koko näyttö",
   "video.hide": "Piilota video",
   "video.mute": "Mykistä ääni",
-  "video.pause": "Keskeytä",
+  "video.pause": "Tauko",
   "video.play": "Toista",
   "video.unmute": "Palauta ääni"
 }

+ 134 - 1
app/javascript/mastodon/locales/fil.json

@@ -27,6 +27,7 @@
   "account.featured_tags.last_status_never": "Walang mga post",
   "account.featured_tags.title": "Nakatampok na hashtag ni {name}",
   "account.follow": "Sundan",
+  "account.follow_back": "Sundan pabalik",
   "account.followers": "Mga tagasunod",
   "account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
   "account.following": "Sinusundan",
@@ -41,6 +42,13 @@
   "account.media": "Medya",
   "account.mention": "Banggitin si @{name}",
   "account.moved_to": "Ipinahihiwatig ni {name} na ang kanilang bagong account ngayon ay:",
+  "account.open_original_page": "Buksan ang pinagmulang pahina",
+  "account.report": "I-ulat si/ang @{name}",
+  "account.requested_follow": "Hinihiling ni {name} na sundan ka",
+  "account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
+  "account.unendorse": "Huwag itampok sa profile",
+  "admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
+  "alert.rate_limited.message": "Mangyaring subukan muli pagkatapos ng {retry_time, time, medium}.",
   "bundle_column_error.error.title": "Naku!",
   "bundle_column_error.network.body": "Nagkaroon ng kamalian habang sinusubukang i-karga ang pahinang ito. Maaaring dahil ito sa pansamantalang problema ng iyong koneksyon sa internet o ang server na ito.",
   "bundle_column_error.network.title": "Kamaliang network",
@@ -91,6 +99,20 @@
   "compose_form.direct_message_warning_learn_more": "Matuto pa",
   "compose_form.encryption_warning": "Ang mga post sa Mastodon ay hindi naka-encrypt nang dulo-dulo. Huwag magbahagi ng anumang sensitibong impormasyon sa Mastodon.",
   "compose_form.hashtag_warning": "Hindi maililista ang post na ito sa anumang hashtag dahil hindi ito nakapubliko. Mga nakapublikong post lamang ang mahahanap ayon sa hashtag.",
+  "compose_form.placeholder": "Anong nangyari?",
+  "compose_form.poll.single": "Piliin ang isa",
+  "compose_form.reply": "Tumugon",
+  "compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman",
+  "confirmation_modal.cancel": "Pagpaliban",
+  "confirmations.block.block_and_report": "Harangan at i-ulat",
+  "confirmations.block.confirm": "Harangan",
+  "confirmations.block.message": "Sigurado ka bang gusto mong harangan si {name}?",
+  "confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan",
+  "confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?",
+  "confirmations.discard_edit_media.confirm": "Ipagpaliban",
+  "confirmations.domain_block.confirm": "Harangan ang buong domain",
+  "confirmations.edit.confirm": "Baguhin",
+  "confirmations.reply.confirm": "Tumugon",
   "copy_icon_button.copied": "Sinipi sa clipboard",
   "copypaste.copied": "Sinipi",
   "copypaste.copy_to_clipboard": "I-sipi sa clipboard",
@@ -140,5 +162,116 @@
   "empty_column.hashtag": "Wala pang laman ang hashtag na ito.",
   "empty_column.home": "Walang laman ang timeline ng tahanan mo! Sumunod sa marami pang tao para mapunan ito.",
   "empty_column.list": "Wala pang laman ang listahang ito. Kapag naglathala ng mga bagong post ang mga miyembro ng listahang ito, makikita iyon dito.",
-  "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito."
+  "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito.",
+  "explore.search_results": "Mga resulta ng paghahanap",
+  "firehose.all": "Lahat",
+  "firehose.local": "Itong serbiro",
+  "firehose.remote": "Ibang mga serbiro",
+  "follow_request.authorize": "Tanggapin",
+  "follow_request.reject": "Tanggihan",
+  "follow_suggestions.dismiss": "Huwag nang ipakita muli",
+  "follow_suggestions.view_all": "Tingnan lahat",
+  "follow_suggestions.who_to_follow": "Sinong maaaring sundan",
+  "footer.about": "Tungkol dito",
+  "footer.get_app": "Kunin ang app",
+  "generic.saved": "Nakaimbak",
+  "hashtag.column_header.tag_mode.all": "at {additional}",
+  "hashtag.column_header.tag_mode.any": "o {additional}",
+  "home.pending_critical_update.body": "Mangyaring i-update ang iyong serbiro ng Mastodon sa lalong madaling panahon!",
+  "interaction_modal.login.action": "Iuwi mo ako",
+  "interaction_modal.no_account_yet": "Wala sa Mastodon?",
+  "interaction_modal.on_another_server": "Sa ibang serbiro",
+  "interaction_modal.on_this_server": "Sa serbirong ito",
+  "interaction_modal.title.follow": "Sundan si {name}",
+  "intervals.full.days": "{number, plural, one {# araw} other {# na araw}}",
+  "intervals.full.hours": "{number, plural, one {# oras} other {# na oras}}",
+  "intervals.full.minutes": "{number, plural, one {# minuto} other {# na minuto}}",
+  "keyboard_shortcuts.description": "Paglalarawan",
+  "keyboard_shortcuts.down": "Ilipat pababa sa talaan",
+  "keyboard_shortcuts.requests": "Buksan ang talaan ng mga kahilingan sa pagsunod",
+  "keyboard_shortcuts.up": "Ilipat pataas sa talaan",
+  "lightbox.close": "Isara",
+  "lightbox.next": "Susunod",
+  "lightbox.previous": "Nakaraan",
+  "link_preview.author": "Ni/ng {name}",
+  "lists.account.add": "Idagdag sa talaan",
+  "lists.account.remove": "Tanggalin mula sa talaan",
+  "lists.new.create": "Idagdag sa talaan",
+  "lists.new.title_placeholder": "Bagong pangalan ng talaan",
+  "lists.replies_policy.title": "Ipakita ang mga tugon sa:",
+  "lists.subheading": "Iyong mga talaan",
+  "loading_indicator.label": "Kumakarga…",
+  "navigation_bar.about": "Tungkol dito",
+  "navigation_bar.blocks": "Nakaharang na mga tagagamit",
+  "navigation_bar.favourites": "Mga paborito",
+  "navigation_bar.lists": "Mga listahan",
+  "navigation_bar.search": "Maghanap",
+  "notification.admin.report": "Iniulat ni {name} si {target}",
+  "notification.follow": "Sinundan ka ni {name}",
+  "notification.follow_request": "Hinihiling ni {name} na sundan ka",
+  "notification.mention": "Binanggit ka ni {name}",
+  "notifications.column_settings.admin.report": "Mga bagong ulat:",
+  "notifications.column_settings.favourite": "Mga paborito:",
+  "notifications.column_settings.follow": "Mga bagong tagasunod:",
+  "notifications.column_settings.update": "Mga pagbago:",
+  "notifications.filter.all": "Lahat",
+  "onboarding.action.back": "Ibalik mo ako",
+  "onboarding.actions.back": "Ibalik mo ako",
+  "onboarding.profile.save_and_continue": "Iimbak at magpatuloy",
+  "onboarding.share.next_steps": "Mga posibleng susunod na hakbang:",
+  "poll.voted": "Binoto mo para sa sagot na ito",
+  "poll_button.remove_poll": "Tanggalin ang boto",
+  "relative_time.days": "{number}a",
+  "relative_time.full.days": "{number, plural, one {# araw} other {# na araw}} ang nakalipas",
+  "relative_time.full.hours": "{number, plural, one {# oras} other {# na oras}} ang nakalipas",
+  "relative_time.full.just_now": "ngayon lang",
+  "relative_time.full.minutes": "{number, plural, one {# minuto} other {# na minuto}} ang nakalipas",
+  "relative_time.full.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang nakalipas",
+  "relative_time.hours": "{number}o",
+  "relative_time.just_now": "ngayon",
+  "relative_time.minutes": "{number}m",
+  "relative_time.seconds": "{number}s",
+  "reply_indicator.cancel": "Ipagpaliban",
+  "report.block": "Harangan",
+  "report.categories.other": "Iba pa",
+  "report.category.title": "Sabihin mo sa amin kung anong nangyari sa {type} na ito",
+  "report.close": "Tapos na",
+  "report.next": "Sunod",
+  "report.reasons.violation": "Lumalabag ito sa mga panuntunan ng serbiro",
+  "report.reasons.violation_description": "Alam mo na lumalabag ito sa mga partikular na panuntunan",
+  "report.rules.title": "Aling mga patakaran ang nilabag?",
+  "report.submit": "Isumite",
+  "report.target": "Iniulat si/ang {target}",
+  "report.thanks.take_action_actionable": "Habang sinusuri namin ito, maaari kang gumawa ng aksyon laban kay/sa {name}:",
+  "report.thanks.title": "Ayaw mo bang makita ito?",
+  "report.thanks.title_actionable": "Salamat sa pag-uulat, titingnan namin ito.",
+  "report_notification.categories.other": "Iba pa",
+  "search_results.all": "Lahat",
+  "server_banner.learn_more": "Matuto nang higit pa",
+  "status.direct_indicator": "Palihim na banggit",
+  "status.edit": "Baguhin",
+  "status.edited": "Binago noong {date}",
+  "status.edited_x_times": "Binago {count, plural, one {{count} beses} other {{count} na beses}}",
+  "status.history.created": "Nilikha ni/ng {name} {date}",
+  "status.history.edited": "Binago ni/ng {name} {date}",
+  "status.mention": "Banggitin ang/si @{name}",
+  "status.more": "Higit pa",
+  "status.reply": "Tumugon",
+  "status.report": "I-ulat si/ang @{name}",
+  "status.sensitive_warning": "Sensitibong nilalaman",
+  "status.share": "Ibahagi",
+  "status.show_less": "Magpakita ng mas kaunti",
+  "status.show_less_all": "Magpakita ng mas kaunti para sa lahat",
+  "status.show_more": "Magpakita ng higit pa",
+  "status.show_more_all": "Magpakita ng higit pa para sa lahat",
+  "status.translate": "Isalin",
+  "status.translated_from_with": "Isalin mula sa {lang} gamit ang {provider}",
+  "status.uncached_media_warning": "Hindi makuha ang paunang tigin",
+  "time_remaining.days": "{number, plural, one {# araw} other {# na araw}} ang natitira",
+  "time_remaining.hours": "{number, plural, one {# oras} other {# na oras}} ang natitira",
+  "time_remaining.minutes": "{number, plural, one {# minuto} other {# na minuto}} ang natitira",
+  "time_remaining.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang natitira",
+  "timeline_hint.remote_resource_not_displayed": "Hindi ipinapakita ang {resource} mula sa ibang mga serbiro.",
+  "timeline_hint.resources.followers": "Mga tagasunod",
+  "timeline_hint.resources.follows": "Mga sinusundan"
 }

+ 6 - 6
app/javascript/mastodon/locales/fo.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Kontoin hjá tær er ikki {locked}. Øll kunnu fylgja tær og lesa tað, tú bert letur fyljgarar lesa.",
   "compose_form.lock_disclaimer.lock": "læst",
   "compose_form.placeholder": "Hvat hevur tú í huga?",
-  "compose_form.poll.add_option": "Legg valmøguleika afturat",
   "compose_form.poll.duration": "Atkvøðugreiðslutíð",
   "compose_form.poll.multiple": "Fleiri valmøguleikar",
   "compose_form.poll.option_placeholder": "Valmøguleiki {number}",
-  "compose_form.poll.remove_option": "Strika hendan valmøguleikan",
   "compose_form.poll.single": "Vel ein",
   "compose_form.poll.switch_to_multiple": "Broyt atkvøðugreiðslu til at loyva fleiri svarum",
   "compose_form.poll.switch_to_single": "Broyt atkvøðugreiðslu til einstakt svar",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Veit myndugleika",
   "follow_request.reject": "Nokta",
   "follow_requests.unlocked_explanation": "Sjálvt um konta tín ikki er læst, so hugsa {domain} starvsfólkini, at tú kanska hevur hug at kanna umbønir um at fylgja frá hesum kontum við hond.",
+  "follow_suggestions.curated_suggestion": "Val umsjónarfólksins",
+  "follow_suggestions.dismiss": "Lat vera við at vísa",
+  "follow_suggestions.personalized_suggestion": "Persónligt uppskot",
+  "follow_suggestions.popular_suggestion": "Vælumtókt uppskot",
+  "follow_suggestions.view_all": "Vís øll",
+  "follow_suggestions.who_to_follow": "Hvørji tú átti at fylgt",
   "followed_tags": "Fylgd frámerki",
   "footer.about": "Um",
   "footer.directory": "Vangaskrá",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Fylg frámerki",
   "hashtag.unfollow": "Gevst at fylgja frámerki",
   "hashtags.and_other": "…og {count, plural, other {# afturat}}",
-  "home.actions.go_to_explore": "Sí rákið",
-  "home.actions.go_to_suggestions": "Finn fólk at fylgja",
   "home.column_settings.basic": "Grundleggjandi",
   "home.column_settings.show_reblogs": "Vís lyft",
   "home.column_settings.show_replies": "Vís svar",
-  "home.explore_prompt.body": "Heimarásin fer at hava eitt bland av postum frá frámerkjunum, sum tú hevur valt at fylgja, brúkarunum, tú hevur valt at fylgja, og postunum, sum tey stimbra. Um tað kennist ov friðarligt, so kanst tú:",
-  "home.explore_prompt.title": "Hetta er tín heimastøð í Mastodon.",
   "home.hide_announcements": "Fjal kunngerðir",
   "home.pending_critical_update.body": "Vinarliga dagfør Mastodon ambætaran hjá tær so skjótt sum møguligt!",
   "home.pending_critical_update.link": "Sí dagføringar",

+ 18 - 4
app/javascript/mastodon/locales/fr-CA.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "verrouillé",
   "compose_form.placeholder": "À quoi pensez-vous?",
   "compose_form.poll.duration": "Durée du sondage",
+  "compose_form.poll.multiple": "Choix multiple",
+  "compose_form.poll.option_placeholder": "Option {number}",
+  "compose_form.poll.single": "Choisissez-en un",
   "compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix",
   "compose_form.poll.switch_to_single": "Changer le sondage pour n'autoriser qu'un seul choix",
+  "compose_form.poll.type": "Style",
+  "compose_form.publish": "Publier",
   "compose_form.publish_form": "Publier",
+  "compose_form.reply": "Répondre",
+  "compose_form.save_changes": "Mis à jour",
   "compose_form.spoiler.marked": "Enlever l'avertissement de contenu",
   "compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu",
+  "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)",
   "confirmation_modal.cancel": "Annuler",
   "confirmations.block.block_and_report": "Bloquer et signaler",
   "confirmations.block.confirm": "Bloquer",
@@ -295,13 +303,9 @@
   "hashtag.follow": "Suivre ce hashtag",
   "hashtag.unfollow": "Ne plus suivre ce hashtag",
   "hashtags.and_other": "…et {count, plural, other {# de plus}}",
-  "home.actions.go_to_explore": "Voir les tendances",
-  "home.actions.go_to_suggestions": "Trouver des personnes à suivre",
   "home.column_settings.basic": "Basique",
   "home.column_settings.show_reblogs": "Afficher boosts",
   "home.column_settings.show_replies": "Afficher réponses",
-  "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'elles boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :",
-  "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.",
   "home.hide_announcements": "Masquer les annonces",
   "home.pending_critical_update.body": "Veuillez mettre à jour votre serveur Mastodon dès que possible !",
   "home.pending_critical_update.link": "Voir les mises à jour",
@@ -514,7 +518,15 @@
   "poll_button.add_poll": "Ajouter un sondage",
   "poll_button.remove_poll": "Supprimer le sondage",
   "privacy.change": "Changer la confidentialité des messages",
+  "privacy.direct.long": "Toutes les personnes mentionnées dans le post",
+  "privacy.direct.short": "Personnes spécifiques",
+  "privacy.private.long": "Seulement vos abonnés",
+  "privacy.private.short": "Abonnés",
+  "privacy.public.long": "Tout le monde sur et en dehors de Mastodon",
   "privacy.public.short": "Public",
+  "privacy.unlisted.additional": "Cette option se comporte exactement comme l'option publique, sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, l'exploration ou la recherche Mastodon, même si vous avez opté pour l'option publique pour l'ensemble de votre compte.",
+  "privacy.unlisted.long": "Moins de fanfares algorithmiques",
+  "privacy.unlisted.short": "Public calme",
   "privacy_policy.last_updated": "Dernière mise à jour {date}",
   "privacy_policy.title": "Politique de confidentialité",
   "recommended": "Recommandé",
@@ -532,7 +544,9 @@
   "relative_time.minutes": "{number} min",
   "relative_time.seconds": "{number} s",
   "relative_time.today": "aujourd’hui",
+  "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}",
   "reply_indicator.cancel": "Annuler",
+  "reply_indicator.poll": "Sondage",
   "report.block": "Bloquer",
   "report.block_explanation": "Vous ne verrez plus les publications de ce compte. Il ne pourra ni vous suivre ni voir vos publications. Il pourra savoir qu'il a été bloqué.",
   "report.categories.legal": "Légal",

+ 18 - 4
app/javascript/mastodon/locales/fr.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "verrouillé",
   "compose_form.placeholder": "Qu’avez-vous en tête ?",
   "compose_form.poll.duration": "Durée du sondage",
+  "compose_form.poll.multiple": "Choix multiple",
+  "compose_form.poll.option_placeholder": "Option {number}",
+  "compose_form.poll.single": "Choisissez-en un",
   "compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix",
   "compose_form.poll.switch_to_single": "Modifier le sondage pour autoriser qu'un seul choix",
+  "compose_form.poll.type": "Style",
+  "compose_form.publish": "Publier",
   "compose_form.publish_form": "Nouvelle publication",
+  "compose_form.reply": "Répondre",
+  "compose_form.save_changes": "Mis à jour",
   "compose_form.spoiler.marked": "Enlever l’avertissement de contenu",
   "compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu",
+  "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)",
   "confirmation_modal.cancel": "Annuler",
   "confirmations.block.block_and_report": "Bloquer et signaler",
   "confirmations.block.confirm": "Bloquer",
@@ -295,13 +303,9 @@
   "hashtag.follow": "Suivre le hashtag",
   "hashtag.unfollow": "Ne plus suivre le hashtag",
   "hashtags.and_other": "…et {count, plural, other {# de plus}}",
-  "home.actions.go_to_explore": "Voir les tendances",
-  "home.actions.go_to_suggestions": "Trouver des personnes à suivre",
   "home.column_settings.basic": "Basique",
   "home.column_settings.show_reblogs": "Afficher les partages",
   "home.column_settings.show_replies": "Afficher les réponses",
-  "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'elles boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :",
-  "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.",
   "home.hide_announcements": "Masquer les annonces",
   "home.pending_critical_update.body": "Veuillez mettre à jour votre serveur Mastodon dès que possible !",
   "home.pending_critical_update.link": "Voir les mises à jour",
@@ -514,7 +518,15 @@
   "poll_button.add_poll": "Ajouter un sondage",
   "poll_button.remove_poll": "Supprimer le sondage",
   "privacy.change": "Ajuster la confidentialité du message",
+  "privacy.direct.long": "Toutes les personnes mentionnées dans le post",
+  "privacy.direct.short": "Personnes spécifiques",
+  "privacy.private.long": "Seulement vos abonnés",
+  "privacy.private.short": "Abonnés",
+  "privacy.public.long": "Tout le monde sur et en dehors de Mastodon",
   "privacy.public.short": "Public",
+  "privacy.unlisted.additional": "Cette option se comporte exactement comme l'option publique, sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, l'exploration ou la recherche Mastodon, même si vous avez opté pour l'option publique pour l'ensemble de votre compte.",
+  "privacy.unlisted.long": "Moins de fanfares algorithmiques",
+  "privacy.unlisted.short": "Public calme",
   "privacy_policy.last_updated": "Dernière mise à jour {date}",
   "privacy_policy.title": "Politique de confidentialité",
   "recommended": "Recommandé",
@@ -532,7 +544,9 @@
   "relative_time.minutes": "{number} min",
   "relative_time.seconds": "{number} s",
   "relative_time.today": "aujourd’hui",
+  "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}",
   "reply_indicator.cancel": "Annuler",
+  "reply_indicator.poll": "Sondage",
   "report.block": "Bloquer",
   "report.block_explanation": "Vous ne verrez plus les messages de ce profil, et il ne pourra ni vous suivre ni voir vos messages. Il pourra savoir qu'il a été bloqué.",
   "report.categories.legal": "Légal",

+ 24 - 4
app/javascript/mastodon/locales/fy.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "beskoattele",
   "compose_form.placeholder": "Wat wolle jo kwyt?",
   "compose_form.poll.duration": "Doer fan de enkête",
+  "compose_form.poll.multiple": "Mearkar",
+  "compose_form.poll.option_placeholder": "Opsje {number}",
+  "compose_form.poll.single": "Kies ien",
   "compose_form.poll.switch_to_multiple": "Enkête wizigje om meardere karren ta te stean",
   "compose_form.poll.switch_to_single": "Enkête wizigje om in inkelde kar ta te stean",
+  "compose_form.poll.type": "Styl",
+  "compose_form.publish": "Toot",
   "compose_form.publish_form": "Publisearje",
+  "compose_form.reply": "Reagearje",
+  "compose_form.save_changes": "Bywurkje",
   "compose_form.spoiler.marked": "Ynhâldswarskôging fuortsmite",
   "compose_form.spoiler.unmarked": "Ynhâldswarskôging tafoegje",
+  "compose_form.spoiler_placeholder": "Ynhâldswarskôging (opsjoneel)",
   "confirmation_modal.cancel": "Annulearje",
   "confirmations.block.block_and_report": "Blokkearje en rapportearje",
   "confirmations.block.confirm": "Blokkearje",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Goedkarre",
   "follow_request.reject": "Wegerje",
   "follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hânmjittich kontrolearje.",
+  "follow_suggestions.curated_suggestion": "Kar fan de moderator",
+  "follow_suggestions.dismiss": "Net mear werjaan",
+  "follow_suggestions.personalized_suggestion": "Personalisearre suggestje",
+  "follow_suggestions.popular_suggestion": "Populêre suggestje",
+  "follow_suggestions.view_all": "Alles werjaan",
+  "follow_suggestions.who_to_follow": "Wa te folgjen",
   "followed_tags": "Folge hashtags",
   "footer.about": "Oer",
   "footer.directory": "Profylmap",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Hashtag folgje",
   "hashtag.unfollow": "Hashtag ûntfolgje",
   "hashtags.and_other": "…en {count, plural, one {}other {# mear}}",
-  "home.actions.go_to_explore": "De aktuele trends besjen",
-  "home.actions.go_to_suggestions": "Sykje minsken om te folgjen",
   "home.column_settings.basic": "Algemien",
   "home.column_settings.show_reblogs": "Boosts toane",
   "home.column_settings.show_replies": "Reaksjes toane",
-  "home.explore_prompt.body": "Jo starttiidline befettet in miks fan berjochten mei hashtags dy’t jo keazen hawwe om te folgjen, fan minsken dy’t jo keazen hawwe om te folgjen en berjochten dy’t se booste. As jo dit te rêstich fine, kinne jo:",
-  "home.explore_prompt.title": "Dit is jo thúsbasis op Mastodon.",
   "home.hide_announcements": "Meidielingen ferstopje",
   "home.pending_critical_update.body": "Fernij sa gau as mooglik jo Mastodon-server!",
   "home.pending_critical_update.link": "Fernijingen besjen",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Poll tafoegje",
   "poll_button.remove_poll": "Enkête fuortsmite",
   "privacy.change": "Sichtberheid fan berjocht oanpasse",
+  "privacy.direct.long": "Elkenien dy’ yn it berjocht fermeld wurdt",
+  "privacy.direct.short": "Bepaalde minsken",
+  "privacy.private.long": "Allinnich jo folgers",
+  "privacy.private.short": "Folgers",
+  "privacy.public.long": "Elkenien op Mastodon en dêrbûten",
   "privacy.public.short": "Iepenbier",
+  "privacy.unlisted.additional": "Dit is fergelykber mei iepenbier, útsein dat it berjocht net ferskynt op iepenbiere tiidlijnen of hashtags, ûnder ferkenne of Mastodon sykje, sels as jo jo account dêrfoar ynsteld hawwe.",
+  "privacy.unlisted.long": "Minder algoritmyske fanfare",
+  "privacy.unlisted.short": "Minder iepenbier",
   "privacy_policy.last_updated": "Lêst bywurke op {date}",
   "privacy_policy.title": "Privacybelied",
   "recommended": "Oanrekommandearre",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "hjoed",
+  "reply_indicator.attachments": "{count, plural, one {# bylage} other {# bylagen}}",
   "reply_indicator.cancel": "Annulearje",
+  "reply_indicator.poll": "Peiling",
   "report.block": "Blokkearje",
   "report.block_explanation": "Jo sille harren berjochten net sjen kinne. Se sille jo berjochten net sjen kinne en jo net folgje kinne. Se sille wol sjen kinne dat se blokkearre binne.",
   "report.categories.legal": "Juridysk",

+ 6 - 0
app/javascript/mastodon/locales/ga.json

@@ -226,6 +226,12 @@
   "follow_request.authorize": "Ceadaigh",
   "follow_request.reject": "Diúltaigh",
   "follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.",
+  "follow_suggestions.curated_suggestion": "Rogha an eagarthóra",
+  "follow_suggestions.dismiss": "Ná taispeáin arís",
+  "follow_suggestions.personalized_suggestion": "Nod pearsantaithe",
+  "follow_suggestions.popular_suggestion": "Nod coiteann",
+  "follow_suggestions.view_all": "Féach uile",
+  "follow_suggestions.who_to_follow": "Cé le leanúint",
   "footer.about": "Maidir le",
   "footer.directory": "Eolaire próifílí",
   "footer.get_app": "Faigh an aip",

+ 39 - 4
app/javascript/mastodon/locales/gd.json

@@ -21,6 +21,7 @@
   "account.blocked": "’Ga bhacadh",
   "account.browse_more_on_origin_server": "Rùraich barrachd dheth air a’ phròifil thùsail",
   "account.cancel_follow_request": "Sguir dhen leantainn",
+  "account.copy": "Dèan lethbhreac dhen cheangal dhan phròifil",
   "account.direct": "Thoir iomradh air @{name} gu prìobhaideach",
   "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris",
   "account.domain_blocked": "Chaidh an àrainn a bhacadh",
@@ -31,6 +32,7 @@
   "account.featured_tags.last_status_never": "Gun phost",
   "account.featured_tags.title": "Na tagaichean hais brosnaichte aig {name}",
   "account.follow": "Lean",
+  "account.follow_back": "Lean air ais",
   "account.followers": "Luchd-leantainn",
   "account.followers.empty": "Chan eil neach sam bith a’ leantainn air a’ chleachdaiche seo fhathast.",
   "account.followers_counter": "{count, plural, one {{counter} neach-leantainn} two {{counter} neach-leantainn} few {{counter} luchd-leantainn} other {{counter} luchd-leantainn}}",
@@ -51,6 +53,7 @@
   "account.mute_notifications_short": "Mùch na brathan",
   "account.mute_short": "Mùch",
   "account.muted": "’Ga mhùchadh",
+  "account.mutual": "Co-dhàimh",
   "account.no_bio": "Cha deach tuairisgeul a sholar.",
   "account.open_original_page": "Fosgail an duilleag thùsail",
   "account.posts": "Postaichean",
@@ -143,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "glaiste",
   "compose_form.placeholder": "Dè tha air d’ aire?",
   "compose_form.poll.duration": "Faide a’ chunntais-bheachd",
+  "compose_form.poll.multiple": "Iomadh roghainn",
+  "compose_form.poll.option_placeholder": "Roghainn {number}",
+  "compose_form.poll.single": "Tagh aonan",
   "compose_form.poll.switch_to_multiple": "Atharraich an cunntas-bheachd ach an gabh iomadh roghainn a thaghadh",
   "compose_form.poll.switch_to_single": "Atharraich an cunntas-bheachd gus nach gabh ach aon roghainn a thaghadh",
+  "compose_form.poll.type": "Stoidhle",
+  "compose_form.publish": "Postaich",
   "compose_form.publish_form": "Post ùr",
+  "compose_form.reply": "Freagair",
+  "compose_form.save_changes": "Ùraich",
   "compose_form.spoiler.marked": "Thoir air falbh an rabhadh susbainte",
   "compose_form.spoiler.unmarked": "Cuir rabhadh susbainte ris",
+  "compose_form.spoiler_placeholder": "Rabhadh susbainte (roghainneil)",
   "confirmation_modal.cancel": "Sguir dheth",
   "confirmations.block.block_and_report": "Bac ⁊ dèan gearan",
   "confirmations.block.confirm": "Bac",
@@ -179,6 +190,7 @@
   "conversation.mark_as_read": "Cuir comharra gun deach a leughadh",
   "conversation.open": "Seall an còmhradh",
   "conversation.with": "Còmhla ri {names}",
+  "copy_icon_button.copied": "Chaidh lethbhreac dheth a chur air an stòr-bhòrd",
   "copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh",
   "copypaste.copy_to_clipboard": "Cuir lethbhreac dheth air an stòr-bhòrd",
   "directory.federated": "On cho-shaoghal aithnichte",
@@ -210,6 +222,7 @@
   "emoji_button.search_results": "Toraidhean an luirg",
   "emoji_button.symbols": "Samhlaidhean",
   "emoji_button.travel": "Siubhal ⁊ àitichean",
+  "empty_column.account_hides_collections": "Chuir an cleachdaiche seo roimhe nach eil am fiosrachadh seo ri fhaighinn",
   "empty_column.account_suspended": "Chaidh an cunntas a chur à rèim",
   "empty_column.account_timeline": "Chan eil post an-seo!",
   "empty_column.account_unavailable": "Chan eil a’ phròifil ri làimh",
@@ -264,6 +277,12 @@
   "follow_request.authorize": "Ùghdarraich",
   "follow_request.reject": "Diùlt",
   "follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.",
+  "follow_suggestions.curated_suggestion": "Roghainn an deasaiche",
+  "follow_suggestions.dismiss": "Na seall seo a-rithist",
+  "follow_suggestions.personalized_suggestion": "Moladh pearsanaichte",
+  "follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr",
+  "follow_suggestions.view_all": "Seall na h-uile",
+  "follow_suggestions.who_to_follow": "Cò a leanas tu",
   "followed_tags": "Tagaichean hais ’gan leantainn",
   "footer.about": "Mu dhèidhinn",
   "footer.directory": "Eòlaire nam pròifil",
@@ -290,13 +309,9 @@
   "hashtag.follow": "Lean an taga hais",
   "hashtag.unfollow": "Na lean an taga hais tuilleadh",
   "hashtags.and_other": "…agus {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}",
-  "home.actions.go_to_explore": "Faic na tha a’ treandadh",
-  "home.actions.go_to_suggestions": "Lorg daoine gus an leantainn",
   "home.column_settings.basic": "Bunasach",
   "home.column_settings.show_reblogs": "Seall na brosnachaidhean",
   "home.column_settings.show_replies": "Seall na freagairtean",
-  "home.explore_prompt.body": "Bidh measgachadh de phostaichean o na tagaichean hais a leanas tu, na daoine a leanas tu is na postaichean a bhrosnaicheas iad air do dhachaigh. Ma tha cùisean ro shàmhach dhut, seo nas urrainn dhut a dhèanamh:",
-  "home.explore_prompt.title": "Seo do dhachaigh am broinn Mastodon.",
   "home.hide_announcements": "Falaich na brathan-fios",
   "home.pending_critical_update.body": "Ùraich am frithealaiche Mastodon agad cho luath ’s a ghabhas!",
   "home.pending_critical_update.link": "Faic na h-ùrachaidhean",
@@ -377,6 +392,7 @@
   "lists.search": "Lorg am measg nan daoine a leanas tu",
   "lists.subheading": "Na liostaichean agad",
   "load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}",
+  "loading_indicator.label": "’Ga luchdadh…",
   "media_gallery.toggle_visible": "{number, plural, 1 {Falaich an dealbh} one {Falaich na dealbhan} two {Falaich na dealbhan} few {Falaich na dealbhan} other {Falaich na dealbhan}}",
   "moved_to_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas on a rinn thu imrich gu {movedToAccount}.",
   "mute_modal.duration": "Faide",
@@ -464,6 +480,15 @@
   "onboarding.follows.empty": "Gu mì-fhortanach, chan urrainn dhuinn toradh a shealltainn an-dràsta. Feuch gleus an luirg no duilleag an rùrachaidh airson daoine ri leantainn a lorg no feuch ris a-rithist an ceann tamaill.",
   "onboarding.follows.lead": "’S e do prìomh-doras do Mhastodon a th’ ann san dachaigh. Mar as motha an t-uiread de dhaoine a leanas tu ’s ann nas beòthaile inntinniche a bhios i. Seo moladh no dhà dhut airson tòiseachadh:",
   "onboarding.follows.title": "Cuir dreach pearsanta air do dhachaigh",
+  "onboarding.profile.discoverable": "Bu mhath leam gun gabh a’ phròifil agam a lorg",
+  "onboarding.profile.display_name": "Ainm-taisbeanaidh",
+  "onboarding.profile.display_name_hint": "D’ ainm slàn no spòrsail…",
+  "onboarding.profile.note": "Cunntas-beatha",
+  "onboarding.profile.note_hint": "’S urrainn dhut @iomradh a thoirt air càch no air #tagaicheanHais…",
+  "onboarding.profile.save_and_continue": "Sàbhail ’s lean air adhart",
+  "onboarding.profile.title": "Suidheachadh na pròifile",
+  "onboarding.profile.upload_avatar": "Luchdaich suas dealbh na pròifil",
+  "onboarding.profile.upload_header": "Luchdaich suas bann-cinn na pròifil",
   "onboarding.share.lead": "Innis do dhaoine mar a gheibh iad grèim ort air Mastodon!",
   "onboarding.share.message": "Is mise {username} air #Mastodon! Thig ’gam leantainn air {url}",
   "onboarding.share.next_steps": "Ceuman eile as urrainn dhut gabhail:",
@@ -497,9 +522,16 @@
   "poll_button.add_poll": "Cuir cunntas-bheachd ris",
   "poll_button.remove_poll": "Thoir air falbh an cunntas-bheachd",
   "privacy.change": "Cuir gleus air prìobhaideachd a’ phuist",
+  "privacy.direct.long": "A h-uile duine air a bheil iomradh sa phost",
+  "privacy.direct.short": "Daoine àraidh",
+  "privacy.private.long": "An luchd-leantainn agad a-mhàin",
+  "privacy.private.short": "Luchd-leantainn",
+  "privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon",
   "privacy.public.short": "Poblach",
+  "privacy.unlisted.short": "Poblach ach sàmhach",
   "privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}",
   "privacy_policy.title": "Poileasaidh prìobhaideachd",
+  "recommended": "Molta",
   "refresh": "Ath-nuadhaich",
   "regeneration_indicator.label": "’Ga luchdadh…",
   "regeneration_indicator.sublabel": "Tha do dhachaigh ’ga ullachadh!",
@@ -514,7 +546,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}d",
   "relative_time.today": "an-diugh",
+  "reply_indicator.attachments": "{count, plural, one {# cheanglachan} two {# cheanglachan} few {# ceanglachain} other {# ceanglachan}}",
   "reply_indicator.cancel": "Sguir dheth",
+  "reply_indicator.poll": "Cunntas-bheachd",
   "report.block": "Bac",
   "report.block_explanation": "Chan fhaic thu na postaichean aca. Chan fhaic iad na postaichean agad is chan urrainn dhaibh do leantainn. Bheir iad an aire gun deach am bacadh.",
   "report.categories.legal": "Laghail",
@@ -570,6 +604,7 @@
   "search.quick_action.status_search": "Postaichean a fhreagras ri {x}",
   "search.search_or_paste": "Dèan lorg no cuir a-steach URL",
   "search_popout.full_text_search_disabled_message": "Chan eil seo ri fhaighinn air {domain}.",
+  "search_popout.full_text_search_logged_out_message": "Chan eil seo ri fhaighinn ach nuair a bhios tu air do chlàradh a-steach.",
   "search_popout.language_code": "Còd cànain ISO",
   "search_popout.options": "Roghainnean luirg",
   "search_popout.quick_actions": "Grad-ghnìomhan",

+ 24 - 4
app/javascript/mastodon/locales/gl.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "bloqueada",
   "compose_form.placeholder": "Que contas?",
   "compose_form.poll.duration": "Duración da enquisa",
+  "compose_form.poll.multiple": "Escolla múltiple",
+  "compose_form.poll.option_placeholder": "Opción {number}",
+  "compose_form.poll.single": "Elixe unha",
   "compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas",
   "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa opción",
+  "compose_form.poll.type": "Estilo",
+  "compose_form.publish": "Publicar",
   "compose_form.publish_form": "Publicar",
+  "compose_form.reply": "Responder",
+  "compose_form.save_changes": "Actualizar",
   "compose_form.spoiler.marked": "Retirar o aviso sobre o contido",
   "compose_form.spoiler.unmarked": "Engadir aviso sobre o contido",
+  "compose_form.spoiler_placeholder": "Aviso sobre o contido (optativo)",
   "confirmation_modal.cancel": "Cancelar",
   "confirmations.block.block_and_report": "Bloquear e denunciar",
   "confirmations.block.confirm": "Bloquear",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rexeitar",
   "follow_requests.unlocked_explanation": "Malia que a túa conta non é privada, a administración de {domain} pensou que quizabes terías que revisar de xeito manual as solicitudes de seguiminto.",
+  "follow_suggestions.curated_suggestion": "O servidor suxíreche",
+  "follow_suggestions.dismiss": "Non mostrar máis",
+  "follow_suggestions.personalized_suggestion": "Suxestión personalizada",
+  "follow_suggestions.popular_suggestion": "Suxestión popular",
+  "follow_suggestions.view_all": "Ver todas",
+  "follow_suggestions.who_to_follow": "A quen seguir",
   "followed_tags": "Cancelos seguidos",
   "footer.about": "Acerca de",
   "footer.directory": "Directorio de perfís",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Seguir cancelo",
   "hashtag.unfollow": "Deixar de seguir cancelo",
   "hashtags.and_other": "…e {count, plural, one {}other {# máis}}",
-  "home.actions.go_to_explore": "Mira do que se está a falar",
-  "home.actions.go_to_suggestions": "Atopa persoas ás que seguir",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Amosar compartidos",
   "home.column_settings.show_replies": "Amosar respostas",
-  "home.explore_prompt.body": "A túa cronoloxía de inicio vai ter unha mistura de publicacións procedentes dos cancelos que segues, das persoas que elexiches seguir e das publicacións que elas promoven. Se non tes moito que ler, podes probar a:",
-  "home.explore_prompt.title": "Iste é o teu fogar en Mastodon.",
   "home.hide_announcements": "Agochar anuncios",
   "home.pending_critical_update.body": "Por favor actualiza o antes posible o teu servidor Mastodon!",
   "home.pending_critical_update.link": "Mira as actualizacións",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Engadir unha enquisa",
   "poll_button.remove_poll": "Eliminar enquisa",
   "privacy.change": "Axustar privacidade",
+  "privacy.direct.long": "Todas as mencionadas na publicación",
+  "privacy.direct.short": "Persoas concretas",
+  "privacy.private.long": "Só para seguidoras",
+  "privacy.private.short": "Seguidoras",
+  "privacy.public.long": "Para todas dentro e fóra de Mastodon",
   "privacy.public.short": "Público",
+  "privacy.unlisted.additional": "Do mesmo xeito que público, menos que a publicación non aparecerá nas cronoloxías en directo ou nos cancelos, en descubrir ou nas buscas de Mastodon, incluso se estivese establecido nas opcións xerais da conta.",
+  "privacy.unlisted.long": "Menor implicación dos algoritmos",
+  "privacy.unlisted.short": "Público limitado",
   "privacy_policy.last_updated": "Actualizado por última vez no {date}",
   "privacy_policy.title": "Política de Privacidade",
   "recommended": "Aconsellable",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "hoxe",
+  "reply_indicator.attachments": "{count, plural, one {# adxunto} other {# adxuntos}}",
   "reply_indicator.cancel": "Desbotar",
+  "reply_indicator.poll": "Enquisa",
   "report.block": "Bloquear",
   "report.block_explanation": "Non vas ver as súas publicacións. Nin verá as túas publicacións nin poderá seguirte. Poderá comprobar que as bloqueaches.",
   "report.categories.legal": "Legal",

+ 9 - 6
app/javascript/mastodon/locales/he.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.",
   "compose_form.lock_disclaimer.lock": "נעול",
   "compose_form.placeholder": "על מה את.ה חושב.ת?",
-  "compose_form.poll.add_option": "הוספת אפשרות",
   "compose_form.poll.duration": "משך הסקר",
   "compose_form.poll.multiple": "בחירה מרובה",
   "compose_form.poll.option_placeholder": "אפשרות {number}",
-  "compose_form.poll.remove_option": "הסרת אפשרות זו",
   "compose_form.poll.single": "נא לבחור",
   "compose_form.poll.switch_to_multiple": "אפשרו בחירה מרובה בסקר",
   "compose_form.poll.switch_to_single": "אפשרו בחירה בודדת בסקר",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "הרשאה",
   "follow_request.reject": "דחיה",
   "follow_requests.unlocked_explanation": "למרות שחשבונך אינו נעול, צוות {domain} חושב שאולי כדאי לוודא את בקשות המעקב האלה ידנית.",
+  "follow_suggestions.curated_suggestion": "בחירת העורכים",
+  "follow_suggestions.dismiss": "לא להציג שוב",
+  "follow_suggestions.personalized_suggestion": "הצעות מותאמות אישית",
+  "follow_suggestions.popular_suggestion": "הצעה פופולרית",
+  "follow_suggestions.view_all": "צפיה בכל",
+  "follow_suggestions.who_to_follow": "אחרי מי לעקוב",
   "followed_tags": "התגיות שהחשבון שלך עוקב אחריהן",
   "footer.about": "אודות",
   "footer.directory": "ספריית פרופילים",
@@ -305,13 +309,9 @@
   "hashtag.follow": "לעקוב אחרי תגית",
   "hashtag.unfollow": "להפסיק לעקוב אחרי תגית",
   "hashtags.and_other": "…{count, plural,other {ועוד #}}",
-  "home.actions.go_to_explore": "הצגת מגמות",
-  "home.actions.go_to_suggestions": "למצוא א.נשים לעקוב אחריהן.ם",
   "home.column_settings.basic": "למתחילים",
   "home.column_settings.show_reblogs": "הצגת הדהודים",
   "home.column_settings.show_replies": "הצגת תגובות",
-  "home.explore_prompt.body": "פיד הבית שלך יכיל תערובת של הודעות מהתגיות והאנשים שבחרת למעקב, וההודעות שהנעקבים בוחרים להדהד. אם זה נראה שקט מדי כרגע אז מה לגבי:",
-  "home.explore_prompt.title": "זהו בסיס הבית שלך בתוך מסטודון.",
   "home.hide_announcements": "הסתר הכרזות",
   "home.pending_critical_update.body": "יש לעדכן את תוכנת מסטודון בהקדם האפשרי!",
   "home.pending_critical_update.link": "צפיה בעדכונים",
@@ -530,6 +530,9 @@
   "privacy.private.short": "עוקבים",
   "privacy.public.long": "כל הגולשים, מחוברים למסטודון או לא",
   "privacy.public.short": "פומבי",
+  "privacy.unlisted.additional": "ההתנהגות דומה להודעה ציבורית, מלבד שההודעה לא תופיע בפיד החי המקומי או בתגיות, תגליות או חיפוש מסטודון, אפילו אם ביקשת שהחשבון כולו יהיה פומבי.",
+  "privacy.unlisted.long": "פחות חשיפה לאלגוריתמים",
+  "privacy.unlisted.short": "ציבורי שקט",
   "privacy_policy.last_updated": "עודכן לאחרונה {date}",
   "privacy_policy.title": "מדיניות פרטיות",
   "recommended": "מומלץ",

+ 0 - 2
app/javascript/mastodon/locales/hi.json

@@ -277,8 +277,6 @@
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "hashtag.follow": "हैशटैग को फॉलो करें",
   "hashtag.unfollow": "हैशटैग को उनफ़ोल्लोव करें",
-  "home.actions.go_to_explore": "देखिए क्या पक रहा है",
-  "home.actions.go_to_suggestions": "अनुसरने के लिए लोगो को ढूंढे",
   "home.column_settings.basic": "बुनियादी",
   "home.column_settings.show_reblogs": "बूस्ट दिखाए",
   "home.column_settings.show_replies": "जवाबों को दिखाए",

+ 0 - 1
app/javascript/mastodon/locales/hr.json

@@ -261,7 +261,6 @@
   "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovaj stupac",
   "hashtag.follow": "Prati hashtag",
   "hashtag.unfollow": "Prestani pratiti hashtag",
-  "home.actions.go_to_explore": "Vidi trendove",
   "home.column_settings.basic": "Osnovno",
   "home.column_settings.show_reblogs": "Pokaži boostove",
   "home.column_settings.show_replies": "Pokaži odgovore",

+ 15 - 15
app/javascript/mastodon/locales/hu.json

@@ -145,12 +145,10 @@
   "compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt bejegyzéseket.",
   "compose_form.lock_disclaimer.lock": "zárolva",
   "compose_form.placeholder": "Mi jár a fejedben?",
-  "compose_form.poll.add_option": "Opció hozzáadása",
   "compose_form.poll.duration": "Szavazás időtartama",
-  "compose_form.poll.multiple": "Több választás",
-  "compose_form.poll.option_placeholder": "Opció {number}",
-  "compose_form.poll.remove_option": "Opció eltávolítása",
-  "compose_form.poll.single": "Egy választása",
+  "compose_form.poll.multiple": "Több lehetőség",
+  "compose_form.poll.option_placeholder": "Válasz {number}",
+  "compose_form.poll.single": "Egyetlen válasz",
   "compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra",
   "compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra",
   "compose_form.poll.type": "Stílus",
@@ -160,7 +158,7 @@
   "compose_form.save_changes": "Frissítés",
   "compose_form.spoiler.marked": "Tartalmi figyelmeztetés eltávolítása",
   "compose_form.spoiler.unmarked": "Tartalmi figyelmeztetés hozzáadása",
-  "compose_form.spoiler_placeholder": "Tartalom figyelmeztetés (opcionális)",
+  "compose_form.spoiler_placeholder": "Tartalmi figyelmeztetés (opcionális)",
   "confirmation_modal.cancel": "Mégsem",
   "confirmations.block.block_and_report": "Letiltás és jelentés",
   "confirmations.block.confirm": "Letiltás",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Hitelesítés",
   "follow_request.reject": "Elutasítás",
   "follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni ezen fiókok követési kéréseit.",
+  "follow_suggestions.curated_suggestion": "Szerkesztői ajánlat",
+  "follow_suggestions.dismiss": "Ne jelenjen meg újra",
+  "follow_suggestions.personalized_suggestion": "Személyre szabott javaslat",
+  "follow_suggestions.popular_suggestion": "Népszerű javaslat",
+  "follow_suggestions.view_all": "Összes megtekintése",
+  "follow_suggestions.who_to_follow": "Kit érdemes követni",
   "followed_tags": "Követett hashtagek",
   "footer.about": "Névjegy",
   "footer.directory": "Profiltár",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Hashtag követése",
   "hashtag.unfollow": "Hashtag követésének megszüntetése",
   "hashtags.and_other": "…és {count, plural, other {# további}}",
-  "home.actions.go_to_explore": "Felkapottak megtekintése",
-  "home.actions.go_to_suggestions": "Követhetők keresése",
   "home.column_settings.basic": "Általános",
   "home.column_settings.show_reblogs": "Megtolások megjelenítése",
   "home.column_settings.show_replies": "Válaszok megjelenítése",
-  "home.explore_prompt.body": "A saját hírfolyam a követésre kiválasztott hashtagek, a követésre kiválasztott személyek és az általuk népszerűsített bejegyzések keverékét tartalmazza. Ha csendesnek tűnik, akkor megpróbálhatod ezeket:",
-  "home.explore_prompt.title": "Ez a kezdőpontod a Mastodonon belül.",
   "home.hide_announcements": "Közlemények elrejtése",
   "home.pending_critical_update.body": "A lehető leghamarabb frissítsd a Mastodon kiszolgálódat!",
   "home.pending_critical_update.link": "Frissítések megtekintése",
@@ -524,15 +524,15 @@
   "poll_button.add_poll": "Új szavazás",
   "poll_button.remove_poll": "Szavazás eltávolítása",
   "privacy.change": "Bejegyzés láthatóságának módosítása",
-  "privacy.direct.long": "Mindenki, akit a bejegyzésben említettek",
-  "privacy.direct.short": "Adott személyek",
-  "privacy.private.long": "Csak a követők",
+  "privacy.direct.long": "Mindenki, akit a bejegyzés említ",
+  "privacy.direct.short": "Megadott személyek",
+  "privacy.private.long": "Csak a követőid",
   "privacy.private.short": "Követők",
   "privacy.public.long": "Bárki a Mastodonon és azon kívül",
   "privacy.public.short": "Nyilvános",
-  "privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírcsatornákban vagy hashtagokban, felfedezésben vagy a Mastodon keresésben, még akkor sem, ha az egész fiókra bejelentkezetünk.",
+  "privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírfolyamokban, hashtagekben, felfedezésben vagy a Mastodonos keresésben, még akkor sem, ha ezt az egész fiókra engedélyezted.",
   "privacy.unlisted.long": "Kevesebb algoritmikus fanfár",
-  "privacy.unlisted.short": "Csendes nyilvánosság",
+  "privacy.unlisted.short": "Csendes nyilvános",
   "privacy_policy.last_updated": "Utoljára frissítve: {date}",
   "privacy_policy.title": "Adatvédelmi szabályzat",
   "recommended": "Ajánlott",

+ 90 - 0
app/javascript/mastodon/locales/ia.json

@@ -2,15 +2,22 @@
   "about.blocks": "Servitores moderate",
   "about.contact": "Contacto:",
   "about.disclaimer": "Mastodon es software libere, de codice aperte, e un marca de Mastodon gGmbH.",
+  "about.domain_blocks.no_reason_available": "Ration non disponibile",
+  "about.domain_blocks.silenced.title": "Limitate",
+  "about.domain_blocks.suspended.title": "Suspendite",
+  "about.not_available": "Iste information non faceva disponibile in iste servitor.",
   "about.rules": "Regulas del servitor",
   "account.account_note_header": "Nota",
   "account.add_or_remove_from_list": "Adder o remover ab listas",
   "account.badges.group": "Gruppo",
   "account.block": "Blocar @{name}",
+  "account.block_domain": "Blocar dominio {domain}",
   "account.block_short": "Blocar",
   "account.blocked": "Blocate",
   "account.browse_more_on_origin_server": "Navigar plus sur le profilo original",
   "account.copy": "Copiar ligamine a profilo",
+  "account.direct": "Mentionar privatemente a @{name}",
+  "account.disable_notifications": "Stoppar le notificationes quando @{name} publica",
   "account.domain_blocked": "Dominio blocate",
   "account.edit_profile": "Modificar profilo",
   "account.enable_notifications": "Notifica me quando @{name} publica",
@@ -24,11 +31,14 @@
   "account.followers.empty": "Iste usator ancora non ha sequitores.",
   "account.followers_counter": "{count, plural, one {{counter} sequitor} other {{counter} sequitores}}",
   "account.following": "Sequente",
+  "account.follows.empty": "Iste usator ancora non seque nemo.",
   "account.go_to_profile": "Vader al profilo",
   "account.hide_reblogs": "Celar boosts de @{name}",
+  "account.in_memoriam": "In Memoriam.",
   "account.languages": "Cambiar le linguas subscribite",
   "account.link_verified_on": "Le proprietate de iste ligamine esseva verificate le {date}",
   "account.locked_info": "Le stato de confidentialitate de iste conto es definite a blocate. Le proprietario revisa manualmente qui pote sequer lo.",
+  "account.media": "Multimedia",
   "account.mention": "Mentionar @{name}",
   "account.moved_to": "{name} indicava que lor nove conto ora es:",
   "account.mute": "Silentiar @{name}",
@@ -39,16 +49,21 @@
   "account.open_original_page": "Aperir le pagina original",
   "account.posts": "Messages",
   "account.posts_with_replies": "Messages e responsas",
+  "account.requested": "Attendente le approbation. Clicca pro cancellar le requesta de sequer",
+  "account.requested_follow": "{name} habeva requestate sequer te",
   "account.share": "Compartir profilo de @{name}",
   "account.show_reblogs": "Monstrar responsas de @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
   "account.unblock": "Disblocar @{name}",
   "account.unblock_domain": "Disblocar dominio {domain}",
   "account.unblock_short": "Disblocar",
   "account.unendorse": "Non evidentiar sur le profilo",
+  "account.unfollow": "Non plus sequer",
   "account.unmute": "Non plus silentiar @{name}",
   "account.unmute_notifications_short": "Non plus silentiar le notificationes",
   "account.unmute_short": "Non plus silentiar",
   "account_note.placeholder": "Clicca pro adder un nota",
+  "admin.dashboard.retention.average": "Median",
   "admin.dashboard.retention.cohort_size": "Nove usatores",
   "admin.impact_report.instance_followers": "Sequitores que nostre usatores poterea perder",
   "admin.impact_report.instance_follows": "Sequitores que lor usatores poterea perder",
@@ -61,6 +76,7 @@
   "bundle_column_error.return": "Retornar al initio",
   "bundle_modal_error.close": "Clauder",
   "bundle_modal_error.retry": "Tentar novemente",
+  "closed_registrations_modal.description": "Crear un conto in {domain} actualmente non es possibile, ma considera que tu non besonia un conto specific in {domain} pro usar Mastodon.",
   "closed_registrations_modal.find_another_server": "Trovar altere servitor",
   "column.about": "A proposito de",
   "column.blocks": "Usatores blocate",
@@ -76,11 +92,14 @@
   "column.mutes": "Usatores silentiate",
   "column.notifications": "Notificationes",
   "column.public": "Chronologia federate",
+  "column_back_button.label": "Retro",
   "column_header.hide_settings": "Celar le parametros",
   "column_header.moveLeft_settings": "Mover columna al sinistra",
   "column_header.moveRight_settings": "Mover columna al dextra",
   "column_header.show_settings": "Monstrar le parametros",
   "column_subheading.settings": "Parametros",
+  "community.column_settings.local_only": "Solmente local",
+  "community.column_settings.media_only": "Solmente medios",
   "compose.language.change": "Cambiar le lingua",
   "compose.language.search": "Cercar linguas...",
   "compose.published.body": "Message publicate.",
@@ -89,11 +108,26 @@
   "compose_form.direct_message_warning_learn_more": "Apprender plus",
   "compose_form.lock_disclaimer": "Tu conto non es {locked}. Quicunque pote sequer te pro vider tu messages solo pro sequitores.",
   "compose_form.lock_disclaimer.lock": "blocate",
+  "compose_form.poll.duration": "Duration del inquesta",
+  "compose_form.poll.multiple": "Selection multiple",
+  "compose_form.poll.option_placeholder": "Option {number}",
+  "compose_form.poll.single": "Seliger un",
+  "compose_form.poll.switch_to_multiple": "Cambiar inquesta pro permitter selectiones multiple",
+  "compose_form.poll.switch_to_single": "Cambiar inquesta pro permitter selection singule",
+  "compose_form.poll.type": "Stylo",
+  "compose_form.publish": "Publicar",
   "compose_form.publish_form": "Nove message",
+  "compose_form.reply": "Responder",
+  "compose_form.save_changes": "Actualisar",
   "compose_form.spoiler.marked": "Remover advertimento de contento",
   "compose_form.spoiler.unmarked": "Adder advertimento de contento",
+  "compose_form.spoiler_placeholder": "Advertimento de contento (optional)",
   "confirmation_modal.cancel": "Cancellar",
+  "confirmations.block.block_and_report": "Blocar e signalar",
   "confirmations.block.confirm": "Blocar",
+  "confirmations.block.message": "Es tu secur que tu vole blocar {name}?",
+  "confirmations.cancel_follow_request.confirm": "Retirar requesta",
+  "confirmations.cancel_follow_request.message": "Es tu secur que tu vole retirar tu requesta a sequer a {name}?",
   "confirmations.delete.confirm": "Deler",
   "confirmations.delete.message": "Es tu secur que tu vole deler iste message?",
   "confirmations.delete_list.confirm": "Deler",
@@ -105,6 +139,8 @@
   "confirmations.mute.confirm": "Silentiar",
   "confirmations.mute.message": "Es tu secur que tu vole silentiar {name}?",
   "confirmations.reply.confirm": "Responder",
+  "confirmations.unfollow.confirm": "Non plus sequer",
+  "confirmations.unfollow.message": "Es tu secur que tu vole non plus sequer {name}?",
   "conversation.delete": "Deler conversation",
   "conversation.mark_as_read": "Marcar como legite",
   "conversation.open": "Vider conversation",
@@ -114,22 +150,38 @@
   "copypaste.copy_to_clipboard": "Copiar al area de transferentia",
   "directory.federated": "Ab le fediverso cognoscite",
   "directory.local": "Solmente ab {domain}",
+  "directory.new_arrivals": "Nove arrivatas",
   "directory.recently_active": "Recentemente active",
   "disabled_account_banner.account_settings": "Parametros de conto",
   "disabled_account_banner.text": "Tu conto {disabledAccount} es actualmente disactivate.",
   "dismissable_banner.dismiss": "Dimitter",
+  "embed.preview": "Hic es como il parera:",
   "emoji_button.activity": "Activitate",
   "emoji_button.clear": "Rader",
   "emoji_button.custom": "Personalisate",
+  "emoji_button.flags": "Bandieras",
+  "emoji_button.food": "Alimentos e bibitas",
+  "emoji_button.label": "Inserer emoji",
+  "emoji_button.nature": "Natura",
+  "emoji_button.people": "Personas",
   "emoji_button.recent": "Frequentemente usate",
   "emoji_button.search": "Cercar...",
   "emoji_button.search_results": "Resultatos de recerca",
+  "emoji_button.symbols": "Symbolos",
+  "emoji_button.travel": "Viages e locos",
+  "empty_column.account_hides_collections": "Le usator ha seligite non facer iste information disponibile",
   "empty_column.account_suspended": "Conto suspendite",
   "empty_column.account_timeline": "Nulle messages hic!",
   "empty_column.account_unavailable": "Profilo non disponibile",
   "empty_column.blocks": "Tu non ha blocate alcun usator ancora.",
+  "empty_column.domain_blocks": "Il non ha dominios blocate ancora.",
+  "empty_column.explore_statuses": "Nihil es in tendentias ora mesme. Retorna postea!",
+  "empty_column.favourited_statuses": "Tu non ha necun messages favorite ancora. Quando tu marca un como favorito, ille essera monstrate hic.",
+  "empty_column.followed_tags": "Tu ancora non ha sequite necun hashtags. Quando tu lo face, illes essera monstrate hic.",
+  "empty_column.hashtag": "Ancora non il ha nihil in iste hashtag.",
   "errors.unexpected_crash.report_issue": "Signalar un defecto",
   "explore.search_results": "Resultatos de recerca",
+  "explore.suggested_follows": "Personas",
   "explore.title": "Explorar",
   "explore.trending_links": "Novas",
   "explore.trending_statuses": "Messages",
@@ -145,6 +197,11 @@
   "firehose.all": "Toto",
   "firehose.local": "Iste servitor",
   "firehose.remote": "Altere servitores",
+  "follow_suggestions.curated_suggestion": "Selection del editores",
+  "follow_suggestions.dismiss": "Non monstrar novemente",
+  "follow_suggestions.personalized_suggestion": "Suggestion personalisate",
+  "follow_suggestions.popular_suggestion": "Suggestion personalisate",
+  "follow_suggestions.view_all": "Vider toto",
   "footer.about": "A proposito de",
   "footer.directory": "Directorio de profilos",
   "footer.get_app": "Obtene le application",
@@ -156,15 +213,20 @@
   "getting_started.heading": "Prime passos",
   "hashtag.column_header.tag_mode.all": "e {additional}",
   "hashtag.column_header.tag_mode.any": "o {additional}",
+  "hashtag.column_header.tag_mode.none": "sin {additional}",
   "hashtag.column_settings.select.no_options_message": "Nulle suggestiones trovate",
   "hashtag.column_settings.select.placeholder": "Insere hashtags…",
   "hashtag.follow": "Sequer hashtag",
+  "hashtag.unfollow": "Non sequer plus le hashtag",
+  "hashtags.and_other": "…e {count, plural, one {}other {# plus}}",
   "home.column_settings.show_reblogs": "Monstrar boosts",
   "home.column_settings.show_replies": "Monstrar responsas",
   "home.hide_announcements": "Celar annuncios",
   "home.pending_critical_update.body": "Actualisa tu servitor de Mastodon le plus tosto possibile!",
   "home.pending_critical_update.link": "Vider actualisationes",
+  "home.pending_critical_update.title": "Actualisation de securitate critic disponibile!",
   "home.show_announcements": "Monstrar annuncios",
+  "interaction_modal.login.prompt": "Dominio de tu servitor, p.e. mastodon.social",
   "interaction_modal.no_account_yet": "Non sur Mstodon?",
   "interaction_modal.on_another_server": "In un servitor differente",
   "interaction_modal.on_this_server": "In iste servitor",
@@ -183,8 +245,10 @@
   "keyboard_shortcuts.muted": "Aperir lista de usatores silentiate",
   "keyboard_shortcuts.my_profile": "Aperir tu profilo",
   "keyboard_shortcuts.notifications": "Aperir columna de notificationes",
+  "keyboard_shortcuts.profile": "Aperir le profilo del autor",
   "keyboard_shortcuts.reply": "Responder al message",
   "keyboard_shortcuts.spoilers": "Monstrar/celar le campo CW",
+  "keyboard_shortcuts.toggle_sensitivity": "Monstrar/celar medios",
   "keyboard_shortcuts.toot": "Initiar un nove message",
   "lightbox.close": "Clauder",
   "lightbox.next": "Sequente",
@@ -198,8 +262,11 @@
   "lists.exclusive": "Celar iste messages ab le initio",
   "lists.new.create": "Adder lista",
   "lists.new.title_placeholder": "Nove titulo del lista",
+  "lists.replies_policy.none": "Nemo",
   "lists.replies_policy.title": "Monstrar responsas a:",
   "lists.subheading": "Tu listas",
+  "loading_indicator.label": "Cargante…",
+  "media_gallery.toggle_visible": "{number, plural, one {Celar imagine} other {Celar imagines}}",
   "mute_modal.duration": "Duration",
   "mute_modal.hide_notifications": "Celar notificationes de iste usator?",
   "navigation_bar.about": "A proposito de",
@@ -215,24 +282,34 @@
   "navigation_bar.lists": "Listas",
   "navigation_bar.logout": "Clauder le session",
   "navigation_bar.mutes": "Usatores silentiate",
+  "navigation_bar.opened_in_classic_interface": "Messages, contos e altere paginas specific es aperite per predefinition in le interfacie web classic.",
+  "navigation_bar.personal": "Personal",
   "navigation_bar.preferences": "Preferentias",
   "navigation_bar.public_timeline": "Chronologia federate",
   "navigation_bar.search": "Cercar",
   "navigation_bar.security": "Securitate",
+  "notification.own_poll": "Tu inquesta finiva",
   "notification.update": "{name} modificava un message",
   "notifications.clear": "Rader notificationes",
   "notifications.column_settings.alert": "Notificationes de scriptorio",
+  "notifications.column_settings.favourite": "Favoritos:",
   "notifications.column_settings.filter_bar.advanced": "Monstrar tote le categorias",
   "notifications.column_settings.follow": "Nove sequitores:",
   "notifications.column_settings.mention": "Mentiones:",
+  "notifications.column_settings.poll": "Resultatos del inquesta:",
   "notifications.column_settings.push": "Notificationes push",
+  "notifications.column_settings.show": "Monstrar in columna",
   "notifications.column_settings.sound": "Reproducer sono",
   "notifications.column_settings.status": "Nove messages:",
+  "notifications.column_settings.unread_notifications.category": "Notificationes non legite",
   "notifications.filter.all": "Toto",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.mentions": "Mentiones",
+  "notifications.filter.polls": "Resultatos del inquesta",
+  "notifications.filter.statuses": "Actualisationes de personas que tu seque",
   "notifications.grant_permission": "Conceder permission.",
   "notifications.group": "{count} notificationes",
+  "notifications_permission_banner.enable": "Activar notificationes de scriptorio",
   "onboarding.compose.template": "Salute #Mastodon!",
   "onboarding.profile.save_and_continue": "Salvar e continuar",
   "onboarding.share.next_steps": "Sequente passos possibile:",
@@ -260,6 +337,8 @@
   "report.placeholder": "Commentos additional",
   "report.reasons.dislike": "Non me place",
   "report_notification.categories.other": "Alteres",
+  "report_notification.open": "Aperir reporto",
+  "search.no_recent_searches": "Nulle recercas recente",
   "search.quick_action.go_to_account": "Vader al profilo {x}",
   "search.quick_action.go_to_hashtag": "Vader al hashtag {x}",
   "search.quick_action.open_url": "Aperir URL in Mastodon",
@@ -273,14 +352,20 @@
   "search_results.hashtags": "Hashtags",
   "search_results.see_all": "Vider toto",
   "search_results.statuses": "Messages",
+  "server_banner.active_users": "usatores active",
   "server_banner.learn_more": "Apprender plus",
+  "server_banner.server_stats": "Statos del servitor:",
   "sign_in_banner.create_account": "Crear un conto",
   "sign_in_banner.sign_in": "Initiar le session",
   "status.block": "Blocar @{name}",
   "status.copy": "Copiar ligamine a message",
   "status.delete": "Deler",
+  "status.direct": "Mentionar privatemente a @{name}",
   "status.direct_indicator": "Mention private",
   "status.edit": "Modificar",
+  "status.edited": "Modificate le {date}",
+  "status.edited_x_times": "Modificate {count, plural, one {{count} tempore} other {{count} tempores}}",
+  "status.favourite": "Adder al favoritos",
   "status.filter": "Filtrar iste message",
   "status.hide": "Celar le message",
   "status.history.created": "create per {name} le {date}",
@@ -291,12 +376,17 @@
   "status.mute_conversation": "Silentiar conversation",
   "status.read_more": "Leger plus",
   "status.share": "Compartir",
+  "status.show_less": "Monstrar minus",
+  "status.show_more": "Monstrar plus",
   "status.translate": "Traducer",
   "status.translated_from_with": "Traducite ab {lang} usante {provider}",
+  "status.uncached_media_warning": "Previsualisation non disponibile",
+  "subscribed_languages.save": "Salveguardar le cambiamentos",
   "tabs_bar.home": "Initio",
   "tabs_bar.notifications": "Notificationes",
   "timeline_hint.resources.statuses": "Messages ancian",
   "trends.trending_now": "Ora in tendentias",
+  "upload_button.label": "Adde imagines, un video o un file de audio",
   "upload_modal.choose_image": "Seliger un imagine",
   "upload_modal.detect_text": "Deteger texto ab un pictura",
   "video.close": "Clauder le video",

+ 0 - 2
app/javascript/mastodon/locales/id.json

@@ -270,8 +270,6 @@
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "hashtag.follow": "Ikuti tagar",
   "hashtag.unfollow": "Batalkan pengikutan tagar",
-  "home.actions.go_to_explore": "Lihat apa yang lagi tranding",
-  "home.actions.go_to_suggestions": "Temukan Orang untuk Diikuti",
   "home.column_settings.basic": "Dasar",
   "home.column_settings.show_reblogs": "Tampilkan boost",
   "home.column_settings.show_replies": "Tampilkan balasan",

+ 13 - 6
app/javascript/mastodon/locales/ie.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Tui conto ne es {locked}. Quicunc posse sequer te por vider tui postas solmen por sequitores.",
   "compose_form.lock_disclaimer.lock": "cludet",
   "compose_form.placeholder": "Quo es in tui spiritu?",
-  "compose_form.poll.add_option": "Adjunter option",
   "compose_form.poll.duration": "Duration del balotation",
   "compose_form.poll.multiple": "Selection multiplic",
   "compose_form.poll.option_placeholder": "Option {number}",
-  "compose_form.poll.remove_option": "Remover ti-ci option",
   "compose_form.poll.single": "Selecter un",
   "compose_form.poll.switch_to_multiple": "Changea li balotation por permisser multiplic selectiones",
   "compose_form.poll.switch_to_single": "Changea li balotation por permisser un singul selection",
@@ -160,6 +158,7 @@
   "compose_form.save_changes": "Actualisar",
   "compose_form.spoiler.marked": "Remover avise pri li contenete",
   "compose_form.spoiler.unmarked": "Adjunter avise pri li contenete",
+  "compose_form.spoiler_placeholder": "Advertiment de contenete (optional)",
   "confirmation_modal.cancel": "Anullar",
   "confirmations.block.block_and_report": "Bloccar & Raportar",
   "confirmations.block.confirm": "Bloccar",
@@ -278,6 +277,12 @@
   "follow_request.authorize": "Autorisar",
   "follow_request.reject": "Rejecter",
   "follow_requests.unlocked_explanation": "Benque tu conto ne es cludet, li administratores de {domain} pensat que tu fórsan vell voler tractar seque-petitiones de tis-ci contos manualmen.",
+  "follow_suggestions.curated_suggestion": "Selection del Servitor",
+  "follow_suggestions.dismiss": "Ne monstrar plu",
+  "follow_suggestions.personalized_suggestion": "Personalisat suggestion",
+  "follow_suggestions.popular_suggestion": "Populari suggestion",
+  "follow_suggestions.view_all": "Vider omnicos",
+  "follow_suggestions.who_to_follow": "Persones a sequer",
   "followed_tags": "Sequet hashtags",
   "footer.about": "Information",
   "footer.directory": "Profilarium",
@@ -304,13 +309,9 @@
   "hashtag.follow": "Sequer hashtag",
   "hashtag.unfollow": "Dessequer hashtag",
   "hashtags.and_other": "…e {count, plural, other {# in plu}}",
-  "home.actions.go_to_explore": "Vider lu populari",
-  "home.actions.go_to_suggestions": "Trovar gente por sequer",
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Monstrar boosts",
   "home.column_settings.show_replies": "Monstrar responses",
-  "home.explore_prompt.body": "Tui hemal témpor-linea have un mixtura del hashtags queles tu selectet sequer, li gente quem tu selectet sequer, e li postas queles ili boosta. Si to sembla tro quiet, tu fórsan vole:",
-  "home.explore_prompt.title": "To-ci es tui hemal págine in Mastodon.",
   "home.hide_announcements": "Celar proclamationes",
   "home.pending_critical_update.body": "Ples actualisar tui Mastodon-servitor tam rapid quam es possibil!",
   "home.pending_critical_update.link": "Vider actualisationes",
@@ -523,11 +524,15 @@
   "poll_button.add_poll": "Adjunter un balotation",
   "poll_button.remove_poll": "Remover balotation",
   "privacy.change": "Changear li privatie del posta",
+  "privacy.direct.long": "Omnes mentionat in li posta",
   "privacy.direct.short": "Specific persones",
   "privacy.private.long": "Solmen tui sequitores",
   "privacy.private.short": "Sequitores",
   "privacy.public.long": "Quicunc in e ex Mastodon",
   "privacy.public.short": "Public",
+  "privacy.unlisted.additional": "It acte just quam public, except que li posta ne va aparir in tendentie o hashtags, explorar, o sercha de Mastodon, mem si tu ha optet por les sur tui tot conto.",
+  "privacy.unlisted.long": "Minu fanfare algoritmic",
+  "privacy.unlisted.short": "Quiet public",
   "privacy_policy.last_updated": "Ultimmen actualisat ye {date}",
   "privacy_policy.title": "Politica pri Privatie",
   "recommended": "Recomandat",
@@ -545,7 +550,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "hodie",
+  "reply_indicator.attachments": "{count, plural, one {# atachament} other {# atachamentes}}",
   "reply_indicator.cancel": "Anullar",
+  "reply_indicator.poll": "Balotar",
   "report.block": "Bloccar",
   "report.block_explanation": "Tu ne va vider su postas. Li usator ni va posser vider tui postas, ni sequer te, ni va posser saver pri li statu de esser bloccat.",
   "report.categories.legal": "Legal",

+ 0 - 4
app/javascript/mastodon/locales/io.json

@@ -292,13 +292,9 @@
   "hashtag.follow": "Sequez hashtago",
   "hashtag.unfollow": "Desequez hashtago",
   "hashtags.and_other": "…e {count, plural, one {# plusa}other {# plusa}}",
-  "home.actions.go_to_explore": "Videz quo es populara nun",
-  "home.actions.go_to_suggestions": "Trovez personi por sequar",
   "home.column_settings.basic": "Simpla",
   "home.column_settings.show_reblogs": "Montrar repeti",
   "home.column_settings.show_replies": "Montrar respondi",
-  "home.explore_prompt.body": "Vua hemala fluo havos mixuro de la hashtagi quin vu selektis sequar, la personi quin vu selektis sequar, e la posti quin ili repetis. Se to semblas tro tacanta, vu darfas volar:",
-  "home.explore_prompt.title": "Co es vua hemo en Mastodon.",
   "home.hide_announcements": "Celez anunci",
   "home.pending_critical_update.body": "Voluntez aktualigar vua Mastodon-servilo tam balde kam es posibla!",
   "home.pending_critical_update.link": "Vidar aktualigaji",

+ 8 - 8
app/javascript/mastodon/locales/is.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þér til að sjá þær færslur sem einungis eru til fylgjenda þinna.",
   "compose_form.lock_disclaimer.lock": "læstur",
   "compose_form.placeholder": "Hvað liggur þér á hjarta?",
-  "compose_form.poll.add_option": "Bæta við valkosti",
   "compose_form.poll.duration": "Tímalengd könnunar",
   "compose_form.poll.multiple": "Margir valkostir",
   "compose_form.poll.option_placeholder": "Valkostur {number}",
-  "compose_form.poll.remove_option": "Fjarlægja þennan valkost",
   "compose_form.poll.single": "Veldu eitt",
   "compose_form.poll.switch_to_multiple": "Breyta könnun svo hægt sé að hafa marga valkosti",
   "compose_form.poll.switch_to_single": "Breyta könnun svo hægt sé að hafa einn stakan valkost",
@@ -279,13 +277,19 @@
   "follow_request.authorize": "Heimila",
   "follow_request.reject": "Hafna",
   "follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.",
+  "follow_suggestions.curated_suggestion": "Úrval umsjónarfólks",
+  "follow_suggestions.dismiss": "Ekki birta þetta aftur",
+  "follow_suggestions.personalized_suggestion": "Persónuaðlöguð tillaga",
+  "follow_suggestions.popular_suggestion": "Vinsæl tillaga",
+  "follow_suggestions.view_all": "Skoða allt",
+  "follow_suggestions.who_to_follow": "Hverjum á að fylgjast með",
   "followed_tags": "Myllumerki sem fylgst er með",
   "footer.about": "Nánari upplýsingar",
   "footer.directory": "Notandasniðamappa",
   "footer.get_app": "Ná í forritið",
   "footer.invite": "Bjóða fólki",
   "footer.keyboard_shortcuts": "Flýtileiðir á lyklaborði",
-  "footer.privacy_policy": "Persónuverndarstefna",
+  "footer.privacy_policy": "Meðferð persónuupplýsinga",
   "footer.source_code": "Skoða frumkóða",
   "footer.status": "Staða",
   "generic.saved": "Vistað",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Fylgjast með myllumerki",
   "hashtag.unfollow": "Hætta að fylgjast með myllumerki",
   "hashtags.and_other": "…og {count, plural, other {# til viðbótar}}",
-  "home.actions.go_to_explore": "Sjá hvað er í umræðunni",
-  "home.actions.go_to_suggestions": "Finna fólk til að fylgjast með",
   "home.column_settings.basic": "Einfalt",
   "home.column_settings.show_reblogs": "Sýna endurbirtingar",
   "home.column_settings.show_replies": "Birta svör",
-  "home.explore_prompt.body": "Heimastreymið þitt verður með blöndu af færslum úr myllumerkjunum sem þú hefur valið að fylgja, færslum frá fólki sem þú hefur valið að fylgja og færslum sem þau endurbirta. Ef þér finnst þetta allt of kyrrlátt, gætirðu viljað:",
-  "home.explore_prompt.title": "Þetta er bækistöð þín innan samfélagsins.",
   "home.hide_announcements": "Fela auglýsingar",
   "home.pending_critical_update.body": "Uppfærðu Mastodon-þjóninn þinn eins fljótt og mögulegt er!",
   "home.pending_critical_update.link": "Skoða uppfærslur",
@@ -672,7 +672,7 @@
   "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
   "status.redraft": "Eyða og endurvinna drög",
   "status.remove_bookmark": "Fjarlægja bókamerki",
-  "status.replied_to": "Svaraði {name}",
+  "status.replied_to": "Svaraði til {name}",
   "status.reply": "Svara",
   "status.replyAll": "Svara þræði",
   "status.report": "Kæra @{name}",

+ 6 - 6
app/javascript/mastodon/locales/it.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Il tuo profilo non è {locked}. Chiunque può seguirti per visualizzare i tuoi post per soli seguaci.",
   "compose_form.lock_disclaimer.lock": "bloccato",
   "compose_form.placeholder": "Cos'hai in mente?",
-  "compose_form.poll.add_option": "Aggiungi opzione",
   "compose_form.poll.duration": "Durata del sondaggio",
   "compose_form.poll.multiple": "Scelta multipla",
   "compose_form.poll.option_placeholder": "Opzione {number}",
-  "compose_form.poll.remove_option": "Rimuovi questa opzione",
   "compose_form.poll.single": "Scegli uno",
   "compose_form.poll.switch_to_multiple": "Modifica il sondaggio per consentire scelte multiple",
   "compose_form.poll.switch_to_single": "Modifica il sondaggio per consentire una singola scelta",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Autorizza",
   "follow_request.reject": "Rifiuta",
   "follow_requests.unlocked_explanation": "Anche se il tuo profilo non è privato, lo staff di {domain} ha pensato che potresti voler revisionare manualmente le richieste di seguirti da questi profili.",
+  "follow_suggestions.curated_suggestion": "Scelta dell'editore",
+  "follow_suggestions.dismiss": "Non visualizzare più",
+  "follow_suggestions.personalized_suggestion": "Suggerimenti personalizzati",
+  "follow_suggestions.popular_suggestion": "Suggerimento frequente",
+  "follow_suggestions.view_all": "Vedi tutto",
+  "follow_suggestions.who_to_follow": "Chi seguire",
   "followed_tags": "Hashtag seguiti",
   "footer.about": "Info",
   "footer.directory": "Cartella dei profili",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Segui l'hashtag",
   "hashtag.unfollow": "Smetti di seguire l'hashtag",
   "hashtags.and_other": "…e {count, plural, other {# in più}}",
-  "home.actions.go_to_explore": "Scopri cosa sia di tendenza",
-  "home.actions.go_to_suggestions": "Trova persone da seguire",
   "home.column_settings.basic": "Base",
   "home.column_settings.show_reblogs": "Mostra reblog",
   "home.column_settings.show_replies": "Mostra risposte",
-  "home.explore_prompt.body": "La tua home feed conterrà un mix di post degli hashtag che hai scelto di seguire, delle persone che hai scelto di seguire e dei post che condividono. Sembra abbastanza tranquillo in questo momento, quindi che ne dici di:",
-  "home.explore_prompt.title": "Questa è la tua base all'interno di Mastodon.",
   "home.hide_announcements": "Nascondi annunci",
   "home.pending_critical_update.body": "Ti preghiamo di aggiornare il tuo server di Mastodon, il prima possibile!",
   "home.pending_critical_update.link": "Visualizza aggiornamenti",

+ 20 - 5
app/javascript/mastodon/locales/ja.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "承認制",
   "compose_form.placeholder": "今なにしてる?",
   "compose_form.poll.duration": "アンケート期間",
+  "compose_form.poll.multiple": "複数選択",
+  "compose_form.poll.option_placeholder": "項目{number}",
+  "compose_form.poll.single": "単一選択",
   "compose_form.poll.switch_to_multiple": "複数選択に変更",
   "compose_form.poll.switch_to_single": "単一選択に変更",
+  "compose_form.poll.type": "スタイル",
+  "compose_form.publish": "投稿",
   "compose_form.publish_form": "投稿",
+  "compose_form.reply": "返信",
+  "compose_form.save_changes": "更新",
   "compose_form.spoiler.marked": "本文は警告の後ろに隠されます",
   "compose_form.spoiler.unmarked": "本文は隠されていません",
+  "compose_form.spoiler_placeholder": "閲覧注意 (オプション)",
   "confirmation_modal.cancel": "キャンセル",
   "confirmations.block.block_and_report": "ブロックし通報",
   "confirmations.block.confirm": "ブロック",
@@ -269,6 +277,7 @@
   "follow_request.authorize": "許可",
   "follow_request.reject": "拒否",
   "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
+  "follow_suggestions.view_all": "すべて表示",
   "followed_tags": "フォロー中のハッシュタグ",
   "footer.about": "概要",
   "footer.directory": "ディレクトリ",
@@ -291,17 +300,13 @@
   "hashtag.column_settings.tag_toggle": "このカラムに追加のタグを含める",
   "hashtag.counter_by_accounts": "{count, plural, other {{counter}人投稿}}",
   "hashtag.counter_by_uses": "{count, plural, other {{counter}件}}",
-  "hashtag.counter_by_uses_today": "今日{count, plural, other {{counter}件}}",
+  "hashtag.counter_by_uses_today": "本日{count, plural, other {#件}}",
   "hashtag.follow": "ハッシュタグをフォローする",
   "hashtag.unfollow": "ハッシュタグのフォローを解除",
   "hashtags.and_other": "ほか{count, plural, other {#個}}",
-  "home.actions.go_to_explore": "話題をさがす",
-  "home.actions.go_to_suggestions": "フォローするユーザーを検索",
   "home.column_settings.basic": "基本設定",
   "home.column_settings.show_reblogs": "ブースト表示",
   "home.column_settings.show_replies": "返信表示",
-  "home.explore_prompt.body": "ユーザーやハッシュタグをフォローすると、この「ホーム」タイムラインに投稿やブーストが流れるようになります。タイムラインをもう少しにぎやかにしてみませんか?",
-  "home.explore_prompt.title": "Mastodonのタイムラインへようこそ。",
   "home.hide_announcements": "お知らせを隠す",
   "home.pending_critical_update.body": "速やかにMastodonサーバーをアップデートしてください。",
   "home.pending_critical_update.link": "詳細",
@@ -514,7 +519,15 @@
   "poll_button.add_poll": "アンケートを追加",
   "poll_button.remove_poll": "アンケートを削除",
   "privacy.change": "公開範囲を変更",
+  "privacy.direct.long": "本文で指定した相手のみ",
+  "privacy.direct.short": "特定の人",
+  "privacy.private.long": "フォロワーのみ",
+  "privacy.private.short": "フォロワー",
+  "privacy.public.long": "すべての人 (Mastodon以外も含む)",
   "privacy.public.short": "公開",
+  "privacy.unlisted.additional": "「公開」とほとんど同じですが、リアルタイムフィードやハッシュタグ、探索機能、Mastodon検索などに投稿が表示されない点で「公開」と異なります。また、アカウント設定で投稿の検索や表示を許可している場合でも、この公開範囲を設定した投稿は前述の機能には表示されません。",
+  "privacy.unlisted.long": "より表示機会の少ない公開",
+  "privacy.unlisted.short": "ひかえめな公開",
   "privacy_policy.last_updated": "{date}に更新",
   "privacy_policy.title": "プライバシーポリシー",
   "recommended": "おすすめ",
@@ -532,7 +545,9 @@
   "relative_time.minutes": "{number}分前",
   "relative_time.seconds": "{number}秒前",
   "relative_time.today": "今日",
+  "reply_indicator.attachments": "{count, plural, other {#件のメディア}}",
   "reply_indicator.cancel": "キャンセル",
+  "reply_indicator.poll": "アンケート",
   "report.block": "ブロック",
   "report.block_explanation": "相手の投稿が表示されなくなります。相手はあなたの投稿を見ることやフォローすることができません。相手はブロックされていることがわかります。",
   "report.categories.legal": "法令違反",

+ 56 - 26
app/javascript/mastodon/locales/kab.json

@@ -11,18 +11,22 @@
   "account.blocked": "Yettusewḥel",
   "account.browse_more_on_origin_server": "Snirem ugar deg umeɣnu aneẓli",
   "account.cancel_follow_request": "Withdraw follow request",
+  "account.copy": "Nɣel assaɣ ɣer umaɣnu",
   "account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara ilɣa mi ara d-isuffeɣ @{name}",
   "account.domain_blocked": "Taɣult yeffren",
   "account.edit_profile": "Ẓreg amaɣnu",
   "account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}",
   "account.endorse": "Welleh fell-as deg umaɣnu-inek",
+  "account.featured_tags.last_status_never": "Ulac tisuffaɣ",
   "account.follow": "Ḍfer",
   "account.followers": "Imeḍfaren",
   "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
   "account.followers_counter": "{count, plural, one {{count} n umeḍfar} other {{count} n imeḍfaren}}",
   "account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}",
   "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
+  "account.go_to_profile": "Ddu ɣer umaɣnu",
   "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
+  "account.joined_short": "Izeddi da",
   "account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed ass n {date}",
   "account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.",
   "account.media": "Timidyatin",
@@ -64,7 +68,8 @@
   "bundle_modal_error.message": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.",
   "bundle_modal_error.retry": "Ɛreḍ tikelt-nniḍen",
   "closed_registrations_modal.find_another_server": "Aff-d aqeddac nniḍen",
-  "column.about": "Γef",
+  "closed_registrations_modal.title": "Ajerred deg Masṭudun",
+  "column.about": "Ɣef",
   "column.blocks": "Imiḍanen yettusḥebsen",
   "column.bookmarks": "Ticraḍ",
   "column.community": "Tasuddemt tadigant",
@@ -76,7 +81,7 @@
   "column.lists": "Tibdarin",
   "column.mutes": "Imiḍanen yettwasgugmen",
   "column.notifications": "Tilɣa",
-  "column.pins": "Tijewwaqin yettwasenṭḍen",
+  "column.pins": "Tisuffaɣ yettwasenṭḍen",
   "column.public": "Tasuddemt tamatut",
   "column_back_button.label": "Tuɣalin",
   "column_header.hide_settings": "Ffer iɣewwaṛen",
@@ -87,31 +92,38 @@
   "column_header.unpin": "Kkes asenteḍ",
   "column_subheading.settings": "Iɣewwaṛen",
   "community.column_settings.local_only": "Adigan kan",
-  "community.column_settings.media_only": "Allal n teywalt kan",
+  "community.column_settings.media_only": "Imidyaten kan",
   "community.column_settings.remote_only": "Anmeggag kan",
   "compose.language.change": "Beddel tutlayt",
   "compose.language.search": "Nadi tutlayin …",
   "compose.published.open": "Ldi",
+  "compose.saved.body": "Tettwasekles tsuffeɣt.",
   "compose_form.direct_message_warning_learn_more": "Issin ugar",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
-  "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
+  "compose_form.encryption_warning": "",
+  "compose_form.hashtag_warning": "",
   "compose_form.lock_disclaimer": "Amiḍan-ik·im ur yelli ara {locked}. Menwala yezmer ad k·kem-yeḍfeṛ akken ad iẓer acu tbeṭṭuḍ akked yimeḍfaṛen-ik·im.",
   "compose_form.lock_disclaimer.lock": "yettwacekkel",
   "compose_form.placeholder": "D acu i itezzin deg wallaɣ?",
   "compose_form.poll.duration": "Tanzagt n tefrant",
-  "compose_form.publish_form": "Suffeɣ",
+  "compose_form.poll.option_placeholder": "Taxtiṛt {number}",
+  "compose_form.poll.single": "Fren yiwen",
+  "compose_form.publish": "Suffeɣ",
+  "compose_form.publish_form": "Tasuffeɣt tamaynut",
+  "compose_form.reply": "Err",
+  "compose_form.save_changes": "Leqqem",
   "compose_form.spoiler.marked": "Kkes aḍris yettwaffren deffir n walɣu",
   "compose_form.spoiler.unmarked": "Rnu aḍris yettwaffren deffir n walɣu",
   "confirmation_modal.cancel": "Sefsex",
   "confirmations.block.block_and_report": "Sewḥel & sewɛed",
   "confirmations.block.confirm": "Sewḥel",
-  "confirmations.block.message": "Tebγiḍ s tidet ad tesḥebseḍ {name}?",
+  "confirmations.block.message": "Tebɣiḍ s tidet ad tesḥebseḍ {name}?",
   "confirmations.delete.confirm": "Kkes",
   "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?",
   "confirmations.delete_list.confirm": "Kkes",
   "confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ umuɣ-agi i lebda?",
   "confirmations.discard_edit_media.confirm": "Sefsex",
   "confirmations.domain_block.confirm": "Ffer taɣult meṛṛa",
+  "confirmations.edit.confirm": "Ẓreg",
   "confirmations.logout.confirm": "Ffeɣ",
   "confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?",
   "confirmations.mute.confirm": "Sgugem",
@@ -131,12 +143,13 @@
   "directory.local": "Seg {domain} kan",
   "directory.new_arrivals": "Imaynuten id yewḍen",
   "directory.recently_active": "Yermed xas melmi kan",
-  "disabled_account_banner.account_settings": "Iγewwaṛen n umiḍan",
+  "disabled_account_banner.account_settings": "Iɣewwaṛen n umiḍan",
   "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
   "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
   "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.",
   "embed.preview": "Akka ara d-iban:",
   "emoji_button.activity": "Aqeddic",
+  "emoji_button.clear": "Sfeḍ",
   "emoji_button.custom": "Udmawan",
   "emoji_button.flags": "Innayen",
   "emoji_button.food": "Tegwella & Tissit",
@@ -151,10 +164,10 @@
   "emoji_button.symbols": "Izamulen",
   "emoji_button.travel": "Imeḍqan d Yinigen",
   "empty_column.account_suspended": "Amiḍan yettwaḥbas",
-  "empty_column.account_timeline": "Ulac tijewwaqin dagi!",
+  "empty_column.account_timeline": "Ulac tisuffaɣ da !",
   "empty_column.account_unavailable": "Ur nufi ara amaɣnu-ayi",
   "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.",
-  "empty_column.bookmarked_statuses": "Ulac tijewwaqin i terniḍ ɣer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
+  "empty_column.bookmarked_statuses": "Ulac kra n tsuffeɣt i terniḍ ɣer yismenyifen-ik·im ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
   "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!",
   "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.",
   "empty_column.follow_requests": "Ulac ɣur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.",
@@ -172,7 +185,7 @@
   "explore.suggested_follows": "Imdanen",
   "explore.title": "Snirem",
   "explore.trending_links": "Isallen",
-  "explore.trending_statuses": "Tisuffiɣin",
+  "explore.trending_statuses": "Tisuff",
   "explore.trending_tags": "Ihacṭagen",
   "filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
   "filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}",
@@ -181,8 +194,10 @@
   "firehose.local": "Deg uqeddac-ayi",
   "follow_request.authorize": "Ssireg",
   "follow_request.reject": "Agi",
-  "footer.about": "Γef",
-  "footer.directory": "Akaram n imaγnuten",
+  "follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ",
+  "followed_tags": "Ihacṭagen yettwaḍfaren",
+  "footer.about": "Ɣef",
+  "footer.directory": "Akaram n imaɣnuten",
   "footer.get_app": "Awi-d asnas",
   "footer.invite": "Ɛreḍ-d kra n yimdanen",
   "footer.keyboard_shortcuts": "Inegzumen n unasiw",
@@ -199,12 +214,15 @@
   "hashtag.column_settings.tag_mode.any": "Yiwen seg-sen",
   "hashtag.column_settings.tag_mode.none": "Yiwen ala seg-sen",
   "hashtag.column_settings.tag_toggle": "Glu-d s yihacṭagen imerna i ujgu-agi",
+  "hashtag.counter_by_uses": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}",
+  "hashtag.counter_by_uses_today": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}} assa",
   "hashtag.follow": "Ḍfeṛ ahacṭag",
   "home.column_settings.basic": "Igejdanen",
   "home.column_settings.show_reblogs": "Ssken-d beṭṭu",
   "home.column_settings.show_replies": "Ssken-d tiririyin",
   "home.hide_announcements": "Ffer ulɣuyen",
   "home.show_announcements": "Ssken-d ulɣuyen",
+  "interaction_modal.no_account_yet": "Ulac-ik·ikem deg Maṣṭudun?",
   "interaction_modal.on_this_server": "Deg uqeddac-ayi",
   "interaction_modal.title.follow": "Ḍfer {name}",
   "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}",
@@ -245,8 +263,8 @@
   "lightbox.close": "Mdel",
   "lightbox.compress": "Ḥemmeẓ tamnaḍt n uskan n tugna",
   "lightbox.expand": "Simeɣer tamnaḍt n uskan n tugna",
-  "lightbox.next": "Γer zdat",
-  "lightbox.previous": "Γer deffir",
+  "lightbox.next": "Ɣer zdat",
+  "lightbox.previous": "Ɣer deffir",
   "link_preview.author": "S-ɣur {name}",
   "lists.account.add": "Rnu ɣer tebdart",
   "lists.account.remove": "Kkes seg tebdart",
@@ -262,11 +280,12 @@
   "lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ",
   "lists.subheading": "Tibdarin-ik·im",
   "load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
-  "media_gallery.toggle_visible": "Ffer {number, plural, one {tugna} other {tugniwin}}",
+  "loading_indicator.label": "Yessalay-d …",
+  "media_gallery.toggle_visible": "{number, plural, one {Ffer tugna} other {Ffer tugniwin}}",
   "mute_modal.duration": "Tanzagt",
   "mute_modal.hide_notifications": "Tebɣiḍ ad teffreḍ talɣutin n umseqdac-a?",
   "mute_modal.indefinite": "Ur yettwasbadu ara",
-  "navigation_bar.about": "Γef",
+  "navigation_bar.about": "Ɣef",
   "navigation_bar.blocks": "Imseqdacen yettusḥebsen",
   "navigation_bar.bookmarks": "Ticraḍ",
   "navigation_bar.community_timeline": "Tasuddemt tadigant",
@@ -277,18 +296,19 @@
   "navigation_bar.favourites": "Imenyafen",
   "navigation_bar.filters": "Awalen i yettwasgugmen",
   "navigation_bar.follow_requests": "Isuturen n teḍfeṛt",
+  "navigation_bar.followed_tags": "Ihacṭagen yettwaḍfaren",
   "navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ",
   "navigation_bar.lists": "Tibdarin",
   "navigation_bar.logout": "Ffeɣ",
   "navigation_bar.mutes": "Iseqdacen yettwasusmen",
   "navigation_bar.personal": "Udmawan",
-  "navigation_bar.pins": "Tijewwiqin yettwasentḍen",
+  "navigation_bar.pins": "Tisuffaɣ yettwasenṭḍen",
   "navigation_bar.preferences": "Imenyafen",
   "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut",
   "navigation_bar.search": "Nadi",
   "navigation_bar.security": "Taɣellist",
   "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
-  "notification.follow": "{name} yeṭṭafaṛ-ik",
+  "notification.follow": "iṭṭafar-ik·em-id {name}",
   "notification.follow_request": "{name} yessuter-d ad k-yeḍfeṛ",
   "notification.mention": "{name} yebder-ik-id",
   "notification.own_poll": "Tafrant-ik·im tfuk",
@@ -309,7 +329,7 @@
   "notifications.column_settings.reblog": "Seǧhed:",
   "notifications.column_settings.show": "Ssken-d tilɣa deg ujgu",
   "notifications.column_settings.sound": "Rmed imesli",
-  "notifications.column_settings.status": "Tiẓenẓunin timaynutin:",
+  "notifications.column_settings.status": "Tisuffaɣ timaynutin :",
   "notifications.filter.all": "Akk",
   "notifications.filter.boosts": "Seǧhed",
   "notifications.filter.favourites": "Imenyafen",
@@ -323,11 +343,15 @@
   "notifications.permission_denied": "D awezɣi ad yili wermad n yilɣa n tnarit axateṛ turagt tettwagdel.",
   "notifications_permission_banner.enable": "Rmed talɣutin n tnarit",
   "notifications_permission_banner.title": "Ur zeggel acemma",
+  "onboarding.action.back": "Tuɣalin ɣer deffir",
+  "onboarding.actions.back": "Tuɣalin ɣer deffir",
   "onboarding.actions.go_to_explore": "See what's trending",
   "onboarding.actions.go_to_home": "Go to your home feed",
   "onboarding.compose.template": "Azul a #Mastodon!",
   "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
   "onboarding.follows.title": "Popular on Mastodon",
+  "onboarding.profile.display_name": "Isem ara d-yettwaskanen",
+  "onboarding.share.title": "Bḍu amaɣnu-inek·inem",
   "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
   "onboarding.start.skip": "Want to skip right ahead?",
   "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@@ -338,7 +362,7 @@
   "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
   "onboarding.steps.share_profile.title": "Share your profile",
   "picture_in_picture.restore": "Err-it amkan-is",
-  "poll.closed": "Ifukk",
+  "poll.closed": "Tfukk",
   "poll.refresh": "Smiren",
   "poll.total_people": "{count, plural, one {# n wemdan} other {# n yemdanen}}",
   "poll.total_votes": "{count, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}",
@@ -347,6 +371,7 @@
   "poll_button.add_poll": "Rnu asenqed",
   "poll_button.remove_poll": "Kkes asenqed",
   "privacy.change": "Seggem tabaḍnit n yizen",
+  "privacy.private.short": "Imeḍfaren",
   "privacy.public.short": "Azayez",
   "privacy_policy.title": "Tasertit tabaḍnit",
   "refresh": "Smiren",
@@ -363,12 +388,14 @@
   "report.block": "Sewḥel",
   "report.categories.other": "Tiyyaḍ",
   "report.categories.spam": "Aspam",
-  "report.category.title_account": "ameγnu",
+  "report.category.title_account": "ameɣnu",
   "report.category.title_status": "tasuffeɣt",
   "report.close": "Immed",
   "report.forward": "Bren-it ɣeṛ {target}",
   "report.mute": "Sgugem",
+  "report.next": "Uḍfiṛ",
   "report.placeholder": "Iwenniten-nniḍen",
+  "report.reasons.dislike": "Ur t-ḥemmleɣ ara",
   "report.reasons.spam": "D aspam",
   "report.submit": "Azen",
   "report.target": "Mmel {target}",
@@ -379,8 +406,10 @@
   "report_notification.open": "Ldi aneqqis",
   "search.placeholder": "Nadi",
   "search.search_or_paste": "Nadi neɣ senṭeḍ URL",
+  "search_popout.user": "amseqdac",
   "search_results.all": "Akk",
   "search_results.hashtags": "Ihacṭagen",
+  "search_results.see_all": "Wali-ten akk",
   "search_results.statuses": "Tisuffaɣ",
   "search_results.title": "Anadi ɣef {q}",
   "server_banner.administered_by": "Yettwadbel sɣur :",
@@ -400,8 +429,9 @@
   "status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}",
   "status.embed": "Seddu",
   "status.filtered": "Yettwasizdeg",
+  "status.hide": "Ffer tasuffeɣt",
   "status.load_more": "Sali ugar",
-  "status.media_hidden": "Taɣwalt tettwaffer",
+  "status.media_hidden": "Amidya yettwaffer",
   "status.mention": "Bder-d @{name}",
   "status.more": "Ugar",
   "status.mute": "Sussem @{name}",
@@ -421,7 +451,7 @@
   "status.sensitive_warning": "Agbur amḥulfu",
   "status.share": "Bḍu",
   "status.show_less": "Ssken-d drus",
-  "status.show_less_all": "Semẓi akk tisuffγin",
+  "status.show_less_all": "Semẓi akk tisuffɣin",
   "status.show_more": "Ssken-d ugar",
   "status.show_more_all": "Ẓerr ugar lebda",
   "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@@ -440,7 +470,7 @@
   "timeline_hint.remote_resource_not_displayed": "{resource} seg yiqeddacen-nniḍen ur d-ttwaskanent ara.",
   "timeline_hint.resources.followers": "Imeḍfaṛen",
   "timeline_hint.resources.follows": "T·Yeṭafaṛ",
-  "timeline_hint.resources.statuses": "Tijewwaqin tiqdimin",
+  "timeline_hint.resources.statuses": "Tisuffaɣ tiqdimin",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
   "trends.trending_now": "Ayen mucaɛen tura",
   "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.",
@@ -461,7 +491,7 @@
   "upload_modal.choose_image": "Fren tugna",
   "upload_modal.description_placeholder": "Aberraɣ arurad ineggez nnig n uqjun amuṭṭis",
   "upload_modal.detect_text": "Sefru-d aḍris seg tugna",
-  "upload_modal.edit_media": "Ẓreg taɣwalt",
+  "upload_modal.edit_media": "Ẓreg amidya",
   "upload_modal.preparing_ocr": "Aheyyi n OCR…",
   "upload_modal.preview_label": "Taskant ({ratio})",
   "upload_progress.label": "Asali iteddu...",

+ 10 - 10
app/javascript/mastodon/locales/ko.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "이 계정은 {locked}상태가 아닙니다. 누구나 이 계정을 팔로우 하여 팔로워 전용의 게시물을 볼 수 있습니다.",
   "compose_form.lock_disclaimer.lock": "비공개",
   "compose_form.placeholder": "지금 무슨 생각을 하고 있나요?",
-  "compose_form.poll.add_option": "항목 추가",
   "compose_form.poll.duration": "투표 기간",
   "compose_form.poll.multiple": "다중 선택",
   "compose_form.poll.option_placeholder": "{option}번째 항목",
-  "compose_form.poll.remove_option": "이 항목 삭제",
   "compose_form.poll.single": "단일 선택",
   "compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경",
   "compose_form.poll.switch_to_single": "단일 선택 투표로 변경",
@@ -160,7 +158,7 @@
   "compose_form.save_changes": "수정",
   "compose_form.spoiler.marked": "열람주의 제거",
   "compose_form.spoiler.unmarked": "열람 주의 문구 추가",
-  "compose_form.spoiler_placeholder": "열람 주의 (옵션)",
+  "compose_form.spoiler_placeholder": "내용 경고 (선택사항)",
   "confirmation_modal.cancel": "취소",
   "confirmations.block.block_and_report": "차단하고 신고하기",
   "confirmations.block.confirm": "차단",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "허가",
   "follow_request.reject": "거부",
   "follow_requests.unlocked_explanation": "귀하의 계정이 잠긴 계정이 아닐지라도, {domain} 스태프는 이 계정들의 팔로우 요청을 수동으로 처리해 주시면 좋겠다고 생각했습니다.",
+  "follow_suggestions.curated_suggestion": "중재자의 추천",
+  "follow_suggestions.dismiss": "다시 보지 않기",
+  "follow_suggestions.personalized_suggestion": "개인화된 추천",
+  "follow_suggestions.popular_suggestion": "인기있는 추천",
+  "follow_suggestions.view_all": "모두 보기",
+  "follow_suggestions.who_to_follow": "팔로우할 만한 사람",
   "followed_tags": "팔로우 중인 해시태그",
   "footer.about": "정보",
   "footer.directory": "프로필 책자",
@@ -305,13 +309,9 @@
   "hashtag.follow": "팔로우",
   "hashtag.unfollow": "팔로우 해제",
   "hashtags.and_other": "…그리고 {count, plural,other {#개 더}}",
-  "home.actions.go_to_explore": "무엇이 유행인지 보기",
-  "home.actions.go_to_suggestions": "팔로우할 사람 찾기",
   "home.column_settings.basic": "기본",
   "home.column_settings.show_reblogs": "부스트 표시",
   "home.column_settings.show_replies": "답글 표시",
-  "home.explore_prompt.body": "홈 피드에는 내가 팔로우한 해시태그 그리고 팔로우한 사람과 부스트가 함께 나타납니다. 너무 고요하게 느껴진다면, 다음 것들을 살펴볼 수 있습니다.",
-  "home.explore_prompt.title": "이곳은 마스토돈의 내 본거지입니다.",
   "home.hide_announcements": "공지사항 숨기기",
   "home.pending_critical_update.body": "서둘러 마스토돈 서버를 업데이트 하세요!",
   "home.pending_critical_update.link": "업데이트 보기",
@@ -477,7 +477,7 @@
   "onboarding.actions.go_to_explore": "무엇이 유행인지 보러 가기",
   "onboarding.actions.go_to_home": "홈 피드로 가기",
   "onboarding.compose.template": "안녕 #마스토돈!",
-  "onboarding.follows.empty": "안타깝지만 아직은 아무 것도 보여드릴 수 없습니다. 검색을 이용하거나 발견하기 페이지에서 팔로우 할 사람을 찾을 수 있습니다. 아니면 잠시 후에 다시 시도하세요.",
+  "onboarding.follows.empty": "안타깝지만 아직은 아무 것도 보여드릴 수 없습니다. 검색을 이용하거나 둘러보기 페이지에서 팔로우 할 사람을 찾을 수 있습니다. 아니면 잠시 후에 다시 시도하세요.",
   "onboarding.follows.lead": "홈 피드는 마스토돈을 경험하는 주된 경로입니다. 더 많은 사람들을 팔로우 할수록 더 활발하고 흥미로워질 것입니다. 여기 시작을 위한 몇몇 추천을 드립니다:",
   "onboarding.follows.title": "내게 맞는 홈 피드 꾸미기",
   "onboarding.profile.discoverable": "내 프로필을 발견 가능하도록 설정",
@@ -526,11 +526,11 @@
   "privacy.change": "게시물의 프라이버시 설정을 변경",
   "privacy.direct.long": "이 게시물에서 언급된 모두",
   "privacy.direct.short": "특정 인물",
-  "privacy.private.long": "내 팔로워들에게만",
+  "privacy.private.long": "내 팔로워만",
   "privacy.private.short": "팔로워",
   "privacy.public.long": "마스토돈 내외 모두",
   "privacy.public.short": "공개",
-  "privacy.unlisted.additional": "공개와 똑같지만 게시물이 라이브 피드나 해시태그, 발견하기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.",
+  "privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.",
   "privacy.unlisted.long": "더 적은 알고리즘 팡파레",
   "privacy.unlisted.short": "조용한 공개",
   "privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨",

+ 88 - 61
app/javascript/mastodon/locales/lad.json

@@ -4,16 +4,16 @@
   "about.disclaimer": "Mastodon es un programario libero, kon kodiche avierto i una marka komersiala de Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Razon no desponivle",
   "about.domain_blocks.preamble": "Mastodon djeneralmente te permete ver kontenido de i enteraktuar kon utilizadores de kualseker otro sirvidor en el fediverso. Estas son las eksepsiones en este sirvidor en partikolar.",
-  "about.domain_blocks.silenced.explanation": "\"Djeneralmente no veras profiles i kontenido de este sirvidor, salvo ke eksplisitamente lo bushkes o sigas algun kuento de el.",
+  "about.domain_blocks.silenced.explanation": "Djeneralmente no veras profiles i kontenido de este sirvidor, salvo ke eksplisitamente lo bushkes o sigas algun kuento de el.",
   "about.domain_blocks.silenced.title": "Limitado",
-  "about.domain_blocks.suspended.explanation": "Dingunos datos de este sirvidor sera prosesado, magazinado o enterkambiado kon este sirvidor. Enteraksyon o komunikasyon kon sus utilizadores sera imposivle.",
+  "about.domain_blocks.suspended.explanation": "Dingunos datos de este sirvidor seran prosesados, magazinados o enterkambiados. Enteraksyon o komunikasyon kon sus utilizadores sera imposivle.",
   "about.domain_blocks.suspended.title": "Suspendido",
   "about.not_available": "Esta enformasyon no esta desponivle en este sirvidor.",
   "about.powered_by": "Redes sosyalas desentralizadas kon uzo de {mastodon}",
   "about.rules": "Reglas del sirvidor",
   "account.account_note_header": "Nota",
   "account.add_or_remove_from_list": "Adjusta a o kita de listas",
-  "account.badges.bot": "Bot",
+  "account.badges.bot": "Otomatizado",
   "account.badges.group": "Grupo",
   "account.block": "Bloka @{name}",
   "account.block_domain": "Bloka el domeno {domain}",
@@ -23,13 +23,13 @@
   "account.cancel_follow_request": "Anula solisitud de segir",
   "account.copy": "Kopia atadijo de profil",
   "account.direct": "Enmenta a @{name} en privado",
-  "account.disable_notifications": "No me avizes mas sovre publikasyones de @{name}",
+  "account.disable_notifications": "Desha de avizarme sovre publikasyones de @{name}",
   "account.domain_blocked": "Domeno blokado",
   "account.edit_profile": "Edita profil",
   "account.enable_notifications": "Avizame kuando @{name} publike",
   "account.endorse": "Avalia en profil",
   "account.featured_tags.last_status_at": "Ultima publikasyon de {date}",
-  "account.featured_tags.last_status_never": "\"No ay publikasyones",
+  "account.featured_tags.last_status_never": "No ay publikasyones",
   "account.featured_tags.title": "Etiketas avaliadas de {name}",
   "account.follow": "Sige",
   "account.follow_back": "Sige tamyen",
@@ -38,19 +38,19 @@
   "account.followers_counter": "{count, plural, one {{counter} suivante} other {{counter} suivantes}}",
   "account.following": "Sigiendo",
   "account.following_counter": "{count, plural, other {Sigiendo a {counter}}}",
-  "account.follows.empty": "Este utilizador ainda no sige a ningun.",
+  "account.follows.empty": "Este utilizador ainda no sige a dingun.",
   "account.go_to_profile": "Va al profil",
   "account.hide_reblogs": "Eskonde repartajasyones de @{name}",
   "account.in_memoriam": "De bendicha memoria.",
   "account.joined_short": "Adjunto",
-  "account.languages": "Troka linguas suskrividas",
+  "account.languages": "Troka linguas abonadas",
   "account.link_verified_on": "La propriedad de este atadijo fue verifikada el {date}",
   "account.locked_info": "El estado de privasita de este konto esta konfigurado komo serado. El proprietario reviza manualmente kien le puede segir.",
   "account.media": "Multimedia",
   "account.mention": "Enmenta a @{name}",
   "account.moved_to": "{name} tiene endikado ke su muevo kuento agora es:",
   "account.mute": "Silensia a @{name}",
-  "account.mute_notifications_short": "Silensia avizos de @{name}",
+  "account.mute_notifications_short": "Silensia avizos",
   "account.mute_short": "Silensia",
   "account.muted": "Silensiado",
   "account.mutual": "Mutual",
@@ -64,7 +64,7 @@
   "account.share": "Partaja el profil de @{name}",
   "account.show_reblogs": "Amostra repartajasyones de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}",
-  "account.unblock": "Dezbloka @{name}",
+  "account.unblock": "Dezbloka a @{name}",
   "account.unblock_domain": "Dezbloka domeno {domain}",
   "account.unblock_short": "Dezbloka",
   "account.unendorse": "No avalia en profil",
@@ -79,8 +79,8 @@
   "admin.dashboard.retention.cohort": "Mez de enrejistrasyon",
   "admin.dashboard.retention.cohort_size": "Muevos utilizadores",
   "admin.impact_report.instance_accounts": "Profiles de kuentos esto efasaria",
-  "admin.impact_report.instance_followers": "Suivantes a los kualos nuestros utilizadores perderian",
-  "admin.impact_report.instance_follows": "Suivantes a los kualos sus utilizadores perderian",
+  "admin.impact_report.instance_followers": "Suivantes a los kualos nuestros utilizadores pedrerian",
+  "admin.impact_report.instance_follows": "Suivantes a los kualos sus utilizadores pedrerian",
   "admin.impact_report.title": "Rezumen de impakto",
   "alert.rate_limited.message": "Por favor aprova dempues de {retry_time, time, medium}.",
   "alert.rate_limited.title": "Trafiko limitado",
@@ -88,7 +88,7 @@
   "alert.unexpected.title": "Atyo!",
   "announcement.announcement": "Pregon",
   "attachments_list.unprocessed": "(no prosesado)",
-  "audio.hide": "Eskonder audio",
+  "audio.hide": "Eskonde audio",
   "boost_modal.combo": "Puedes klikar {combo} para ometer esto la proksima vez",
   "bundle_column_error.copy_stacktrace": "Kopia el raporto de yerro",
   "bundle_column_error.error.body": "La pajina solisitada no pudo ser renderada. Podria ser por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador.",
@@ -110,7 +110,7 @@
   "column.about": "Sovre mozotros",
   "column.blocks": "Utilizadores blokados",
   "column.bookmarks": "Markadores",
-  "column.community": "Linya de tiempo lokala",
+  "column.community": "Linya lokala",
   "column.direct": "Enmentaduras privadas",
   "column.directory": "Eksplora profiles",
   "column.domain_blocks": "Domenos blokados",
@@ -122,7 +122,7 @@
   "column.mutes": "Utilizadores silensiados",
   "column.notifications": "Avizos",
   "column.pins": "Publikasyones fiksadas",
-  "column.public": "Linya de tiempo federada",
+  "column.public": "Linya federada",
   "column_back_button.label": "Atras",
   "column_header.hide_settings": "Eskonde opsyones",
   "column_header.moveLeft_settings": "Move kolumna a la siedra",
@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "serrado",
   "compose_form.placeholder": "Ke haber?",
   "compose_form.poll.duration": "Durasion de anketa",
-  "compose_form.poll.switch_to_multiple": "Trokar anketa para permeter a eskojer mas ke una opsyon",
-  "compose_form.poll.switch_to_single": "Trokar anketa para permeter a eskojer solo una opsyon",
+  "compose_form.poll.multiple": "Multiples opsyones",
+  "compose_form.poll.option_placeholder": "Opsyon {number}",
+  "compose_form.poll.single": "Eskoje uno",
+  "compose_form.poll.switch_to_multiple": "Troka anketa para permeter a eskojer mas ke una opsyon",
+  "compose_form.poll.switch_to_single": "Troka anketa para permeter a eskojer solo una opsyon",
+  "compose_form.poll.type": "Estilo",
+  "compose_form.publish": "Publika",
   "compose_form.publish_form": "Mueva publikasyon",
+  "compose_form.reply": "Arisponde",
+  "compose_form.save_changes": "Aktualiza",
   "compose_form.spoiler.marked": "Kita avertensya de kontenido",
   "compose_form.spoiler.unmarked": "Adjusta avertensya de kontenido",
+  "compose_form.spoiler_placeholder": "Avertensya de kontenido (opsyonal)",
   "confirmation_modal.cancel": "Anula",
   "confirmations.block.block_and_report": "Bloka i raporta",
   "confirmations.block.confirm": "Bloka",
@@ -166,16 +174,16 @@
   "confirmations.domain_block.confirm": "Bloka domeno entero",
   "confirmations.domain_block.message": "Estas totalmente siguro ke keres blokar todo el domeno {domain}? En djeneral unos kuantos blokos o silensiamientos son sufisientes i preferavles. No veras kontenido de akel domeno en dinguna linya de tiempo publika ni ent tus avizos. Tus suivantes de akel domeno seran kitados.",
   "confirmations.edit.confirm": "Edita",
-  "confirmations.edit.message": "Editar agora kitara el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
+  "confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
   "confirmations.logout.confirm": "Sal",
   "confirmations.logout.message": "Estas siguro ke keres salir de tu kuento?",
   "confirmations.mute.confirm": "Silensia",
   "confirmations.mute.explanation": "Esto eskondera las publikasyones de este kuento i publikasyones ke lo enmentan, pero ainda les permetera segirte.",
   "confirmations.mute.message": "Estas siguro ke keres silensiar a {name}?",
-  "confirmations.redraft.confirm": "Efasar i reeskrivir",
+  "confirmations.redraft.confirm": "Efasa i reeskrive",
   "confirmations.redraft.message": "Estas siguro ke keres efasar esta publikasyon i reeskrivirla? Pedreras todos los favoritos i repartajasyones asosiados kon esta publikasyon i repuestas a eya seran guerfanadas.",
   "confirmations.reply.confirm": "Arisponde",
-  "confirmations.reply.message": "Arispondir agora kitara el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
+  "confirmations.reply.message": "Si arispondas agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?",
   "confirmations.unfollow.confirm": "Desige",
   "confirmations.unfollow.message": "Estas siguro ke keres deshar de segir a {name}?",
   "conversation.delete": "Efasa konversasyon",
@@ -198,13 +206,13 @@
   "dismissable_banner.explore_tags": "Estas etiketas estan agora popularas en la red sosyala. Etiketas uzadas por mas djente aparesen primero.",
   "dismissable_banner.public_timeline": "Estas son las publikasyones publikas mas resientes de personas en la red sosyala a las kualas la djente de {domain} sige.",
   "embed.instructions": "Enkrusta esta publikasyon en tu sitio internetiko kopiando este kodiche.",
-  "embed.preview": "Ansi paresera:",
+  "embed.preview": "Paresera ansina:",
   "emoji_button.activity": "Aktivita",
   "emoji_button.clear": "Alimpia",
   "emoji_button.custom": "Personalizado",
   "emoji_button.flags": "Bandieras",
   "emoji_button.food": "Kumidas i beverajes",
-  "emoji_button.label": "Adjustar emoji",
+  "emoji_button.label": "Adjusta emoji",
   "emoji_button.nature": "Natura",
   "emoji_button.not_found": "Emojis no topados",
   "emoji_button.objects": "Objektos",
@@ -214,7 +222,7 @@
   "emoji_button.search_results": "Rizultados de bushkeda",
   "emoji_button.symbols": "Simbolos",
   "emoji_button.travel": "Viajes i lugares",
-  "empty_column.account_hides_collections": "Este utilizador desidio no mostrar esta enformasyon",
+  "empty_column.account_hides_collections": "Este utilizador desidio no amostrar esta enformasyon",
   "empty_column.account_suspended": "Kuento suspendido",
   "empty_column.account_timeline": "No ay publikasyones aki!",
   "empty_column.account_unavailable": "Profil no desponivle",
@@ -225,9 +233,9 @@
   "empty_column.domain_blocks": "Ainda no ay domenos blokados.",
   "empty_column.explore_statuses": "No ay dingunos trendes agora. Mira mas tadre!",
   "empty_column.favourited_statuses": "Ainda no tienes publikasyones favoritas. Kuando indikes ke una te plaze, se amostrara aki.",
-  "empty_column.favourites": "Nadie tiene indikado ke le plaze una de tus publikasyones. Kuando algun lo aga, se amostrara aki.",
+  "empty_column.favourites": "Dingun no tiene indikado ke le plaze una de tus publikasyones. Kuando algun lo ayga, se amostrara aki.",
   "empty_column.follow_requests": "No tienes dinguna solisitud de suivante. Kuando risivas una, se amostrara aki.",
-  "empty_column.followed_tags": "Ainda no tienes segido dinguna etiketa. Kuando lo agas, se amostraran aki.",
+  "empty_column.followed_tags": "Ainda no tienes segido dinguna etiketa. Kuando lo aygas, se amostraran aki.",
   "empty_column.hashtag": "Ainda no ay niente en esta etiketa.",
   "empty_column.home": "Tu linya de tiempo esta vaziya! Sige a mas personas para inchirla.",
   "empty_column.list": "Ainda no ay niente en esta lista. Kuando miembros de esta lista publiken muevas publikasyones, se amostraran aki.",
@@ -236,14 +244,14 @@
   "empty_column.notifications": "Ainda no tienes dingun avizo. Kuando otras personas enteraktuen kontigo, se amostraran aki.",
   "empty_column.public": "No ay niente aki! Eskrive algo publikamente o manualmente sige utilizadores de otros sirvidores para inchirlo",
   "error.unexpected_crash.explanation": "Por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador, no se puede amostrar esta pajina djustamente.",
-  "error.unexpected_crash.explanation_addons": "No se puede amostrar esta pajina djustamente. Este yerro probavlemente fue kauzado por un komplimento del navigador o por un enstrumento de traduksion.",
+  "error.unexpected_crash.explanation_addons": "No se puede amostrar esta pajina djustamente. Este yerro probavlemente fue kauzado por un komplimento del navigador o por un enstrumento de traduksyon.",
   "error.unexpected_crash.next_steps": "Aprova arefreskar la pajina. Si esto no ayuda, es posivle ke ainda puedas kulaenar Mastodon kon otro navigador u otra aplikasyon nativa.",
-  "error.unexpected_crash.next_steps_addons": "Aprova inkapasitarlos i arefreskar la pajina. Si esto no ayuda, es posivle ke ainda puedas kulanear Mastodon kon otro navigador u otra aplikasyon nativa.",
-  "errors.unexpected_crash.copy_stacktrace": "Kopiar stacktrace al portapapeles",
-  "errors.unexpected_crash.report_issue": "Raportar problema",
+  "error.unexpected_crash.next_steps_addons": "Aprova inkapasitarlos i arefreskar la pajina. Si esto no te ayuda, es posivle ke ainda puedas kulanear Mastodon kon otro navigador u otra aplikasyon nativa.",
+  "errors.unexpected_crash.copy_stacktrace": "Kopia stacktrace al portapapeles",
+  "errors.unexpected_crash.report_issue": "Raporta problema",
   "explore.search_results": "Rizultados de bushkeda",
   "explore.suggested_follows": "Djente",
-  "explore.title": "Eksplorar",
+  "explore.title": "Eksplora",
   "explore.trending_links": "Haberes",
   "explore.trending_statuses": "Publikasyones",
   "explore.trending_tags": "Etiketas",
@@ -259,22 +267,28 @@
   "filter_modal.select_filter.context_mismatch": "no se aplika a este konteksto",
   "filter_modal.select_filter.expired": "kadukado",
   "filter_modal.select_filter.prompt_new": "Mueva kategoria: {name}",
-  "filter_modal.select_filter.search": "Bushkar o kriyar",
-  "filter_modal.select_filter.subtitle": "Kulanear una kategoria egzistente o kriya mueva",
-  "filter_modal.select_filter.title": "Filtrar esta publikasyon",
-  "filter_modal.title.status": "Filtrar una publikasyon",
+  "filter_modal.select_filter.search": "Bushka o kriya",
+  "filter_modal.select_filter.subtitle": "Kulanea una kategoria egzistente o kriya mueva",
+  "filter_modal.select_filter.title": "Filtra esta publikasyon",
+  "filter_modal.title.status": "Filtra una publikasyon",
   "firehose.all": "Todo",
   "firehose.local": "Este sirvidor",
   "firehose.remote": "Otros sirvidores",
   "follow_request.authorize": "Autoriza",
   "follow_request.reject": "Refuza",
   "follow_requests.unlocked_explanation": "Aunke tu kuento no esta serrado, la taifa de {domain} kreye ke talvez keres revizar manualmente las solisitudes de segimento de estos kuentos.",
+  "follow_suggestions.curated_suggestion": "Sujestion del sirvidor",
+  "follow_suggestions.dismiss": "No amostra mas",
+  "follow_suggestions.personalized_suggestion": "Sujestion personalizada",
+  "follow_suggestions.popular_suggestion": "Sujestion populara",
+  "follow_suggestions.view_all": "Ve todos",
+  "follow_suggestions.who_to_follow": "A ken segir",
   "followed_tags": "Etiketas segidas",
   "footer.about": "Sovre mozotros",
   "footer.directory": "Katalogo de profiles",
   "footer.get_app": "Abasha aplikasyon",
-  "footer.invite": "Envitar a djente",
-  "footer.keyboard_shortcuts": "Akortamientos de klavye",
+  "footer.invite": "Envita a djente",
+  "footer.keyboard_shortcuts": "Akortamientos de klaviatura",
   "footer.privacy_policy": "Politika de privasita",
   "footer.source_code": "Ve kodiche fuente",
   "footer.status": "Estado",
@@ -284,24 +298,20 @@
   "hashtag.column_header.tag_mode.any": "o {additional}",
   "hashtag.column_header.tag_mode.none": "sin {additional}",
   "hashtag.column_settings.select.no_options_message": "Rekomendasyones no topadas",
-  "hashtag.column_settings.select.placeholder": "Meter etiketas…",
+  "hashtag.column_settings.select.placeholder": "Mete etiketas…",
   "hashtag.column_settings.tag_mode.all": "Todos estos",
   "hashtag.column_settings.tag_mode.any": "Kualsekera de estos",
   "hashtag.column_settings.tag_mode.none": "Dinguno de estos",
-  "hashtag.column_settings.tag_toggle": "Inkluir etiketas adisionalas en esta kolumna",
+  "hashtag.column_settings.tag_toggle": "Inkluye etiketas adisionalas en esta kolumna",
   "hashtag.counter_by_accounts": "{count, plural, one {{counter} partisipante} other {{counter} partisipantes}}",
   "hashtag.counter_by_uses": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}",
   "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}} oy",
-  "hashtag.follow": "Segir etiketa",
-  "hashtag.unfollow": "Desegir etiketa",
+  "hashtag.follow": "Sige etiketa",
+  "hashtag.unfollow": "Desige etiketa",
   "hashtags.and_other": "…i {count, plural, one {}other {# mas}}",
-  "home.actions.go_to_explore": "Ve los trendes",
-  "home.actions.go_to_suggestions": "Topa a djente para segir",
   "home.column_settings.basic": "Opsyones bazikas",
-  "home.column_settings.show_reblogs": "Amostrar repartajasyones",
-  "home.column_settings.show_replies": "Amostrar repuestas",
-  "home.explore_prompt.body": "Tu linya prinsipala es una mikstura de publikasyones kon etiketas a las kualas eskojites a segir, la djente a la kuala eskojites a segir i las publikasyones ke eyos repartajan. Si esta demaziado trankila, puedes:",
-  "home.explore_prompt.title": "Esta es tu baza prinsipala en Mastodon.",
+  "home.column_settings.show_reblogs": "Amostra repartajasyones",
+  "home.column_settings.show_replies": "Amostra repuestas",
   "home.hide_announcements": "Eskonde pregones",
   "home.pending_critical_update.body": "Por favor aktualiza tu sirvidor de Mastodon pishin!",
   "home.pending_critical_update.link": "Ve aktualizasyones",
@@ -337,7 +347,7 @@
   "keyboard_shortcuts.favourite": "Endika ke te plaze una publikasyon",
   "keyboard_shortcuts.favourites": "Avre lista de favoritos",
   "keyboard_shortcuts.federated": "Avre linya federada",
-  "keyboard_shortcuts.heading": "Akortamientos de klavye",
+  "keyboard_shortcuts.heading": "Akortamientos de klaviatura",
   "keyboard_shortcuts.home": "Avre linya prinsipala",
   "keyboard_shortcuts.hotkey": "Klave rapido",
   "keyboard_shortcuts.legend": "Amostra esta lejenda",
@@ -397,7 +407,7 @@
   "navigation_bar.direct": "Enmentaduras privadas",
   "navigation_bar.discover": "Diskuvre",
   "navigation_bar.domain_blocks": "Domenos blokados",
-  "navigation_bar.explore": "Eksplorar",
+  "navigation_bar.explore": "Eksplora",
   "navigation_bar.favourites": "Te plazen",
   "navigation_bar.filters": "Biervos silensiados",
   "navigation_bar.follow_requests": "Solisitudes de segimiento",
@@ -410,7 +420,7 @@
   "navigation_bar.personal": "Personal",
   "navigation_bar.pins": "Publikasyones fiksadas",
   "navigation_bar.preferences": "Preferensyas",
-  "navigation_bar.public_timeline": "Linya de tiempo federada",
+  "navigation_bar.public_timeline": "Linya federada",
   "navigation_bar.search": "Bushka",
   "navigation_bar.security": "Segurita",
   "not_signed_in_indicator.not_signed_in": "Nesesitas konektarse kon tu kuento para akseder este rekurso.",
@@ -425,7 +435,7 @@
   "notification.reblog": "{name} repartajo tu publikasyon",
   "notification.status": "{name} publiko algo",
   "notification.update": "{name} edito una publikasyon",
-  "notifications.clear": "Efasar avizos",
+  "notifications.clear": "Efasa avizos",
   "notifications.clear_confirmation": "Estas siguro ke keres permanentemente efasar todos tus avizos?",
   "notifications.column_settings.admin.report": "Muveos raportos:",
   "notifications.column_settings.admin.sign_up": "Muevas enrejistrasyones:",
@@ -441,10 +451,10 @@
   "notifications.column_settings.push": "Avizos arrepushados",
   "notifications.column_settings.reblog": "Repartajasyones:",
   "notifications.column_settings.show": "Amostra en kolumna",
-  "notifications.column_settings.sound": "Reproduzir son",
+  "notifications.column_settings.sound": "Reproduse son",
   "notifications.column_settings.status": "Publikasyones muevas:",
   "notifications.column_settings.unread_notifications.category": "Avizos no meldados",
-  "notifications.column_settings.unread_notifications.highlight": "Avaliar avizos no meldados",
+  "notifications.column_settings.unread_notifications.highlight": "Avalia avizos no meldados",
   "notifications.column_settings.update": "Edisyones:",
   "notifications.filter.all": "Todos",
   "notifications.filter.boosts": "Repartajasyones",
@@ -459,17 +469,19 @@
   "notifications.permission_denied": "Avizos de ensimameza no estan desponivles porke ya se tiene refuzado el permiso",
   "notifications.permission_denied_alert": "\"No se pueden kapasitar los avizos de ensimameza, porke ya se tiene refuzado el permiso de navigador",
   "notifications.permission_required": "Avizos de ensimameza no estan desponivles porke los nesesarios permisos no tienen sido risividos.",
-  "notifications_permission_banner.enable": "Kapasitar avizos de ensimameza",
+  "notifications_permission_banner.enable": "Kapasita avizos de ensimameza",
   "notifications_permission_banner.how_to_control": "Para risivir avizos kuando Mastodon no esta avierto, kapasita avizos de ensimameza. Puedes kontrolar presizamente kualos tipos de enteraksiones djeneren avizos de ensimameza kon el boton {icon} arriva kuando esten kapasitadas.",
-  "notifications_permission_banner.title": "Nunka te piedres niente",
+  "notifications_permission_banner.title": "Nunkua te piedres niente",
   "onboarding.action.back": "Va atras",
   "onboarding.actions.back": "Va atras",
   "onboarding.actions.go_to_explore": "Va a los trendes",
   "onboarding.actions.go_to_home": "Va a tu linya prinsipala",
   "onboarding.compose.template": "Ke haber, #Mastodon?",
   "onboarding.follows.empty": "Malorozamente, no se pueden amostrar rezultados en este momento. Puedes aprovar uzar la bushkeda o navigar por la pajina de eksplorasyon para topar personas a las que segir, o aprovarlo de muevo mas tadre.",
+  "onboarding.follows.lead": "Tu linya prinsipala es la forma prinsipala de eksperiensa de Mastodon. Kuantas mas personas sigas, sera mas aktiva o interesante. Para ampesar, aki ay algunas sujestyones:",
   "onboarding.follows.title": "Personaliza tu linya prinsipala",
   "onboarding.profile.discoverable": "Faz ke mi profil apareska en bushkedas",
+  "onboarding.profile.discoverable_hint": "Kuando permites ke tu profil sea diskuvriravle en Mastodon, tus publikasyones podran apareser en rezultados de bushkedas i trendes i tu profil podra ser sujerido a personas kon intereses similares a los tuyos.",
   "onboarding.profile.display_name": "Nombre amostrado",
   "onboarding.profile.display_name_hint": "Tu nombre para amostrar.",
   "onboarding.profile.lead": "Siempre puedes kompletar esto mas tadre en las preferensyas, ande tambien ay mas opsyones de personalizasyon.",
@@ -483,16 +495,21 @@
   "onboarding.share.message": "Soy {username} en #Mastodon! Segidme en {url}",
   "onboarding.share.next_steps": "Posivles sigientes pasos:",
   "onboarding.share.title": "Partaja tu profil",
+  "onboarding.start.lead": "Agora eres parte de Mastodon, una red sosyala unika y desentralizada ande tu, no un algoritmo, puedes personalizar tu propya eksperyensya. Te entrodiziramos a esta mueva frontera sosyala:",
   "onboarding.start.skip": "No nesesitas ayudo para ampesar?",
   "onboarding.start.title": "Lo logrates!",
   "onboarding.steps.follow_people.body": "El buto de Mastodon es segir a djente interesante.",
   "onboarding.steps.follow_people.title": "Personaliza tu linya prinsipala",
-  "onboarding.steps.publish_status.body": "Puedes introdusirte al mundo con teksto, fotos, videos o anketas {emoji}",
+  "onboarding.steps.publish_status.body": "Puedes introdusirte al mundo kon teksto, fotos, videos o anketas {emoji}",
   "onboarding.steps.publish_status.title": "Eskrive tu primera publikasyon",
   "onboarding.steps.setup_profile.body": "Kompleta tu profil para aumentar tus enteraksyones.",
   "onboarding.steps.setup_profile.title": "Personaliza tu profil",
-  "onboarding.steps.share_profile.body": "Informe a tus amigos komo toparte en Mastodon",
+  "onboarding.steps.share_profile.body": "Informa a tus amigos komo toparte en Mastodon",
   "onboarding.steps.share_profile.title": "Partaja tu profil de Mastodon",
+  "onboarding.tips.2fa": "<strong>Saviyas?</strong> Puedes protejar tu kuento konfigurando la autentifikasyon de dos pasos en la konfigurasyon de tu kuento. Funksyona kon kualsekera aplikasyon de TOTP ke eskojas. No ay menester de uzar tu numero de telefon!",
+  "onboarding.tips.accounts_from_other_servers": "<strong>Saviyas?</strong> komo Mastodon es desentralizado, algunos profiles que topas estan lokalizados en sirvidores distinktos del tuyo. I malgrado esto, puedes enteraktuar kon eyos! Sus sirvidor forma la sigunda mitad de sus nombres de utilizador!",
+  "onboarding.tips.migration": "<strong>Savias?</strong> Si en el avenir pensas ke {domain} no es el sirvidor adekuado para ti, puedes moverte a otruno sirvidor de Mastodon sir pedrer a tus suivantes. Inkluzo puedes ser el balabay de tu propyo sirvidor!",
+  "onboarding.tips.verification": "<strong>Savias?</strong> Puedes verifikar tu kuento ponyendo un atadijo a tu profil de Mastodon en tu propio sitio web i adjustando el sitio a tu profil. No ay menester de pagamyentos o dokumentos!",
   "password_confirmation.exceeds_maxlength": "La konfirmasyon de kod es demaziado lunga",
   "password_confirmation.mismatching": "Los dos kodes son desferentes",
   "picture_in_picture.restore": "Restora",
@@ -507,7 +524,15 @@
   "poll_button.add_poll": "Adjusta anketa",
   "poll_button.remove_poll": "Kita anketa",
   "privacy.change": "Troka privasita de publikasyon",
+  "privacy.direct.long": "Todos enmentados en la publikasyon",
+  "privacy.direct.short": "Djente espesifika",
+  "privacy.private.long": "Solo para tus suivantes",
+  "privacy.private.short": "Suivantes",
+  "privacy.public.long": "Todos en i afuera de Mastodon",
   "privacy.public.short": "Publiko",
+  "privacy.unlisted.additional": "Esto funksyona exaktamente komo publiko, eksepto ke la publikasyon no aparesera en linyas publikas o etiketas, la eksplorasyon o bushkedas de Mastodon, inkluzo si kapasites esto para tu kuento.",
+  "privacy.unlisted.long": "Vizivle para todos, ama no en trendes, etiketas o linyas publikas",
+  "privacy.unlisted.short": "Publiko i silensyozo",
   "privacy_policy.last_updated": "Ultima aktualizasyon: {date}",
   "privacy_policy.title": "Politika de privasita",
   "recommended": "Rekomendado",
@@ -525,7 +550,9 @@
   "relative_time.minutes": "{number} m",
   "relative_time.seconds": "{number} s",
   "relative_time.today": "oy",
+  "reply_indicator.attachments": "{count, plural, one {# anekso} other {# aneksos}}",
   "reply_indicator.cancel": "Anula",
+  "reply_indicator.poll": "Anketa",
   "report.block": "Bloka",
   "report.block_explanation": "No veras sus publikasyones. No podra ver tus publikasyones ni segirte. Podra saver ke le blokates.",
   "report.categories.legal": "Legal",
@@ -538,7 +565,7 @@
   "report.category.title_status": "publikasyon",
   "report.close": "Fecho",
   "report.comment.title": "Ay algo mas ke deveriamos saver?",
-  "report.forward": "Reembiar a {target}",
+  "report.forward": "Reembia a {target}",
   "report.forward_hint": "Este kuento es de otro sirvidor. Embiar una kopia anonimizada del raporto ayi tamyen?",
   "report.mute": "Silensia",
   "report.mute_explanation": "No veras sus publikasyones. Ainda pueden segirte i no va saver ke le silensiates.",
@@ -558,19 +585,19 @@
   "report.rules.title": "Kualas reglas estan violadas?",
   "report.statuses.subtitle": "Eskoje todas ke korespondan",
   "report.statuses.title": "Ay alguna publikasyon ke suporta este raporto?",
-  "report.submit": "Embiar",
+  "report.submit": "Embia",
   "report.target": "Raportando a {target}",
   "report.thanks.take_action": "Aki estan tus opsyones para kontrolar lo ke ves en Mastodon:",
   "report.thanks.take_action_actionable": "Mientres revizamos esto, puedes tomar aksyones kontra @{name}:",
   "report.thanks.title": "No keres ver esto?",
   "report.thanks.title_actionable": "Mersi por raportarlo, vamos revizarlo.",
-  "report.unfollow": "Desegir a @{name}",
+  "report.unfollow": "Desige a @{name}",
   "report.unfollow_explanation": "Estas sigiendo este kuento. Para no ver sus publikasyones en tu linya de tiempo, puedes deshar de segirlo.",
   "report_notification.attached_statuses": "{count, plural, one {{count} publikasyon} other {{count} publikasyones}} atadas",
   "report_notification.categories.legal": "Legal",
   "report_notification.categories.other": "Otros",
   "report_notification.categories.spam": "Spam",
-  "report_notification.categories.violation": "Violasion de reglas",
+  "report_notification.categories.violation": "Violasyon de reglas",
   "report_notification.open": "Avre raporto",
   "search.no_recent_searches": "No ay bushkedas resientes",
   "search.placeholder": "Bushka",
@@ -584,7 +611,7 @@
   "search_popout.full_text_search_logged_out_message": "Solo desponivle kuando estas konektado kon tu kuento.",
   "search_popout.language_code": "kodiche ISO de lingua",
   "search_popout.options": "Opsyones de bushkeda",
-  "search_popout.quick_actions": "Aksiones rapidas",
+  "search_popout.quick_actions": "Aksyones rapidas",
   "search_popout.recent": "Bushkedas resientes",
   "search_popout.specific_date": "dato espesifiko",
   "search_popout.user": "utilizador",
@@ -661,7 +688,7 @@
   "status.translate": "Trezlada",
   "status.translated_from_with": "Trezladado dizde {lang} kon {provider}",
   "status.uncached_media_warning": "Vista previa no desponivle",
-  "status.unmute_conversation": "Desilensiar konversasyon",
+  "status.unmute_conversation": "Desilensia konversasyon",
   "status.unpin": "Defiksar del profil",
   "subscribed_languages.lead": "Solo publikasyones en linguas eskojidas se amostraran en tus linya de tiempo prinsipala i listas dempues del trokamiento. Eskoje dinguna para risivir publikasyones en todas las linguas.",
   "subscribed_languages.save": "Guadra trokamientos",

+ 67 - 4
app/javascript/mastodon/locales/lt.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Tavo paskyra nėra {locked}. Bet kas gali sekti tave ir peržiūrėti tik sekėjams skirtus įrašus.",
   "compose_form.lock_disclaimer.lock": "užrakinta",
   "compose_form.placeholder": "Kas tavo mintyse?",
-  "compose_form.poll.add_option": "Pridėti pasirinkimą",
   "compose_form.poll.duration": "Apklausos trukmė",
   "compose_form.poll.multiple": "Keli pasirinkimai",
   "compose_form.poll.option_placeholder": "{number} pasirinkimas",
-  "compose_form.poll.remove_option": "Pašalinti šį pasirinkimą",
   "compose_form.poll.single": "Pasirinkti vieną",
   "compose_form.poll.switch_to_multiple": "Keisti apklausą, kad būtų galima pasirinkti kelis pasirinkimus",
   "compose_form.poll.switch_to_single": "Pakeisti apklausą, kad būtų galima pasirinkti vieną variantą",
@@ -271,6 +269,12 @@
   "follow_request.authorize": "Autorizuoti",
   "follow_request.reject": "Atmesti",
   "follow_requests.unlocked_explanation": "Nors tavo paskyra neužrakinta, {domain} personalas mano, kad galbūt norėsi rankiniu būdu patikrinti šių paskyrų sekimo užklausas.",
+  "follow_suggestions.curated_suggestion": "Redaktorių pasirinkimas",
+  "follow_suggestions.dismiss": "Daugiau nerodyti",
+  "follow_suggestions.personalized_suggestion": "Suasmenintas pasiūlymas",
+  "follow_suggestions.popular_suggestion": "Populiarus pasiūlymas",
+  "follow_suggestions.view_all": "Peržiūrėti viską",
+  "follow_suggestions.who_to_follow": "Ką sekti",
   "followed_tags": "Sekamos saitažodžiai",
   "footer.about": "Apie",
   "footer.directory": "Profilių katalogas",
@@ -297,18 +301,19 @@
   "hashtag.follow": "Sekti grotažymę",
   "hashtag.unfollow": "Nesekti grotažymės",
   "hashtags.and_other": "…ir{count, plural,other {#daugiau}}",
-  "home.actions.go_to_explore": "Žiūrėti kas populiaru",
-  "home.actions.go_to_suggestions": "Rasti žmonių sekimui",
   "home.column_settings.basic": "Pagrindinis",
   "home.column_settings.show_reblogs": "Rodyti \"boosts\"",
   "home.column_settings.show_replies": "Rodyti atsakymus",
   "home.hide_announcements": "Slėpti skelbimus",
+  "home.pending_critical_update.link": "Žiūrėti atnaujinimus",
+  "home.pending_critical_update.title": "Galimas kritinis saugumo atnaujinimas!",
   "interaction_modal.no_account_yet": "Nesi Mastodon?",
   "interaction_modal.on_another_server": "Kitame serveryje",
   "interaction_modal.on_this_server": "Šiame serveryje",
   "interaction_modal.sign_in": "Nesi prisijungęs (-usi) prie šio serverio. Kur yra laikoma tavo paskyra?",
   "interaction_modal.sign_in_hint": "Patarimas: tai svetainė, kurioje užsiregistravai. Jei neprisimeni, ieškok sveikinimo el. laiško savo pašto dėžutėje. Taip pat gali įvesti visą savo naudotojo vardą (pvz., @Mastodon@mastodon.social).",
   "interaction_modal.title.favourite": "Mėgstamiausias {name} įrašas",
+  "interaction_modal.title.follow": "Sekti {name}",
   "keyboard_shortcuts.back": "to navigate back",
   "keyboard_shortcuts.blocked": "to open blocked users list",
   "keyboard_shortcuts.boost": "to boost",
@@ -341,7 +346,24 @@
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
   "lightbox.close": "Uždaryti",
+  "lightbox.next": "Kitas",
+  "lightbox.previous": "Ankstesnis",
+  "limited_account_hint.action": "Vis tiek rodyti profilį",
+  "limited_account_hint.title": "Šį profilį paslėpė {domain} moderatoriai.",
+  "link_preview.author": "Sukūrė {name}",
+  "lists.account.add": "Pridėti į sąrašą",
+  "lists.account.remove": "Pašalinti iš sąrašo",
+  "lists.delete": "Ištrinti sąrašą",
+  "lists.edit": "Redaguoti sąrašą",
+  "lists.edit.submit": "Prierašo pakeitimas",
   "lists.new.create": "Pridėti sąrašą",
+  "lists.new.title_placeholder": "Naujas sąrašo pavadinimas",
+  "lists.replies_policy.followed": "Bet kuris sekamas naudotojas",
+  "lists.replies_policy.list": "Sąrašo nariai",
+  "lists.replies_policy.none": "Nei vienas",
+  "lists.replies_policy.title": "Rodyti atsakymus:",
+  "lists.search": "Ieškoti tarp sekamų žmonių",
+  "lists.subheading": "Jūsų sąrašai",
   "loading_indicator.label": "Kraunama…",
   "media_gallery.toggle_visible": "{number, plural, one {Slėpti vaizdą} few {Slėpti vaizdus} many {Slėpti vaizdo} other {Slėpti vaizdų}}",
   "moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu yra išjungta, nes persikėlei į {movedToAccount}.",
@@ -506,6 +528,11 @@
   "report.reasons.legal": "Tai nelegalu",
   "report.reasons.legal_description": "Manai, kad tai pažeidžia tavo arba serverio šalies įstatymus",
   "report.reasons.other": "Tai kažkas kita",
+  "report.reasons.other_description": "Šis klausimas neatitinka kitų kategorijų",
+  "report.reasons.spam": "Tai šlamštas",
+  "report.reasons.spam_description": "Kenkėjiškos nuorodos, netikras įsitraukimas arba pasikartojantys atsakymai",
+  "report.reasons.violation": "Tai pažeidžia serverio taisykles",
+  "report.reasons.violation_description": "Žinai, kad tai pažeidžia konkrečias taisykles",
   "report.rules.subtitle": "Pasirink viską, kas tinka",
   "report.rules.title": "Kokios taisyklės pažeidžiamos?",
   "report.statuses.subtitle": "Pasirinkti viską, kas tinka",
@@ -519,35 +546,71 @@
   "report.unfollow": "Nebesekti @{name}",
   "report.unfollow_explanation": "Jūs sekate šią paskyrą. Norėdami nebematyti jų įrašų savo pagrindiniame kanale, panaikinkite jų sekimą.",
   "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+  "report_notification.categories.legal": "Legalus",
+  "report_notification.categories.other": "Kita",
+  "report_notification.categories.spam": "Šlamštas",
+  "report_notification.categories.violation": "Taisyklės pažeidimas",
+  "search.no_recent_searches": "Paieškos įrašų nėra",
   "search.placeholder": "Paieška",
+  "search.quick_action.account_search": "Profiliai, atitinkantys {x}",
+  "search.quick_action.go_to_account": "Eiti į profilį {x}",
+  "search.quick_action.go_to_hashtag": "Eiti į hashtag {x}",
+  "search.quick_action.open_url": "Atidaryti URL adresą Mastodon",
+  "search.quick_action.status_search": "Pranešimai, atitinkantys {x}",
   "search.search_or_paste": "Ieškok arba įklijuok URL",
   "search_popout.full_text_search_disabled_message": "Nepasiekima {domain}.",
   "search_popout.full_text_search_logged_out_message": "Pasiekiama tik prisijungus.",
   "search_popout.language_code": "ISO kalbos kodas",
+  "search_popout.options": "Paieškos nustatymai",
+  "search_popout.quick_actions": "Greiti veiksmai",
+  "search_popout.recent": "Naujausios paieškos",
   "search_popout.specific_date": "konkreti data",
   "search_popout.user": "naudotojas",
   "search_results.accounts": "Profiliai",
   "search_results.all": "Visi",
   "search_results.hashtags": "Saitažodžiai",
   "search_results.nothing_found": "Nepavyko rasti nieko pagal šiuos paieškos terminus.",
+  "search_results.see_all": "Žiūrėti viską",
   "search_results.statuses": "Toots",
+  "search_results.title": "Ieškoti {q}",
   "server_banner.about_active_users": "Žmonės, kurie naudojosi šiuo serveriu per pastarąsias 30 dienų (mėnesio aktyvūs naudotojai)",
   "server_banner.active_users": "aktyvūs naudotojai",
+  "server_banner.administered_by": "Administruoja:",
+  "server_banner.introduction": "{domain} yra decentralizuoto socialinio tinklo, kurį valdo {mastodon}, dalis.",
+  "server_banner.learn_more": "Sužinoti daugiau",
+  "server_banner.server_stats": "Serverio statistika:",
+  "sign_in_banner.create_account": "Sukurti paskyrą",
   "sign_in_banner.sign_in": "Prisijungimas",
+  "sign_in_banner.sso_redirect": "Prisijungti arba Registruotis",
   "sign_in_banner.text": "Prisijunk, kad galėtum sekti profilius arba saitažodžius, mėgsti, bendrinti ir atsakyti į įrašus. Taip pat gali bendrauti iš savo paskyros kitame serveryje.",
+  "status.admin_account": "Atvira moderavimo sąsaja @{name}",
+  "status.admin_domain": "Atvira moderavimo sąsaja {domain}",
   "status.admin_status": "Open this status in the moderation interface",
+  "status.block": "Blokuoti @{name}",
+  "status.bookmark": "Žymė",
   "status.copy": "Kopijuoti nuorodą į įrašą",
   "status.delete": "Ištrinti",
+  "status.detailed_status": "Išsami pokalbio peržiūra",
+  "status.direct": "Privačiai paminėti @{name}",
+  "status.direct_indicator": "Privatus paminėjimas",
   "status.edit": "Redaguoti",
   "status.edited": "Redaguota {date}",
   "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
+  "status.embed": "Įterptas",
+  "status.favourite": "Mėgstamiausias",
+  "status.filter": "Filtruoti šį įrašą",
+  "status.filtered": "Filtruota",
   "status.hide": "Slėpti įrašą",
+  "status.history.created": "{name} sukurtas {date}",
+  "status.history.edited": "{name} redaguotas {date}",
   "status.load_more": "Pakrauti daugiau",
   "status.media.open": "Spausk, kad atidaryti",
   "status.media.show": "Spausk, kad matyti",
   "status.media_hidden": "Paslėpta medija",
   "status.mention": "Paminėti @{name}",
   "status.more": "Daugiau",
+  "status.mute": "Nutildyti @{name}",
+  "status.mute_conversation": "Nutildyti pokalbį",
   "status.open": "Expand this status",
   "status.pin": "Prisegti prie profilio",
   "status.pinned": "Prisegtas įrašas",

+ 0 - 4
app/javascript/mastodon/locales/lv.json

@@ -291,13 +291,9 @@
   "hashtag.follow": "Sekot tēmturim",
   "hashtag.unfollow": "Pārstāt sekot tēmturim",
   "hashtags.and_other": "..un {count, plural, other {# vairāk}}",
-  "home.actions.go_to_explore": "Skatīt tendences",
-  "home.actions.go_to_suggestions": "Atrodi cilvēkus kam sekot",
   "home.column_settings.basic": "Pamata",
   "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus",
   "home.column_settings.show_replies": "Rādīt atbildes",
-  "home.explore_prompt.body": "Tavā mājas plūsmā būs dažādu ziņu sajaukums no atsaucēm, kurām esi izvēlējies sekot, personām, kurām esi izvēlējies sekot, un ziņām, kuras tās izceļ. Ja tas šķiet pārāk kluss, iespējams, vēlēsies:",
-  "home.explore_prompt.title": "Šī ir tava Mastodon mājvieta.",
   "home.hide_announcements": "Slēpt paziņojumus",
   "home.pending_critical_update.body": "Lūdzu, pēc iespējas ātrāk atjaunini savu Mastodon serveri!",
   "home.pending_critical_update.link": "Skatīt jauninājumus",

+ 34 - 4
app/javascript/mastodon/locales/ms.json

@@ -21,6 +21,7 @@
   "account.blocked": "Disekat",
   "account.browse_more_on_origin_server": "Layari selebihnya di profil asal",
   "account.cancel_follow_request": "Menarik balik permintaan mengikut",
+  "account.copy": "Salin pautan ke profil",
   "account.direct": "Sebut secara persendirian @{name}",
   "account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran",
   "account.domain_blocked": "Domain disekat",
@@ -31,6 +32,7 @@
   "account.featured_tags.last_status_never": "Tiada hantaran",
   "account.featured_tags.title": "Tanda pagar pilihan {name}",
   "account.follow": "Ikuti",
+  "account.follow_back": "Ikut balik",
   "account.followers": "Pengikut",
   "account.followers.empty": "Belum ada yang mengikuti pengguna ini.",
   "account.followers_counter": "{count, plural, one {{counter} Pengikut} other {{counter} Pengikut}}",
@@ -51,6 +53,7 @@
   "account.mute_notifications_short": "Redam pemberitahuan",
   "account.mute_short": "Redam",
   "account.muted": "Dibisukan",
+  "account.mutual": "Rakan kongsi",
   "account.no_bio": "Tiada penerangan diberikan.",
   "account.open_original_page": "Buka halaman asal",
   "account.posts": "Hantaran",
@@ -143,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "dikunci",
   "compose_form.placeholder": "Apakah yang sedang anda fikirkan?",
   "compose_form.poll.duration": "Tempoh undian",
+  "compose_form.poll.multiple": "Pelbagai pilihan",
+  "compose_form.poll.option_placeholder": "Pilihan {number}",
+  "compose_form.poll.single": "Pilih satu",
   "compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian",
   "compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal",
+  "compose_form.poll.type": "Gaya",
+  "compose_form.publish": "Siaran",
   "compose_form.publish_form": "Terbit",
+  "compose_form.reply": "Balas",
+  "compose_form.save_changes": "Kemas kini",
   "compose_form.spoiler.marked": "Buang amaran kandungan",
   "compose_form.spoiler.unmarked": "Tambah amaran kandungan",
+  "compose_form.spoiler_placeholder": "Amaran kandungan (pilihan)",
   "confirmation_modal.cancel": "Batal",
   "confirmations.block.block_and_report": "Sekat & Lapor",
   "confirmations.block.confirm": "Sekat",
@@ -179,6 +190,7 @@
   "conversation.mark_as_read": "Tanda sudah dibaca",
   "conversation.open": "Lihat perbualan",
   "conversation.with": "Dengan {names}",
+  "copy_icon_button.copied": "Disalin ke papan klip",
   "copypaste.copied": "Disalin",
   "copypaste.copy_to_clipboard": "Salin ke papan klip",
   "directory.federated": "Dari fediverse yang diketahui",
@@ -210,6 +222,7 @@
   "emoji_button.search_results": "Hasil carian",
   "emoji_button.symbols": "Simbol",
   "emoji_button.travel": "Kembara & Tempat",
+  "empty_column.account_hides_collections": "Pengguna ini telah memilih untuk tidak menyediakan informasi tersebut",
   "empty_column.account_suspended": "Akaun digantung",
   "empty_column.account_timeline": "Tiada hantaran di sini!",
   "empty_column.account_unavailable": "Profil tidak tersedia",
@@ -264,6 +277,11 @@
   "follow_request.authorize": "Benarkan",
   "follow_request.reject": "Tolak",
   "follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.",
+  "follow_suggestions.curated_suggestion": "Pilihan Editor",
+  "follow_suggestions.dismiss": "Jangan papar lagi",
+  "follow_suggestions.personalized_suggestion": "Cadangan peribadi",
+  "follow_suggestions.popular_suggestion": "Cadangan terkenal",
+  "follow_suggestions.view_all": "Lihat semua",
   "followed_tags": "Topik terpilih",
   "footer.about": "Perihal",
   "footer.directory": "Direktori profil",
@@ -284,16 +302,15 @@
   "hashtag.column_settings.tag_mode.any": "Mana-mana daripada yang ini",
   "hashtag.column_settings.tag_mode.none": "Tiada apa pun daripada yang ini",
   "hashtag.column_settings.tag_toggle": "Sertakan tag tambahan untuk lajur ini",
+  "hashtag.counter_by_accounts": "{count, plural, other {{counter} peserta}}",
+  "hashtag.counter_by_uses": "{count, plural, other {{counter} siaran}}",
+  "hashtag.counter_by_uses_today": "{count, plural, other {{counter} siaran}} hari ini",
   "hashtag.follow": "Ikuti hashtag",
   "hashtag.unfollow": "Nyahikut tanda pagar",
   "hashtags.and_other": "…dan {count, plural, other {# more}}",
-  "home.actions.go_to_explore": "Lihat apa yand sedang tren",
-  "home.actions.go_to_suggestions": "Cari orang untuk diikuti",
   "home.column_settings.basic": "Asas",
   "home.column_settings.show_reblogs": "Tunjukkan galakan",
   "home.column_settings.show_replies": "Tunjukkan balasan",
-  "home.explore_prompt.body": "Suapan rumah anda akan mempunyai gabungan pos daripada hashtag yang telah anda pilih untuk diikuti, orang yang telah anda pilih untuk diikuti dan pos yang mereka tingkatkan. Jika itu terasa terlalu senyap, anda mungkin mahu:",
-  "home.explore_prompt.title": "Ini adalah pusat operasi anda dalam Mastodon.",
   "home.hide_announcements": "Sembunyikan pengumuman",
   "home.pending_critical_update.body": "Sila kemas kini pelayan Mastodon anda secepat yang mungkin!",
   "home.pending_critical_update.link": "Lihat pengemaskinian",
@@ -374,6 +391,7 @@
   "lists.search": "Cari dalam kalangan orang yang anda ikuti",
   "lists.subheading": "Senarai anda",
   "load_pending": "{count, plural, one {# item baharu} other {# item baharu}}",
+  "loading_indicator.label": "Memuatkan…",
   "media_gallery.toggle_visible": "{number, plural, other {Sembunyikan imej}}",
   "moved_to_account_banner.text": "Akaun anda {disabledAccount} kini dinyahdayakan kerana anda berpindah ke {movedToAccount}.",
   "mute_modal.duration": "Tempoh",
@@ -461,6 +479,11 @@
   "onboarding.follows.empty": "Malangnya, tiada hasil dapat ditunjukkan sekarang. Anda boleh cuba menggunakan carian atau menyemak imbas halaman teroka untuk mencari orang untuk diikuti atau cuba lagi kemudian.",
   "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
   "onboarding.follows.title": "Popular on Mastodon",
+  "onboarding.profile.display_name": "Nama paparan",
+  "onboarding.profile.display_name_hint": "Nama penuh anda atau nama anda yang menyeronokkan…",
+  "onboarding.profile.note_hint": "Anda boleh @menyebut orang lain atau #hashtags…",
+  "onboarding.profile.save_and_continue": "Simpan dan teruskan",
+  "onboarding.profile.upload_avatar": "Muat naik gambar profil",
   "onboarding.share.lead": "Beritahu orang ramai bagaimana mereka boleh menemui anda di Mastodon!",
   "onboarding.share.message": "Saya {username} di #Mastodon! Jom ikut saya di {url}",
   "onboarding.share.next_steps": "Langkah seterusnya yang mungkin:",
@@ -494,9 +517,14 @@
   "poll_button.add_poll": "Tambah undian",
   "poll_button.remove_poll": "Buang undian",
   "privacy.change": "Ubah privasi hantaran",
+  "privacy.direct.long": "Semua orang yang disebutkan dalam siaran",
+  "privacy.direct.short": "Orang tertentu",
+  "privacy.private.long": "Pengikut anda sahaja",
+  "privacy.private.short": "Pengikut",
   "privacy.public.short": "Awam",
   "privacy_policy.last_updated": "Dikemaskini {date}",
   "privacy_policy.title": "Dasar Privasi",
+  "recommended": "Disyorkan",
   "refresh": "Muat semula",
   "regeneration_indicator.label": "Memuatkan…",
   "regeneration_indicator.sublabel": "Suapan rumah anda sedang disediakan!",
@@ -511,7 +539,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "hari ini",
+  "reply_indicator.attachments": "{count, plural, other {# lampiran}}",
   "reply_indicator.cancel": "Batal",
+  "reply_indicator.poll": "Undian",
   "report.block": "Sekat",
   "report.block_explanation": "Anda tidak akan melihat hantaran mereka. Mereka tidak dapat melihat hantaran anda atau mengikuti anda. Mereka akan sedar bahawa mereka disekat.",
   "report.categories.legal": "Sah",

+ 0 - 4
app/javascript/mastodon/locales/my.json

@@ -292,13 +292,9 @@
   "hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်",
   "hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ",
   "hashtags.and_other": "{count, plural, other {# more}} နှင့်",
-  "home.actions.go_to_explore": "ခေတ်စားနေသည်များကို ကြည့်ပါ",
-  "home.actions.go_to_suggestions": "စောင့်ကြည့်သူများရှာပါ",
   "home.column_settings.basic": "အခြေခံ",
   "home.column_settings.show_reblogs": "Boost များကို ပြပါ",
   "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ",
-  "home.explore_prompt.body": "သင့်ရဲ့သတင်းစဥ် မှာ သင် စောင့်ကြည့်​နေတယ့် ခေါင်းစဥ်​တွေ၊သင်​စောင့်ကြည့်​နေတယ့်အ​ကောင့်​တွေ နဲ့ အဆိုပါ အ​ကောင့်​တွေပြန်မျှ​ဝေထားတယ့် ပိုစ့်​တွေကို မြင်ရမှာပါ။:",
-  "home.explore_prompt.title": "ဤသည်မှာ Mastodon ရှိ သင့်ပင်မစာမျက်နှာဖြစ်သည်။",
   "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ",
   "home.pending_critical_update.body": "သင့် Mastodon ဆာဗာ အမြန်ဆုံး အပ်ဒိတ်လုပ်ပါ။",
   "home.pending_critical_update.link": "အပ်ဒိတ်များကြည့်ရန်",

+ 17 - 17
app/javascript/mastodon/locales/nl.json

@@ -113,7 +113,7 @@
   "column.community": "Lokale tijdlijn",
   "column.direct": "Privéberichten",
   "column.directory": "Gebruikersgids",
-  "column.domain_blocks": "Geblokkeerde domeinen",
+  "column.domain_blocks": "Geblokkeerde servers",
   "column.favourites": "Favorieten",
   "column.firehose": "Openbare tijdlijnen",
   "column.follow_requests": "Volgverzoeken",
@@ -145,22 +145,20 @@
   "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de berichten zien die je alleen aan jouw volgers hebt gericht.",
   "compose_form.lock_disclaimer.lock": "vergrendeld",
   "compose_form.placeholder": "Wat wil je kwijt?",
-  "compose_form.poll.add_option": "Optie toevoegen",
   "compose_form.poll.duration": "Duur van de peiling",
   "compose_form.poll.multiple": "Meerkeuze",
   "compose_form.poll.option_placeholder": "Optie {number}",
-  "compose_form.poll.remove_option": "Deze optie verwijderen",
-  "compose_form.poll.single": "Kies een",
+  "compose_form.poll.single": "Enkele keuze",
   "compose_form.poll.switch_to_multiple": "Peiling wijzigen om meerdere keuzes toe te staan",
   "compose_form.poll.switch_to_single": "Peiling wijzigen om een enkele keuze toe te staan",
   "compose_form.poll.type": "Stijl",
-  "compose_form.publish": "Plaatsen",
+  "compose_form.publish": "Toot",
   "compose_form.publish_form": "Nieuw bericht",
   "compose_form.reply": "Reageren",
   "compose_form.save_changes": "Bijwerken",
   "compose_form.spoiler.marked": "Inhoudswaarschuwing verwijderen",
   "compose_form.spoiler.unmarked": "Inhoudswaarschuwing toevoegen",
-  "compose_form.spoiler_placeholder": "Waarschuwing inhoud (optioneel)",
+  "compose_form.spoiler_placeholder": "Inhoudswaarschuwing (optioneel)",
   "confirmation_modal.cancel": "Annuleren",
   "confirmations.block.block_and_report": "Blokkeren en rapporteren",
   "confirmations.block.confirm": "Blokkeren",
@@ -232,7 +230,7 @@
   "empty_column.bookmarked_statuses": "Jij hebt nog geen berichten aan je bladwijzers toegevoegd. Wanneer je er een aan jouw bladwijzers toevoegt, valt deze hier te zien.",
   "empty_column.community": "De lokale tijdlijn is nog leeg. Plaats een openbaar bericht om de spits af te bijten!",
   "empty_column.direct": "Je hebt nog geen privéberichten. Wanneer je er een verstuurt of ontvangt, zullen deze hier verschijnen.",
-  "empty_column.domain_blocks": "Er zijn nog geen geblokkeerde domeinen.",
+  "empty_column.domain_blocks": "Er zijn nog geen geblokkeerde servers.",
   "empty_column.explore_statuses": "Momenteel zijn er geen trends. Kom later terug!",
   "empty_column.favourited_statuses": "Jij hebt nog geen favoriete berichten. Wanneer je een bericht als favoriet markeert, valt deze hier te zien.",
   "empty_column.favourites": "Niemand heeft dit bericht nog als favoriet gemarkeerd. Wanneer iemand dit doet, valt dat hier te zien.",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Goedkeuren",
   "follow_request.reject": "Afwijzen",
   "follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.",
+  "follow_suggestions.curated_suggestion": "Keuze van de moderator(en)",
+  "follow_suggestions.dismiss": "Niet meer weergeven",
+  "follow_suggestions.personalized_suggestion": "Gepersonaliseerde aanbeveling",
+  "follow_suggestions.popular_suggestion": "Populaire aanbeveling",
+  "follow_suggestions.view_all": "Alles weergeven",
+  "follow_suggestions.who_to_follow": "Wie te volgen",
   "followed_tags": "Gevolgde hashtags",
   "footer.about": "Over",
   "footer.directory": "Gebruikersgids",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Hashtag volgen",
   "hashtag.unfollow": "Hashtag ontvolgen",
   "hashtags.and_other": "…en {count, plural, one {}other {# meer}}",
-  "home.actions.go_to_explore": "De huidige trends bekijken",
-  "home.actions.go_to_suggestions": "Zoek mensen om te volgen",
   "home.column_settings.basic": "Algemeen",
   "home.column_settings.show_reblogs": "Boosts tonen",
   "home.column_settings.show_replies": "Reacties tonen",
-  "home.explore_prompt.body": "Jouw starttijdlijn bevat een mix van berichten met hashtags die je volgt, van accounts die je volgt en van berichten die deze accounts boosten. Wanneer je dit te stil vind, kun je:",
-  "home.explore_prompt.title": "Dit is jouw thuisbasis op Mastodon.",
   "home.hide_announcements": "Mededelingen verbergen",
   "home.pending_critical_update.body": "Update alstublieft zo snel mogelijk jouw Mastodon-server!",
   "home.pending_critical_update.link": "Bekijk updates",
@@ -406,7 +406,7 @@
   "navigation_bar.compose": "Nieuw bericht schrijven",
   "navigation_bar.direct": "Privéberichten",
   "navigation_bar.discover": "Ontdekken",
-  "navigation_bar.domain_blocks": "Geblokkeerde domeinen",
+  "navigation_bar.domain_blocks": "Geblokkeerde servers",
   "navigation_bar.explore": "Verkennen",
   "navigation_bar.favourites": "Favorieten",
   "navigation_bar.filters": "Filters",
@@ -524,15 +524,15 @@
   "poll_button.add_poll": "Peiling toevoegen",
   "poll_button.remove_poll": "Peiling verwijderen",
   "privacy.change": "Zichtbaarheid van bericht aanpassen",
-  "privacy.direct.long": "Iedereen genoemd in de post",
-  "privacy.direct.short": "Specifieke mensen",
+  "privacy.direct.long": "Iedereen die in het bericht wordt vermeld",
+  "privacy.direct.short": "Bepaalde mensen",
   "privacy.private.long": "Alleen jouw volgers",
   "privacy.private.short": "Volgers",
   "privacy.public.long": "Iedereen op Mastodon en daarbuiten",
   "privacy.public.short": "Openbaar",
-  "privacy.unlisted.additional": "Dit is vergelijkbaar met publiek, behalve dat de post niet zal verschijnen in live feeds of hashtags, verkennen of Mastodon zoeken, zelfs als je gekozen hebt voor account-breed.",
-  "privacy.unlisted.long": "Minder algoritmische fanfare",
-  "privacy.unlisted.short": "Stil publiek",
+  "privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het beticht niet verschijnt op openbare tijdlijnen of hashtags, onder verkennen of Mastodon zoeken, zelfs als je je account daarvoor hebt ingesteld.",
+  "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen",
+  "privacy.unlisted.short": "Minder openbaar",
   "privacy_policy.last_updated": "Laatst bijgewerkt op {date}",
   "privacy_policy.title": "Privacybeleid",
   "recommended": "Aanbevolen",

+ 15 - 16
app/javascript/mastodon/locales/nn.json

@@ -145,12 +145,10 @@
   "compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for å sjå innlegga dine.",
   "compose_form.lock_disclaimer.lock": "låst",
   "compose_form.placeholder": "Kva har du på hjarta?",
-  "compose_form.poll.add_option": "Legg til alternativ",
   "compose_form.poll.duration": "Varigheit for rundspørjing",
-  "compose_form.poll.multiple": "Flervalg",
-  "compose_form.poll.option_placeholder": "Valg {number}",
-  "compose_form.poll.remove_option": "Fjern dette valget",
-  "compose_form.poll.single": "Velg en",
+  "compose_form.poll.multiple": "Fleirval",
+  "compose_form.poll.option_placeholder": "Alternativ {number}",
+  "compose_form.poll.single": "Vel ein",
   "compose_form.poll.switch_to_multiple": "Endre rundspørjinga til å tillate fleire val",
   "compose_form.poll.switch_to_single": "Endre rundspørjinga til å tillate berre eitt val",
   "compose_form.poll.type": "Stil",
@@ -160,7 +158,7 @@
   "compose_form.save_changes": "Oppdater",
   "compose_form.spoiler.marked": "Fjern innhaldsåtvaring",
   "compose_form.spoiler.unmarked": "Legg til innhaldsåtvaring",
-  "compose_form.spoiler_placeholder": "Innholdsadvarsel (valgfritt)",
+  "compose_form.spoiler_placeholder": "Innhaldsåtvaring (valfritt)",
   "confirmation_modal.cancel": "Avbryt",
   "confirmations.block.block_and_report": "Blokker & rapporter",
   "confirmations.block.confirm": "Blokker",
@@ -279,6 +277,11 @@
   "follow_request.authorize": "Autoriser",
   "follow_request.reject": "Avvis",
   "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.",
+  "follow_suggestions.dismiss": "Ikkje vis igjen",
+  "follow_suggestions.personalized_suggestion": "Personleg forslag",
+  "follow_suggestions.popular_suggestion": "Populært forslag",
+  "follow_suggestions.view_all": "Vis alle",
+  "follow_suggestions.who_to_follow": "Kven som skal følgjast",
   "followed_tags": "Fylgde emneknaggar",
   "footer.about": "Om",
   "footer.directory": "Profilmappe",
@@ -305,13 +308,9 @@
   "hashtag.follow": "Fylg emneknagg",
   "hashtag.unfollow": "Slutt å fylgje emneknaggen",
   "hashtags.and_other": "…og {count, plural, one {}other {# fleire}}",
-  "home.actions.go_to_explore": "Sjå kva som er populært",
-  "home.actions.go_to_suggestions": "Finn folk å følgje",
   "home.column_settings.basic": "Grunnleggjande",
   "home.column_settings.show_reblogs": "Vis framhevingar",
   "home.column_settings.show_replies": "Vis svar",
-  "home.explore_prompt.body": "Tidslinja di vil ha ei blanding av innlegg frå emneknaggar du har vald å følgje, personane du har vald å følgje, og innlegga dei framhevar. Om det ser ganske stille ut akkurat no, så kan du:",
-  "home.explore_prompt.title": "Dette er heimen din i Mastodon.",
   "home.hide_announcements": "Skjul kunngjeringar",
   "home.pending_critical_update.body": "Oppdater mastodontenaren din så snart som mogleg!",
   "home.pending_critical_update.link": "Sjå oppdateringar",
@@ -523,14 +522,14 @@
   "poll_button.add_poll": "Lag ei rundspørjing",
   "poll_button.remove_poll": "Fjern rundspørjing",
   "privacy.change": "Endre personvernet på innlegg",
-  "privacy.direct.long": "Alle nevnt i innlegget",
+  "privacy.direct.long": "Alle nemnde i innlegget",
   "privacy.direct.short": "Spesifikke folk",
-  "privacy.private.long": "Bare følgerne dine",
-  "privacy.private.short": "Følgere",
-  "privacy.public.long": "Alle på og utenfor Mastodon",
+  "privacy.private.long": "Berre dine følgjarar",
+  "privacy.private.short": "Følgjarar",
+  "privacy.public.long": "Kven som helst på og av Mastodon",
   "privacy.public.short": "Offentleg",
-  "privacy.unlisted.long": "Færre algoritmiske fanfarer",
-  "privacy.unlisted.short": "Stille offentlig",
+  "privacy.unlisted.long": "Færre algoritmiske fanfarar",
+  "privacy.unlisted.short": "Stille offentleg",
   "privacy_policy.last_updated": "Sist oppdatert {date}",
   "privacy_policy.title": "Personvernsreglar",
   "recommended": "Anbefalt",

+ 0 - 6
app/javascript/mastodon/locales/no.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.",
   "compose_form.lock_disclaimer.lock": "låst",
   "compose_form.placeholder": "Hva har du på hjertet?",
-  "compose_form.poll.add_option": "Legg til alternativ",
   "compose_form.poll.duration": "Avstemningens varighet",
   "compose_form.poll.multiple": "Flervalg",
   "compose_form.poll.option_placeholder": "Valg {number}",
-  "compose_form.poll.remove_option": "Fjern dette valget",
   "compose_form.poll.single": "Velg en",
   "compose_form.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg",
   "compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg",
@@ -305,13 +303,9 @@
   "hashtag.follow": "Følg emneknagg",
   "hashtag.unfollow": "Slutt å følge emneknagg",
   "hashtags.and_other": "…og {count, plural, one{en til} other {# til}}",
-  "home.actions.go_to_explore": "Se hva som er populært",
-  "home.actions.go_to_suggestions": "Finn folk å følge",
   "home.column_settings.basic": "Enkelt",
   "home.column_settings.show_reblogs": "Vis fremhevinger",
   "home.column_settings.show_replies": "Vis svar",
-  "home.explore_prompt.body": "Tidslinjen din inneholder en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Hvis det føles for stille, kan det være lurt å:",
-  "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.",
   "home.hide_announcements": "Skjul kunngjøring",
   "home.pending_critical_update.body": "Vennligst oppdater Mastodon-serveren din så snart som mulig!",
   "home.pending_critical_update.link": "Se oppdateringer",

+ 0 - 2
app/javascript/mastodon/locales/oc.json

@@ -262,8 +262,6 @@
   "hashtag.follow": "Sègre l’etiqueta",
   "hashtag.unfollow": "Quitar de sègre l’etiqueta",
   "hashtags.and_other": "…e {count, plural, one {}other {# de mai}}",
-  "home.actions.go_to_explore": "Agachatz las tendéncias",
-  "home.actions.go_to_suggestions": "Trobatz de monde de sègre",
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Mostrar los partatges",
   "home.column_settings.show_replies": "Mostrar las responsas",

+ 30 - 0
app/javascript/mastodon/locales/pa.json

@@ -1,5 +1,6 @@
 {
   "about.contact": "ਸੰਪਰਕ:",
+  "about.domain_blocks.no_reason_available": "ਕਾਰਨ ਮੌਜੂਦ ਨਹੀਂ ਹੈ",
   "about.domain_blocks.silenced.title": "ਸੀਮਿਤ",
   "about.domain_blocks.suspended.title": "ਮੁਅੱਤਲ ਕੀਤੀ",
   "about.rules": "ਸਰਵਰ ਨਿਯਮ",
@@ -12,12 +13,17 @@
   "account.block_short": "ਪਾਬੰਦੀ",
   "account.blocked": "ਪਾਬੰਦੀਸ਼ੁਦਾ",
   "account.cancel_follow_request": "ਫ਼ਾਲੋ ਕਰਨ ਨੂੰ ਰੱਦ ਕਰੋ",
+  "account.copy": "ਪਰੋਫਾਇਲ ਲਈ ਲਿੰਕ ਕਾਪੀ ਕਰੋ",
+  "account.direct": "ਨਿੱਜੀ ਜ਼ਿਕਰ @{name}",
   "account.edit_profile": "ਪਰੋਫਾਈਲ ਨੂੰ ਸੋਧੋ",
+  "account.featured_tags.last_status_at": "{date} ਨੂੰ ਆਖਰੀ ਪੋਸਟ",
+  "account.featured_tags.last_status_never": "ਕੋਈ ਪੋਸਟ ਨਹੀਂ",
   "account.follow": "ਫ਼ਾਲੋ",
   "account.followers": "ਫ਼ਾਲੋਅਰ",
   "account.followers.empty": "ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਾਲੇ ਕੋਈ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।",
   "account.following": "ਫ਼ਾਲੋ ਕੀਤਾ",
   "account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।",
+  "account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ",
   "account.media": "ਮੀਡੀਆ",
   "account.muted": "ਮੌਨ ਕੀਤੀਆਂ",
   "account.posts": "ਪੋਸਟਾਂ",
@@ -35,9 +41,13 @@
   "admin.dashboard.retention.cohort_size": "ਨਵੇਂ ਵਰਤੋਂਕਾਰ",
   "alert.unexpected.title": "ਓਹੋ!",
   "announcement.announcement": "ਹੋਕਾ",
+  "bundle_column_error.error.title": "ਓਹ ਹੋ!",
   "bundle_column_error.network.title": "ਨੈੱਟਵਰਕ ਦੀ ਸਮੱਸਿਆ",
   "bundle_column_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ",
+  "bundle_column_error.return": "ਵਾਪਸ ਮੁੱਖ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ",
+  "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "ਬੰਦ ਕਰੋ",
+  "bundle_modal_error.message": "ਭਾਗ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਕੁਝ ਗਲਤ ਵਾਪਰਿਆ ਹੈ।",
   "bundle_modal_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ",
   "column.about": "ਸਾਡੇ ਬਾਰੇ",
   "column.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ",
@@ -67,10 +77,16 @@
   "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
   "compose_form.lock_disclaimer.lock": "ਲਾਕ ਹੈ",
   "compose_form.placeholder": "What is on your mind?",
+  "compose_form.poll.type": "ਸਟਾਈਲ",
+  "compose_form.publish": "ਪੋਸਟ",
   "compose_form.publish_form": "Publish",
+  "compose_form.reply": "ਜਵਾਬ ਦਿਓ",
+  "compose_form.save_changes": "ਅੱਪਡੇਟ",
   "compose_form.spoiler.marked": "ਸਮੱਗਰੀ ਚੇਤਾਵਨੀ ਨੂੰ ਹਟਾਓ",
   "compose_form.spoiler.unmarked": "ਸਮੱਗਰੀ ਬਾਰੇ ਚੇਤਾਵਨੀ ਜੋੜੋ",
+  "compose_form.spoiler_placeholder": "ਸਮੱਗਰੀ ਬਾਰੇ ਚੇਤਾਵਨੀ (ਚੋਣਵਾਂ)",
   "confirmation_modal.cancel": "ਰੱਦ ਕਰੋ",
+  "confirmations.block.block_and_report": "ਰੋਕ ਲਾਓ ਤੇ ਰਿਪੋਰਟ ਕਰੋ",
   "confirmations.block.confirm": "ਪਾਬੰਦੀ",
   "confirmations.delete.confirm": "ਹਟਾਓ",
   "confirmations.delete.message": "ਕੀ ਤੁਸੀਂ ਇਹ ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?",
@@ -116,7 +132,10 @@
   "firehose.local": "ਇਹ ਸਰਵਰ",
   "firehose.remote": "ਹੋਰ ਸਰਵਰ",
   "follow_request.reject": "ਰੱਦ ਕਰੋ",
+  "follow_suggestions.dismiss": "ਮੁੜ ਨਾ ਵੇਖਾਓ",
+  "follow_suggestions.view_all": "ਸਭ ਵੇਖੋ",
   "footer.about": "ਸਾਡੇ ਬਾਰੇ",
+  "footer.directory": "ਪਰੋਫਾਇਲ ਡਾਇਰੈਕਟਰੀ",
   "footer.get_app": "ਐਪ ਲਵੋ",
   "footer.invite": "ਲੋਕਾਂ ਨੂੰ ਸੱਦਾ ਭੇਜੋ",
   "footer.keyboard_shortcuts": "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ",
@@ -128,12 +147,14 @@
   "hashtag.column_header.tag_mode.all": "ਅਤੇ {additional}",
   "hashtag.column_header.tag_mode.any": "ਜਾਂ {additional}",
   "hashtag.column_header.tag_mode.none": "{additional} ਬਿਨਾਂ",
+  "hashtag.column_settings.select.no_options_message": "ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ ਲੱਭਾ",
   "hashtag.column_settings.tag_mode.any": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ",
   "hashtag.column_settings.tag_mode.none": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਹੀਂ",
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "hashtag.follow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ",
   "hashtag.unfollow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ",
   "home.column_settings.basic": "ਆਮ",
+  "home.pending_critical_update.link": "ਅੱਪਡੇਟ ਵੇਖੋ",
   "interaction_modal.title.follow": "{name} ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ",
   "keyboard_shortcuts.back": "ਪਿੱਛੇ ਜਾਓ",
   "keyboard_shortcuts.blocked": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰਾਂ ਦੀ ਸੂਚੀ ਖੋਲ੍ਹੋ",
@@ -188,11 +209,13 @@
   "navigation_bar.domain_blocks": "ਪਾਬੰਦੀ ਲਾਏ ਡੋਮੇਨ",
   "navigation_bar.explore": "ਪੜਚੋਲ ਕਰੋ",
   "navigation_bar.favourites": "ਮਨਪਸੰਦ",
+  "navigation_bar.filters": "ਮੌਨ ਕੀਤੇ ਸ਼ਬਦ",
   "navigation_bar.follow_requests": "ਫ਼ਾਲੋ ਦੀਆਂ ਬੇਨਤੀਆਂ",
   "navigation_bar.followed_tags": "ਫ਼ਾਲੋ ਕੀਤੇ ਹੈਸ਼ਟੈਗ",
   "navigation_bar.follows_and_followers": "ਫ਼ਾਲੋ ਅਤੇ ਫ਼ਾਲੋ ਕਰਨ ਵਾਲੇ",
   "navigation_bar.lists": "ਸੂਚੀਆਂ",
   "navigation_bar.logout": "ਲਾਗ ਆਉਟ",
+  "navigation_bar.mutes": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ",
   "navigation_bar.personal": "ਨਿੱਜੀ",
   "navigation_bar.pins": "ਟੰਗੀਆਂ ਪੋਸਟਾਂ",
   "navigation_bar.preferences": "ਪਸੰਦਾਂ",
@@ -202,6 +225,8 @@
   "notification.follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕੀਤਾ",
   "notification.follow_request": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ",
   "notification.reblog": "{name} boosted your status",
+  "notifications.column_settings.alert": "ਡੈਸਕਟਾਪ ਸੂਚਨਾਵਾਂ",
+  "notifications.column_settings.favourite": "ਮਨਪਸੰਦ:",
   "notifications.column_settings.follow": "ਨਵੇਂ ਫ਼ਾਲੋਅਰ:",
   "notifications.column_settings.follow_request": "ਨਵੀਆਂ ਫ਼ਾਲੋ ਬੇਨਤੀਆਂ:",
   "notifications.column_settings.status": "ਨਵੀਆਂ ਪੋਸਟਾਂ:",
@@ -261,9 +286,11 @@
   "report.target": "{target} ਰਿਪੋਰਟ",
   "report.unfollow": "@{name} ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ",
   "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+  "report_notification.categories.legal": "ਕਨੂੰਨੀ",
   "report_notification.categories.other": "ਬਾਕੀ",
   "report_notification.categories.spam": "ਸਪੈਮ",
   "report_notification.categories.violation": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ",
+  "report_notification.open": "ਰਿਪੋਰਟ ਨੂੰ ਖੋਲ੍ਹੋ",
   "search.placeholder": "ਖੋਜੋ",
   "search_popout.quick_actions": "ਫੌਰੀ ਕਾਰਵਾਈਆਂ",
   "search_popout.specific_date": "ਖਾਸ ਤਾਰੀਖ",
@@ -271,10 +298,13 @@
   "search_results.accounts": "ਪਰੋਫਾਈਲ",
   "search_results.all": "ਸਭ",
   "search_results.hashtags": "ਹੈਸ਼ਟੈਗ",
+  "search_results.see_all": "ਸਭ ਵੇਖੋ",
   "search_results.statuses": "ਪੋਸਟਾਂ",
+  "search_results.title": "{q} ਲਈ ਖੋਜ",
   "server_banner.learn_more": "ਹੋਰ ਜਾਣੋ",
   "sign_in_banner.create_account": "ਖਾਤਾ ਬਣਾਓ",
   "sign_in_banner.sign_in": "ਲਾਗਇਨ",
+  "sign_in_banner.sso_redirect": "ਲਾਗਇਨ ਜਾਂ ਰਜਿਸਟਰ ਕਰੋ",
   "status.admin_status": "",
   "status.block": "@{name} ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ",
   "status.bookmark": "ਬੁੱਕਮਾਰਕ",

+ 13 - 6
app/javascript/mastodon/locales/pl.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię obserwuje, może wyświetlać Twoje wpisy przeznaczone tylko dla obserwujących.",
   "compose_form.lock_disclaimer.lock": "zablokowane",
   "compose_form.placeholder": "Co chodzi ci po głowie?",
-  "compose_form.poll.add_option": "Dodaj opcję",
   "compose_form.poll.duration": "Czas trwania głosowania",
   "compose_form.poll.multiple": "Wielokrotny wybór",
   "compose_form.poll.option_placeholder": "Opcja {number}",
-  "compose_form.poll.remove_option": "Usuń tę opcję",
   "compose_form.poll.single": "Wybierz jedną",
   "compose_form.poll.switch_to_multiple": "Pozwól na wybranie wielu opcji",
   "compose_form.poll.switch_to_single": "Pozwól na wybranie tylko jednej opcji",
@@ -160,6 +158,7 @@
   "compose_form.save_changes": "Aktualizuj",
   "compose_form.spoiler.marked": "Usuń ostrzeżenie o treści",
   "compose_form.spoiler.unmarked": "Dodaj ostrzeżenie o treści",
+  "compose_form.spoiler_placeholder": "Ostrzeżenie o treści (opcjonalne)",
   "confirmation_modal.cancel": "Anuluj",
   "confirmations.block.block_and_report": "Zablokuj i zgłoś",
   "confirmations.block.confirm": "Zablokuj",
@@ -278,6 +277,12 @@
   "follow_request.authorize": "Autoryzuj",
   "follow_request.reject": "Odrzuć",
   "follow_requests.unlocked_explanation": "Mimo że Twoje konto nie jest zablokowane, zespół {domain} uznał że możesz chcieć ręcznie przejrzeć prośby o możliwość obserwacji.",
+  "follow_suggestions.curated_suggestion": "Wybór redakcji",
+  "follow_suggestions.dismiss": "Nie pokazuj ponownie",
+  "follow_suggestions.personalized_suggestion": "Sugestia spersonalizowana",
+  "follow_suggestions.popular_suggestion": "Sugestia popularna",
+  "follow_suggestions.view_all": "Pokaż wszystkie",
+  "follow_suggestions.who_to_follow": "Kogo obserwować",
   "followed_tags": "Obserwowane hasztagi",
   "footer.about": "O serwerze",
   "footer.directory": "Katalog profilów",
@@ -304,13 +309,9 @@
   "hashtag.follow": "Obserwuj hasztag",
   "hashtag.unfollow": "Przestań obserwować hashtag",
   "hashtags.and_other": "…i {count, plural, other {jeszcze #}}",
-  "home.actions.go_to_explore": "Zobacz, co jest teraz popularne",
-  "home.actions.go_to_suggestions": "Znajdź ludzi wartych obserwowania",
   "home.column_settings.basic": "Podstawowe",
   "home.column_settings.show_reblogs": "Pokazuj podbicia",
   "home.column_settings.show_replies": "Pokazuj odpowiedzi",
-  "home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów i osób które obserwujesz oraz wpisów przezeń podbitych. Jeżeli wydaje się to za spokojnym, spróbuj czegoś poniżej.",
-  "home.explore_prompt.title": "To twój punkt podparcia w Mastodonie.",
   "home.hide_announcements": "Ukryj ogłoszenia",
   "home.pending_critical_update.body": "Zaktualizuj serwer jak tylko będzie to możliwe!",
   "home.pending_critical_update.link": "Pokaż aktualizacje",
@@ -523,11 +524,15 @@
   "poll_button.add_poll": "Dodaj głosowanie",
   "poll_button.remove_poll": "Usuń głosowanie",
   "privacy.change": "Dostosuj widoczność wpisów",
+  "privacy.direct.long": "Wszyscy wspomnieni w tym wpisie",
   "privacy.direct.short": "Konkretni ludzie",
   "privacy.private.long": "Tylko ci, którzy cię obserwują",
   "privacy.private.short": "Obserwujący",
   "privacy.public.long": "Ktokolwiek na i poza Mastodonem",
   "privacy.public.short": "Publiczny",
+  "privacy.unlisted.additional": "Taki sam jak \"Publiczny\", ale wpis nie pojawi się w kanałach na żywo, hasztagach, odkrywaniu, ani w wyszukiwaniu w Mastodonie, nawet jeżeli jest to włączone w ustawieniach konta.",
+  "privacy.unlisted.long": "Widoczne dla każdego, z wyłączeniem funkcji odkrywania",
+  "privacy.unlisted.short": "Niewidoczny",
   "privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}",
   "privacy_policy.title": "Polityka prywatności",
   "recommended": "Zalecane",
@@ -545,7 +550,9 @@
   "relative_time.minutes": "{number} min.",
   "relative_time.seconds": "{number} s.",
   "relative_time.today": "dzisiaj",
+  "reply_indicator.attachments": "{count, plural, one {# załącznik} few {# załączniki} many {# załączników} other {# załączniku}}",
   "reply_indicator.cancel": "Anuluj",
+  "reply_indicator.poll": "Ankieta",
   "report.block": "Zablokuj",
   "report.block_explanation": "Nie zobaczysz ich wpisów. Nie będą mogli zobaczyć Twoich postów ani cię obserwować. Będą mogli domyślić się, że są zablokowani.",
   "report.categories.legal": "Prawne",

+ 6 - 6
app/javascript/mastodon/locales/pt-BR.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Seu perfil não está {locked}. Qualquer um pode te seguir e ver os toots privados.",
   "compose_form.lock_disclaimer.lock": "trancado",
   "compose_form.placeholder": "No que você está pensando?",
-  "compose_form.poll.add_option": "Adicionar opção",
   "compose_form.poll.duration": "Duração da enquete",
   "compose_form.poll.multiple": "Múltipla escolha",
   "compose_form.poll.option_placeholder": "Opção {number}",
-  "compose_form.poll.remove_option": "Remover esta opção",
   "compose_form.poll.single": "Escolha uma",
   "compose_form.poll.switch_to_multiple": "Permitir múltiplas escolhas",
   "compose_form.poll.switch_to_single": "Opção única",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Aprovar",
   "follow_request.reject": "Recusar",
   "follow_requests.unlocked_explanation": "Apesar de seu perfil não ser trancado, {domain} exige que você revise a solicitação para te seguir destes perfis manualmente.",
+  "follow_suggestions.curated_suggestion": "Escolha dos editores",
+  "follow_suggestions.dismiss": "Não mostrar novamente",
+  "follow_suggestions.personalized_suggestion": "Sugestão personalizada",
+  "follow_suggestions.popular_suggestion": "Sugestão popular",
+  "follow_suggestions.view_all": "Visualizar tudo",
+  "follow_suggestions.who_to_follow": "Quem seguir",
   "followed_tags": "Hashtags seguidas",
   "footer.about": "Sobre",
   "footer.directory": "Diretório de perfis",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Seguir hashtag",
   "hashtag.unfollow": "Parar de seguir hashtag",
   "hashtags.and_other": "…e {count, plural, one {}other {outros #}}",
-  "home.actions.go_to_explore": "Veja o que está acontecendo",
-  "home.actions.go_to_suggestions": "Encontre pessoas para seguir",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar boosts",
   "home.column_settings.show_replies": "Mostrar respostas",
-  "home.explore_prompt.body": "Seu feed inicial terá uma mistura de publicações das hashtags que você escolheu seguir, das pessoas que você escolheu seguir e das publicações que elas impulsionam. Se está parecendo tranquilo demais, então que tal:",
-  "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.",
   "home.hide_announcements": "Ocultar comunicados",
   "home.pending_critical_update.body": "Por favor, atualize o seu servidor Mastodon o mais rápido possível!",
   "home.pending_critical_update.link": "Ver atualizações",

+ 6 - 6
app/javascript/mastodon/locales/pt-PT.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.",
   "compose_form.lock_disclaimer.lock": "fechada",
   "compose_form.placeholder": "Em que está a pensar?",
-  "compose_form.poll.add_option": "Adicionar opção",
   "compose_form.poll.duration": "Duração do inquérito",
   "compose_form.poll.multiple": "Escolha múltipla",
   "compose_form.poll.option_placeholder": "Opção {number}",
-  "compose_form.poll.remove_option": "Eliminar esta opção",
   "compose_form.poll.single": "Escolha uma",
   "compose_form.poll.switch_to_multiple": "Alterar o inquérito para permitir várias respostas",
   "compose_form.poll.switch_to_single": "Alterar o inquérito para permitir uma única resposta",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rejeitar",
   "follow_requests.unlocked_explanation": "Apesar de a sua não ser privada, a administração de {domain} pensa que poderá querer rever manualmente os pedidos de seguimento dessas contas.",
+  "follow_suggestions.curated_suggestion": "Escolha dos Editores",
+  "follow_suggestions.dismiss": "Não mostrar novamente",
+  "follow_suggestions.personalized_suggestion": "Sugestão personalizada",
+  "follow_suggestions.popular_suggestion": "Sugestão popular",
+  "follow_suggestions.view_all": "Ver tudo",
+  "follow_suggestions.who_to_follow": "Quem seguir",
   "followed_tags": "Hashtags seguidas",
   "footer.about": "Sobre",
   "footer.directory": "Diretório de perfis",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Seguir #etiqueta",
   "hashtag.unfollow": "Deixar de seguir #etiqueta",
   "hashtags.and_other": "…e {count, plural, other {mais #}}",
-  "home.actions.go_to_explore": "Veja as tendências atuais",
-  "home.actions.go_to_suggestions": "Encontrar pessoas para seguir",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar impulsos",
   "home.column_settings.show_replies": "Mostrar respostas",
-  "home.explore_prompt.body": "A sua página inicial terá uma mistura de publicações com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicações que elas partilham. Parece bastante sossegado por agora, talvez queira:",
-  "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.",
   "home.hide_announcements": "Ocultar comunicações",
   "home.pending_critical_update.body": "Por favor, atualize o seu servidor Mastodon assim que possível!",
   "home.pending_critical_update.link": "Ver atualizações",

+ 30 - 1
app/javascript/mastodon/locales/ro.json

@@ -21,6 +21,8 @@
   "account.blocked": "Blocat",
   "account.browse_more_on_origin_server": "Vezi mai multe pe profilul original",
   "account.cancel_follow_request": "Retrage cererea de urmărire",
+  "account.copy": "Copiază link-ul profilului",
+  "account.direct": "Menționează pe @{name} în privat",
   "account.disable_notifications": "Nu îmi mai trimite notificări când postează @{name}",
   "account.domain_blocked": "Domeniu blocat",
   "account.edit_profile": "Modifică profilul",
@@ -30,6 +32,7 @@
   "account.featured_tags.last_status_never": "Fără postări",
   "account.featured_tags.title": "Haștagurile recomandate de {name}",
   "account.follow": "Abonează-te",
+  "account.follow_back": "Urmăreşte înapoi",
   "account.followers": "Urmăritori",
   "account.followers.empty": "Acest utilizator nu are încă urmăritori.",
   "account.followers_counter": "{count, plural, one {Un abonat} few {{counter} abonați} other {{counter} de abonați}}",
@@ -38,6 +41,7 @@
   "account.follows.empty": "Momentan acest utilizator nu are niciun abonament.",
   "account.go_to_profile": "Mergi la profil",
   "account.hide_reblogs": "Ascunde distribuirile de la @{name}",
+  "account.in_memoriam": "În Memoriam.",
   "account.joined_short": "Înscris",
   "account.languages": "Schimbă limbile abonate",
   "account.link_verified_on": "Proprietatea acestui link a fost verificată pe {date}",
@@ -46,7 +50,10 @@
   "account.mention": "Menționează pe @{name}",
   "account.moved_to": "{name} a indicat că noul său cont este acum:",
   "account.mute": "Pune pe @{name} pe silențios",
+  "account.mute_notifications_short": "Amuțește notificările",
+  "account.mute_short": "Ignoră",
   "account.muted": "Pus pe silențios",
+  "account.no_bio": "Nicio descriere furnizată.",
   "account.open_original_page": "Deschide pagina originală",
   "account.posts": "Postări",
   "account.posts_with_replies": "Postări și răspunsuri",
@@ -69,6 +76,7 @@
   "admin.dashboard.retention.average": "În medie",
   "admin.dashboard.retention.cohort": "Înregistrări lunar",
   "admin.dashboard.retention.cohort_size": "Utilizatori noi",
+  "admin.impact_report.title": "Rezumatul impactului",
   "alert.rate_limited.message": "Vă rugăm să reîncercați după {retry_time, time, medium}.",
   "alert.rate_limited.title": "Debit limitat",
   "alert.unexpected.message": "A apărut o eroare neașteptată.",
@@ -98,9 +106,11 @@
   "column.blocks": "Utilizatori blocați",
   "column.bookmarks": "Marcaje",
   "column.community": "Cronologie locală",
+  "column.direct": "Mențiuni private",
   "column.directory": "Explorează profiluri",
   "column.domain_blocks": "Domenii blocate",
   "column.favourites": "Favorite",
+  "column.firehose": "Fluxuri live",
   "column.follow_requests": "Cereri de abonare",
   "column.home": "Acasă",
   "column.lists": "Liste",
@@ -131,11 +141,19 @@
   "compose_form.lock_disclaimer.lock": "privat",
   "compose_form.placeholder": "La ce te gândești?",
   "compose_form.poll.duration": "Durata sondajului",
+  "compose_form.poll.multiple": "Alegeri multiple",
+  "compose_form.poll.option_placeholder": "Opțiune {number}",
+  "compose_form.poll.single": "Alegeți unul",
   "compose_form.poll.switch_to_multiple": "Modifică sondajul pentru a permite mai multe opțiuni",
   "compose_form.poll.switch_to_single": "Modifică sondajul pentru a permite o singură opțiune",
+  "compose_form.poll.type": "Stil",
+  "compose_form.publish": "Postare",
   "compose_form.publish_form": "Publică",
+  "compose_form.reply": "Răspundeți",
+  "compose_form.save_changes": "Actualizare",
   "compose_form.spoiler.marked": "Elimină avertismentul privind conținutul",
   "compose_form.spoiler.unmarked": "Adaugă un avertisment privind conținutul",
+  "compose_form.spoiler_placeholder": "Atenționare de conținut (opțional)",
   "confirmation_modal.cancel": "Anulează",
   "confirmations.block.block_and_report": "Blochează și raportează",
   "confirmations.block.confirm": "Blochează",
@@ -151,6 +169,7 @@
   "confirmations.domain_block.confirm": "Blochează întregul domeniu",
   "confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi tot domeniul {domain}? În cele mai multe cazuri, raportarea sau blocarea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea niciun conținut din acest domeniu în vreun flux public sau în vreo notificare. Abonații tăi din acest domeniu vor fi eliminați.",
   "confirmations.edit.confirm": "Modifică",
+  "confirmations.edit.message": "Editarea acum va suprascrie mesajul pe care îl compuneți în prezent. Sunteți sigur că vreți să continuați?",
   "confirmations.logout.confirm": "Deconectare",
   "confirmations.logout.message": "Ești sigur că vrei să te deconectezi?",
   "confirmations.mute.confirm": "Ignoră",
@@ -165,6 +184,7 @@
   "conversation.mark_as_read": "Marchează ca citit",
   "conversation.open": "Vizualizează conversația",
   "conversation.with": "Cu {names}",
+  "copy_icon_button.copied": "Copiat în clipboard",
   "copypaste.copied": "Copiat",
   "copypaste.copy_to_clipboard": "Copiază în clipboard",
   "directory.federated": "Din fediversul cunoscut",
@@ -240,10 +260,17 @@
   "filter_modal.select_filter.title": "Filtrează această postare",
   "filter_modal.title.status": "Filtrează o postare",
   "firehose.all": "Toate",
+  "firehose.local": "Acest Server",
   "firehose.remote": "Alte servere",
   "follow_request.authorize": "Acceptă",
   "follow_request.reject": "Respinge",
   "follow_requests.unlocked_explanation": "Chiar dacă contul tău nu este blocat, personalul {domain} a considerat că ai putea prefera să consulți manual cererile de abonare de la aceste conturi.",
+  "follow_suggestions.curated_suggestion": "Alegerile Editorilor",
+  "follow_suggestions.dismiss": "Nu mai afișa din nou",
+  "follow_suggestions.personalized_suggestion": "Sugestie personalizată",
+  "follow_suggestions.popular_suggestion": "Sugestie populară",
+  "follow_suggestions.view_all": "Vizualizați tot",
+  "follow_suggestions.who_to_follow": "Pe cine să urmăriți",
   "followed_tags": "Hastaguri urmărite",
   "footer.about": "Despre",
   "footer.directory": "Catalogul de profiluri",
@@ -266,19 +293,21 @@
   "hashtag.column_settings.tag_toggle": "Adaugă etichete suplimentare pentru această coloană",
   "hashtag.follow": "Urmărește haștagul",
   "hashtag.unfollow": "Nu mai urmări haștagul",
-  "home.actions.go_to_suggestions": "Găsește persoane de urmărit",
   "home.column_settings.basic": "De bază",
   "home.column_settings.show_reblogs": "Afișează distribuirile",
   "home.column_settings.show_replies": "Afișează răspunsurile",
   "home.hide_announcements": "Ascunde anunțurile",
   "home.pending_critical_update.body": "Te rugăm să-ți actualizezi serverul de Mastodon cat mai curând posibil!",
   "home.pending_critical_update.link": "Vezi noutăți",
+  "home.pending_critical_update.title": "Actualizare critică de securitate disponibilă!",
   "home.show_announcements": "Afișează anunțurile",
+  "interaction_modal.description.favourite": "Cu un cont pe Mastodon, poți adăuga această postare la favorite pentru a-l informa pe autorul ei că o apreciezi și pentru a o salva pentru mai târziu.",
   "interaction_modal.description.follow": "Cu un cont Mastodon, poți urmări pe {name} pentru a vedea postările sale în cronologia ta principală.",
   "interaction_modal.description.reblog": "Cu un cont pe Mastodon, poți distribui această postare pentru a le-o arăta și celor abonați ție.",
   "interaction_modal.description.reply": "Cu un cont pe Mastodon, poți răspunde acestei postări.",
   "interaction_modal.login.action": "Du-mă acasă",
   "interaction_modal.login.prompt": "Adresa serverului tău acasă, de ex. mastodon.social",
+  "interaction_modal.no_account_yet": "Nu ești încă pe Mastodon?",
   "interaction_modal.on_another_server": "Pe un alt server",
   "interaction_modal.on_this_server": "Pe acest server",
   "interaction_modal.title.follow": "Urmărește pe {name}",

+ 25 - 5
app/javascript/mastodon/locales/ru.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "не закрыта",
   "compose_form.placeholder": "О чём думаете?",
   "compose_form.poll.duration": "Продолжительность опроса",
+  "compose_form.poll.multiple": "Несколько вариантов ответа",
+  "compose_form.poll.option_placeholder": "Вариант {number}",
+  "compose_form.poll.single": "Выберите один",
   "compose_form.poll.switch_to_multiple": "Разрешить выбор нескольких вариантов",
   "compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа",
+  "compose_form.poll.type": "Стиль",
+  "compose_form.publish": "Опубликовать",
   "compose_form.publish_form": "Опубликовать",
+  "compose_form.reply": "Ответить",
+  "compose_form.save_changes": "Сохранить",
   "compose_form.spoiler.marked": "Текст скрыт за предупреждением",
   "compose_form.spoiler.unmarked": "Текст не скрыт",
+  "compose_form.spoiler_placeholder": "Предупреждение о контенте (опционально)",
   "confirmation_modal.cancel": "Отмена",
   "confirmations.block.block_and_report": "Заблокировать и пожаловаться",
   "confirmations.block.confirm": "Заблокировать",
@@ -229,7 +237,7 @@
   "empty_column.follow_requests": "Вам ещё не приходили запросы на подписку. Все новые запросы будут показаны здесь.",
   "empty_column.followed_tags": "Вы еще не подписались ни на один хэштег. Когда вы это сделаете, они появятся здесь.",
   "empty_column.hashtag": "С этим хэштегом пока ещё ничего не постили.",
-  "empty_column.home": "Ваша лента совсем пуста! Подпишитесь на других, чтобы заполнить её. {suggestions}",
+  "empty_column.home": "Ваша лента совсем пуста! Подписывайтесь на других, чтобы заполнить её.",
   "empty_column.list": "В этом списке пока ничего нет.",
   "empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.",
   "empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Авторизовать",
   "follow_request.reject": "Отказать",
   "follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.",
+  "follow_suggestions.curated_suggestion": "Выбор редакции",
+  "follow_suggestions.dismiss": "Больше не показывать",
+  "follow_suggestions.personalized_suggestion": "Персонализированное предложение",
+  "follow_suggestions.popular_suggestion": "Популярное предложение",
+  "follow_suggestions.view_all": "Посмотреть все",
+  "follow_suggestions.who_to_follow": "На кого подписаться",
   "followed_tags": "Отслеживаемые хэштеги",
   "footer.about": "О проекте",
   "footer.directory": "Каталог профилей",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Подписаться на новые посты",
   "hashtag.unfollow": "Отписаться",
   "hashtags.and_other": "...и {count, plural, other {# ещё}}",
-  "home.actions.go_to_explore": "Посмотреть, что актуально",
-  "home.actions.go_to_suggestions": "Подпишитесь на людей",
   "home.column_settings.basic": "Основные",
   "home.column_settings.show_reblogs": "Показывать продвижения",
   "home.column_settings.show_replies": "Показывать ответы",
-  "home.explore_prompt.body": "В вашем доме появятся сообщения из хэштегов, на которые вы хотите подписаться, люди, которых вы выбрали подписаться, и сообщения, которые они увеличили. Сейчас выглядит спокойно, так что:",
-  "home.explore_prompt.title": "Это ваша домашняя база в Мастодоне.",
   "home.hide_announcements": "Скрыть объявления",
   "home.pending_critical_update.body": "Пожалуйста, обновите свой сервер Mastodon как можно скорее!",
   "home.pending_critical_update.link": "Посмотреть обновления",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Добавить опрос",
   "poll_button.remove_poll": "Удалить опрос",
   "privacy.change": "Изменить видимость поста",
+  "privacy.direct.long": "Все упомянутые в посте",
+  "privacy.direct.short": "Определённые люди",
+  "privacy.private.long": "Только ваши подписчики",
+  "privacy.private.short": "Подписчики",
+  "privacy.public.long": "Любой, находящийся на Mastodon и вне его",
   "privacy.public.short": "Публичный",
+  "privacy.unlisted.additional": "Работает точно так же, как public, за исключением того, что пост не будет отображаться в прямых лентах, хэштегах, исследованиях или поиске Mastodon, даже если ваш аккаунт подписан на это на уровне всего аккаунта.",
+  "privacy.unlisted.long": "Меньше алгоритмических фанфар",
+  "privacy.unlisted.short": "Тихий публичный",
   "privacy_policy.last_updated": "Последнее обновление {date}",
   "privacy_policy.title": "Политика конфиденциальности",
   "recommended": "Рекомендуется",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number} мин",
   "relative_time.seconds": "{number} с",
   "relative_time.today": "сегодня",
+  "reply_indicator.attachments": "{count, plural, one {# вложение} other {# вложения}}",
   "reply_indicator.cancel": "Отмена",
+  "reply_indicator.poll": "Опрос",
   "report.block": "Заблокировать",
   "report.block_explanation": "Вы перестанете видеть посты этого пользователя, и он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять, что вы заблокировали его/её.",
   "report.categories.legal": "Правовая информация",

+ 0 - 3
app/javascript/mastodon/locales/si.json

@@ -201,11 +201,8 @@
   "hashtag.column_settings.tag_mode.all": "මේ සියල්ලම",
   "hashtag.column_settings.tag_mode.none": "මේ කිසිවක් නැත",
   "hashtag.column_settings.tag_toggle": "මෙම තීරුවේ අමතර ටැග් ඇතුළත් කරන්න",
-  "home.actions.go_to_explore": "නැගී එන දෑ බලන්න",
-  "home.actions.go_to_suggestions": "පුද්ගලයින් සොයන්න",
   "home.column_settings.basic": "මූලික",
   "home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න",
-  "home.explore_prompt.title": "මෙය ඔබගේ මාස්ටඩන් මුල් පිටුවයි.",
   "home.hide_announcements": "නිවේදන සඟවන්න",
   "home.pending_critical_update.link": "යාවත්කාල බලන්න",
   "home.show_announcements": "නිවේදන පෙන්වන්න",

+ 28 - 11
app/javascript/mastodon/locales/sk.json

@@ -35,7 +35,7 @@
   "account.follow_back": "Nasleduj späť",
   "account.followers": "Sledovatelia",
   "account.followers.empty": "Tohto používateľa ešte nikto nenasleduje.",
-  "account.followers_counter": "{count, plural, one {{counter} Sledujúci} few {{counter} Sledujúci} many {{counter} Sledujúcich} other {{counter} Sledujúcich}}",
+  "account.followers_counter": "{count, plural, one {{counter} Sledujúci} other {{counter} Sledujúci}}",
   "account.following": "Sledujem",
   "account.following_counter": "{count, plural, one {{counter} Sledovaných} other {{counter} Sledujúcich}}",
   "account.follows.empty": "Tento používateľ ešte nikoho nesleduje.",
@@ -142,15 +142,23 @@
   "compose_form.direct_message_warning_learn_more": "Zisti viac",
   "compose_form.encryption_warning": "Príspevky na Mastodon nie sú end-to-end šifrované. Nezdieľajte cez Mastodon žiadne citlivé informácie.",
   "compose_form.hashtag_warning": "Tento príspevok nebude zobrazený pod žiadným haštagom, lebo nieje verejne listovaný. Iba verejné príspevky môžu byť nájdené podľa haštagu.",
-  "compose_form.lock_disclaimer": "Tvoj účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.",
+  "compose_form.lock_disclaimer": "Tvoj účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje príspevky pre sledujúcich.",
   "compose_form.lock_disclaimer.lock": "zamknutý",
   "compose_form.placeholder": "Čo máš na mysli?",
   "compose_form.poll.duration": "Trvanie ankety",
+  "compose_form.poll.multiple": "Viacero možností",
+  "compose_form.poll.option_placeholder": "Voľba {number}",
+  "compose_form.poll.single": "Vyber jednu",
   "compose_form.poll.switch_to_multiple": "Zmeň anketu pre povolenie viacerých možností",
   "compose_form.poll.switch_to_single": "Zmeň anketu na takú s jedinou voľbou",
+  "compose_form.poll.type": "Typ",
+  "compose_form.publish": "Prispej",
   "compose_form.publish_form": "Zverejniť",
+  "compose_form.reply": "Odpovedz",
+  "compose_form.save_changes": "Aktualizácia",
   "compose_form.spoiler.marked": "Text je ukrytý za varovaním",
   "compose_form.spoiler.unmarked": "Text nieje ukrytý",
+  "compose_form.spoiler_placeholder": "Varovanie o obsahu (voliteľné)",
   "confirmation_modal.cancel": "Zruš",
   "confirmations.block.block_and_report": "Zablokuj a nahlás",
   "confirmations.block.confirm": "Blokuj",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Povoľ prístup",
   "follow_request.reject": "Odmietni",
   "follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.",
+  "follow_suggestions.curated_suggestion": "Výber zo servera",
+  "follow_suggestions.dismiss": "Znovu nezobrazuj",
+  "follow_suggestions.personalized_suggestion": "Prispôsobené odporúčania",
+  "follow_suggestions.popular_suggestion": "Populárne návrhy",
+  "follow_suggestions.view_all": "Zobraz všetky",
+  "follow_suggestions.who_to_follow": "Koho nasledovať",
   "followed_tags": "Nasledované haštagy",
   "footer.about": "O",
   "footer.directory": "Adresár profilov",
@@ -289,19 +303,15 @@
   "hashtag.column_settings.tag_mode.any": "Hociktorý z týchto",
   "hashtag.column_settings.tag_mode.none": "Žiaden z týchto",
   "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec",
-  "hashtag.counter_by_accounts": "{count, plural, one {{counter} sledujúci} few {{counter} sledujúci} many {{counter} sledujúcich} other {{counter} sledujúcich}}",
+  "hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} other {{counter} účastníci}}",
   "hashtag.counter_by_uses": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}}",
   "hashtag.counter_by_uses_today": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}} dnes",
   "hashtag.follow": "Sleduj haštag",
   "hashtag.unfollow": "Nesleduj haštag",
   "hashtags.and_other": "…a {count, plural, one {} few {# ďalšie} many {# ďalších}other {# ďalších}}",
-  "home.actions.go_to_explore": "Pozrieť, čo je trendy",
-  "home.actions.go_to_suggestions": "Nájdi ľudí na sledovanie",
   "home.column_settings.basic": "Základné",
   "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté",
   "home.column_settings.show_replies": "Ukáž odpovede",
-  "home.explore_prompt.body": "Váš domovský informačný kanál bude obsahovať mix príspevkov z mriežok, ktoré ste sa rozhodli sledovať, ľudí, ktorých ste sa rozhodli sledovať, a príspevkov, ktoré preferujú. Ak sa vám to zdá príliš málo, možno budete chcieť:",
-  "home.explore_prompt.title": "Toto je tvoja domovina v rámci Mastodonu.",
   "home.hide_announcements": "Skry oznámenia",
   "home.pending_critical_update.body": "Prosím aktualizuj si svoj Mastodon server, ako náhle to bude možné!",
   "home.pending_critical_update.link": "Pozri aktualizácie",
@@ -346,7 +356,7 @@
   "keyboard_shortcuts.muted": "otvor zoznam stíšených užívateľov",
   "keyboard_shortcuts.my_profile": "otvor svoj profil",
   "keyboard_shortcuts.notifications": "Otvor panel oznámení",
-  "keyboard_shortcuts.open_media": "na otvorenie médií",
+  "keyboard_shortcuts.open_media": "Otvorenie médií",
   "keyboard_shortcuts.pinned": "otvor zoznam pripnutých príspevkov",
   "keyboard_shortcuts.profile": "otvor autorov profil",
   "keyboard_shortcuts.reply": "odpovedať",
@@ -355,7 +365,7 @@
   "keyboard_shortcuts.spoilers": "to show/hide CW field",
   "keyboard_shortcuts.start": "otvor panel ''začíname''",
   "keyboard_shortcuts.toggle_hidden": "ukáž/skry text za CW",
-  "keyboard_shortcuts.toggle_sensitivity": "pre zobrazenie/skrytie médií",
+  "keyboard_shortcuts.toggle_sensitivity": "Ukáž/skry médiá",
   "keyboard_shortcuts.toot": "začni úplne nový príspevok",
   "keyboard_shortcuts.unfocus": "nesústreď sa na písaciu plochu, alebo hľadanie",
   "keyboard_shortcuts.up": "posuň sa vyššie v zozname",
@@ -484,7 +494,7 @@
   "onboarding.share.message": "Na Mastodone som {username}. Príď ma nasledovať na {url}",
   "onboarding.share.next_steps": "Ďalšie možné kroky:",
   "onboarding.share.title": "Zdieľaj svoj profil",
-  "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
+  "onboarding.start.lead": "Teraz si súčasťou Mastodonu, unikátnej, decentralizovanej sociálnej platformy, kde ty, nie algoritmus, spravuješ svoj vlastný zážitok. Poďme ťa naštartovať na tomto novom sociálnom pomedzí:",
   "onboarding.start.skip": "Want to skip right ahead?",
   "onboarding.start.title": "Zvládli ste to!",
   "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@@ -513,7 +523,13 @@
   "poll_button.add_poll": "Pridaj anketu",
   "poll_button.remove_poll": "Odstráň anketu",
   "privacy.change": "Uprav súkromie príspevku",
+  "privacy.direct.long": "Všetci spomenutí v príspevku",
+  "privacy.direct.short": "Konkrétni ľudia",
+  "privacy.private.long": "Iba tvoji nasledovatelia",
+  "privacy.private.short": "Sledovatelia",
+  "privacy.public.long": "Ktokoľvek na, aj mimo Mastodonu",
   "privacy.public.short": "Verejné",
+  "privacy.unlisted.short": "Verejný v tichosti",
   "privacy_policy.last_updated": "Posledná úprava {date}",
   "privacy_policy.title": "Zásady súkromia",
   "recommended": "Odporúčané",
@@ -532,6 +548,7 @@
   "relative_time.seconds": "{number}sek",
   "relative_time.today": "dnes",
   "reply_indicator.cancel": "Zrušiť",
+  "reply_indicator.poll": "Anketa",
   "report.block": "Blokuj",
   "report.block_explanation": "Ich príspevky neuvidíte. Nebudú môcť vidieť vaše príspevky ani vás sledovať. Budú môcť zistiť, že sú zablokovaní.",
   "report.categories.legal": "Právne ujednania",
@@ -690,7 +707,7 @@
   "units.short.million": "{count}mil.",
   "units.short.thousand": "{count}tis.",
   "upload_area.title": "Pretiahni a pusť pre nahratie",
-  "upload_button.label": "Pridaj médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
+  "upload_button.label": "Pridaj obrázky, video, alebo zvukový súbor",
   "upload_error.limit": "Limit pre nahrávanie súborov bol prekročený.",
   "upload_error.poll": "Nahrávanie súborov pri anketách nieje možné.",
   "upload_form.audio_description": "Popíš, pre ľudí so stratou sluchu",

+ 24 - 4
app/javascript/mastodon/locales/sl.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "zaklenjen",
   "compose_form.placeholder": "O čem razmišljate?",
   "compose_form.poll.duration": "Trajanje ankete",
+  "compose_form.poll.multiple": "Več možnosti",
+  "compose_form.poll.option_placeholder": "Možnost {number}",
+  "compose_form.poll.single": "Izberite eno možnost",
   "compose_form.poll.switch_to_multiple": "Spremenite anketo, da omogočite več izbir",
   "compose_form.poll.switch_to_single": "Spremenite anketo, da omogočite eno izbiro",
+  "compose_form.poll.type": "Slog",
+  "compose_form.publish": "Objavi",
   "compose_form.publish_form": "Objavi",
+  "compose_form.reply": "Odgovori",
+  "compose_form.save_changes": "Posodobi",
   "compose_form.spoiler.marked": "Odstrani opozorilo o vsebini",
   "compose_form.spoiler.unmarked": "Dodaj opozorilo o vsebini",
+  "compose_form.spoiler_placeholder": "Opozorilo o vsebini (ni obvezno)",
   "confirmation_modal.cancel": "Prekliči",
   "confirmations.block.block_and_report": "Blokiraj in prijavi",
   "confirmations.block.confirm": "Blokiraj",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Overi",
   "follow_request.reject": "Zavrni",
   "follow_requests.unlocked_explanation": "Čeprav vaš račun ni zaklenjen, zaposleni pri {domain} menijo, da bi morda želeli pregledati zahteve za sledenje teh računov ročno.",
+  "follow_suggestions.curated_suggestion": "Izbor urednikov",
+  "follow_suggestions.dismiss": "Ne pokaži več",
+  "follow_suggestions.personalized_suggestion": "Osebno prilagojen predlog",
+  "follow_suggestions.popular_suggestion": "Priljubljen predlog",
+  "follow_suggestions.view_all": "Pokaži vse",
+  "follow_suggestions.who_to_follow": "Komu slediti",
   "followed_tags": "Sledeni ključniki",
   "footer.about": "O Mastodonu",
   "footer.directory": "Imenik profilov",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Sledi ključniku",
   "hashtag.unfollow": "Nehaj slediti ključniku",
   "hashtags.and_other": "…in še {count, plural, other {#}}",
-  "home.actions.go_to_explore": "Poglejte, kaj je v trendu",
-  "home.actions.go_to_suggestions": "Poiščite osebe, ki jim želite slediti",
   "home.column_settings.basic": "Osnovno",
   "home.column_settings.show_reblogs": "Pokaži izpostavitve",
   "home.column_settings.show_replies": "Pokaži odgovore",
-  "home.explore_prompt.body": "Vaš domači vir bo vseboval mešanico objav ključnikov, ki ste jih izbrali za sledenje, oseb, ki ste jih izbrali za sledenje, in objav, ki jih ti izpostavljajo. Če se vam to zdi preveč tiho, morda želite:",
-  "home.explore_prompt.title": "To je vaš dom v okviru Mastodona.",
   "home.hide_announcements": "Skrij obvestila",
   "home.pending_critical_update.body": "Čim prej posodobite svoj strežnik Mastodon!",
   "home.pending_critical_update.link": "Glejte posodobitve",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Dodaj anketo",
   "poll_button.remove_poll": "Odstrani anketo",
   "privacy.change": "Spremeni zasebnost objave",
+  "privacy.direct.long": "Vsem omenjenim v objavi",
+  "privacy.direct.short": "Določenim ljudem",
+  "privacy.private.long": "Samo vašim sledilcem",
+  "privacy.private.short": "Sledilcem",
+  "privacy.public.long": "Vsem, ki so ali niso na Mastodonu",
   "privacy.public.short": "Javno",
+  "privacy.unlisted.additional": "Učinek je enak kot pri javni objavi, le da se ta ne bo prikazala v živih virih, med ključniki, raziskovanjem ali iskanjem, četudi ste to vključili na ravni računa.",
+  "privacy.unlisted.long": "Manj vsebine po izboru algoritma",
+  "privacy.unlisted.short": "Tiho javno",
   "privacy_policy.last_updated": "Zadnja posodobitev {date}",
   "privacy_policy.title": "Pravilnik o zasebnosti",
   "recommended": "Priporočeno",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number} m",
   "relative_time.seconds": "{number} s",
   "relative_time.today": "danes",
+  "reply_indicator.attachments": "{count, plural, one {# priloga} two {# prilogi} few {# priloge} other {# prilog}}",
   "reply_indicator.cancel": "Prekliči",
+  "reply_indicator.poll": "Anketa",
   "report.block": "Blokiraj",
   "report.block_explanation": "Njihovih objav ne boste videli. Oni ne bodo videli vaših objav, niti vam ne morejo slediti. Lahko bodo ugotovili, da so blokirani.",
   "report.categories.legal": "Pravno obvestilo",

+ 6 - 6
app/javascript/mastodon/locales/sq.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Llogaria juaj s’është {locked}. Mund ta ndjekë cilido, për të parë postimet tuaja vetëm për ndjekësit.",
   "compose_form.lock_disclaimer.lock": "e kyçur",
   "compose_form.placeholder": "Ç’bluani në mendje?",
-  "compose_form.poll.add_option": "Shtoni mundësi",
   "compose_form.poll.duration": "Kohëzgjatje pyetësori",
   "compose_form.poll.multiple": "Shumë zgjedhje",
   "compose_form.poll.option_placeholder": "Mundësia {number}",
-  "compose_form.poll.remove_option": "Hiqe këtë mundësi",
   "compose_form.poll.single": "Zgjidhni një",
   "compose_form.poll.switch_to_multiple": "Ndrysho votimin për të lejuar shumë zgjedhje",
   "compose_form.poll.switch_to_single": "Ndrysho votimin për të lejuar vetëm një zgjedhje",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Autorizoje",
   "follow_request.reject": "Hidhe tej",
   "follow_requests.unlocked_explanation": "Edhe pse llogaria juaj s’është e kyçur, ekipi i {domain} mendoi se mund të donit të shqyrtonit dorazi kërkesa ndjekjeje prej këtyre llogarive.",
+  "follow_suggestions.curated_suggestion": "Zgjedhur nga Ekipi",
+  "follow_suggestions.dismiss": "Mos shfaq më",
+  "follow_suggestions.personalized_suggestion": "Sugjerim i personalizuar",
+  "follow_suggestions.popular_suggestion": "Sugjerim popullor",
+  "follow_suggestions.view_all": "Shihni krejt",
+  "follow_suggestions.who_to_follow": "Cilët të ndiqen",
   "followed_tags": "Hashtag-ë të ndjekur",
   "footer.about": "Mbi",
   "footer.directory": "Drejtori profilesh",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Ndiqe hashtag-un",
   "hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut",
   "hashtags.and_other": "…dhe {count, plural, one {}other {# më tepër}}",
-  "home.actions.go_to_explore": "Shihni ç’është në modë",
-  "home.actions.go_to_suggestions": "Gjeni persona për ndjekje",
   "home.column_settings.basic": "Bazë",
   "home.column_settings.show_reblogs": "Shfaq përforcime",
   "home.column_settings.show_replies": "Shfaq përgjigje",
-  "home.explore_prompt.body": "Prurja juaj bazë do të ketë një përzierje postimesh nga hashtag-ë që keni zgjedhur të ndiqni, persona që keni zgjedhur të ndiqni dhe postime që ata përforcojnë. Nëse kjo duket si shumë qetësi, mund të doni të:",
-  "home.explore_prompt.title": "Kjo është baza juaj brenda Mastodon-it.",
   "home.hide_announcements": "Fshihi lajmërimet",
   "home.pending_critical_update.body": "Ju lutemi, përditësoni sa më shpejt të jetë e mundur shërbyesin tuaj Mastodon!",
   "home.pending_critical_update.link": "Shihni përditësime",

+ 24 - 4
app/javascript/mastodon/locales/sr-Latn.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "zaključan",
   "compose_form.placeholder": "O čemu razmišljate?",
   "compose_form.poll.duration": "Trajanje ankete",
+  "compose_form.poll.multiple": "Višestruki izbor",
+  "compose_form.poll.option_placeholder": "Opcija {number}",
+  "compose_form.poll.single": "Odaberite jedno",
   "compose_form.poll.switch_to_multiple": "Promenite anketu da biste omogućili više izbora",
   "compose_form.poll.switch_to_single": "Promenite anketu da biste omogućili jedan izbor",
+  "compose_form.poll.type": "Stil",
+  "compose_form.publish": "Objavi",
   "compose_form.publish_form": "Objavi",
+  "compose_form.reply": "Odgovori",
+  "compose_form.save_changes": "Ažuriraj",
   "compose_form.spoiler.marked": "Ukloni upozorenje o sadržaju",
   "compose_form.spoiler.unmarked": "Dodaj upozorenje o sadržaju",
+  "compose_form.spoiler_placeholder": "Upozorenje o sadržaju (opciono)",
   "confirmation_modal.cancel": "Otkaži",
   "confirmations.block.block_and_report": "Blokiraj i prijavi",
   "confirmations.block.confirm": "Blokiraj",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "Odobri",
   "follow_request.reject": "Odbij",
   "follow_requests.unlocked_explanation": "Iako vaš nalog nije zaključan, osoblje {domain} smatra da biste možda želeli da ručno pregledate zahteve za praćenje sa ovih naloga.",
+  "follow_suggestions.curated_suggestion": "Izbor urednika",
+  "follow_suggestions.dismiss": "Ne prikazuj ponovo",
+  "follow_suggestions.personalized_suggestion": "Personalizovani predlog",
+  "follow_suggestions.popular_suggestion": "Popularni predlog",
+  "follow_suggestions.view_all": "Prikaži sve",
+  "follow_suggestions.who_to_follow": "Koga pratiti",
   "followed_tags": "Praćene heš oznake",
   "footer.about": "Osnovni podaci",
   "footer.directory": "Direktorijum profila",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Zaprati heš oznaku",
   "hashtag.unfollow": "Otprati heš oznaku",
   "hashtags.and_other": "…i {count, plural, one {još #} few {još #}other {još #}}",
-  "home.actions.go_to_explore": "Pogledate šta je u trendu",
-  "home.actions.go_to_suggestions": "Pronađete ljude koje biste pratili",
   "home.column_settings.basic": "Osnovna",
   "home.column_settings.show_reblogs": "Prikaži podržavanja",
   "home.column_settings.show_replies": "Prikaži odgovore",
-  "home.explore_prompt.body": "Vaša početna stranica će imati mešavinu objava od heš oznaka koje ste izabrali da pratite, ljudi koje ste izabrali da pratite i objava koje su podržali. Ako izgleda previše tiho, možda ćete želeti da:",
-  "home.explore_prompt.title": "Ovo je vaša matična baza u Mastodon-u.",
   "home.hide_announcements": "Sakrij najave",
   "home.pending_critical_update.body": "Ažurirajte svoj Mastodon server što je pre moguće!",
   "home.pending_critical_update.link": "Pogledajte ažuriranja",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Dodaj anketu",
   "poll_button.remove_poll": "Ukloni anketu",
   "privacy.change": "Promeni privatnost objave",
+  "privacy.direct.long": "Svi pomenuti u objavi",
+  "privacy.direct.short": "Određeni ljudi",
+  "privacy.private.long": "Samo vaši pratioci",
+  "privacy.private.short": "Pratioci",
+  "privacy.public.long": "Bilo ko na Mastodon-u i van njega",
   "privacy.public.short": "Javno",
+  "privacy.unlisted.additional": "Ovo se ponaša potpuno kao javno, osim što se objava neće pojavljivati u izvorima uživo ili heš oznakama, istraživanjima ili pretrazi Mastodon-a, čak i ako ste uključeni u celom nalogu.",
+  "privacy.unlisted.long": "Manje algoritamskih fanfara",
+  "privacy.unlisted.short": "Tiha javnost",
   "privacy_policy.last_updated": "Poslednje ažuriranje {date}",
   "privacy_policy.title": "Politika privatnosti",
   "recommended": "Preporučeno",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number} min.",
   "relative_time.seconds": "{number} sek.",
   "relative_time.today": "danas",
+  "reply_indicator.attachments": "{count, plural, one {# prilog} few {# priloga} other {# priloga}}",
   "reply_indicator.cancel": "Otkaži",
+  "reply_indicator.poll": "Anketa",
   "report.block": "Blokiraj",
   "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti Vaše objave niti će moći da Vas prati. Takođe će moći da sazna da je blokiran.",
   "report.categories.legal": "Pravni",

+ 6 - 6
app/javascript/mastodon/locales/sr.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.",
   "compose_form.lock_disclaimer.lock": "закључан",
   "compose_form.placeholder": "О чему размишљате?",
-  "compose_form.poll.add_option": "Додај опцију",
   "compose_form.poll.duration": "Трајање анкете",
   "compose_form.poll.multiple": "Вишеструки избор",
   "compose_form.poll.option_placeholder": "Опција {number}",
-  "compose_form.poll.remove_option": "Уклони ову опцију",
   "compose_form.poll.single": "Одаберите једно",
   "compose_form.poll.switch_to_multiple": "Промените анкету да бисте омогућили више избора",
   "compose_form.poll.switch_to_single": "Промените анкету да бисте омогућили један избор",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "Одобри",
   "follow_request.reject": "Одбиј",
   "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} сматра да бисте можда желели да ручно прегледате захтеве за праћење са ових налога.",
+  "follow_suggestions.curated_suggestion": "Избор уредника",
+  "follow_suggestions.dismiss": "Не приказуј поново",
+  "follow_suggestions.personalized_suggestion": "Персонализовани предлог",
+  "follow_suggestions.popular_suggestion": "Популарни предлог",
+  "follow_suggestions.view_all": "Прикажи све",
+  "follow_suggestions.who_to_follow": "Кога пратити",
   "followed_tags": "Праћене хеш ознаке",
   "footer.about": "Основни подаци",
   "footer.directory": "Директоријум профила",
@@ -305,13 +309,9 @@
   "hashtag.follow": "Запрати хеш ознаку",
   "hashtag.unfollow": "Отпрати хеш ознаку",
   "hashtags.and_other": "…и {count, plural, one {још #} few {још #}other {још #}}",
-  "home.actions.go_to_explore": "Погледате шта је у тренду",
-  "home.actions.go_to_suggestions": "Пронађете људе које бисте пратили",
   "home.column_settings.basic": "Основна",
   "home.column_settings.show_reblogs": "Прикажи подржавања",
   "home.column_settings.show_replies": "Прикажи одговоре",
-  "home.explore_prompt.body": "Ваша почетна страница ће имати мешавину објава од хеш ознака које сте изабрали да пратите, људи које сте изабрали да пратите и објава које су подржали. Ако изгледа превише тихо, можда ћете желети да:",
-  "home.explore_prompt.title": "Ово је ваша матична база у Mastodon-у.",
   "home.hide_announcements": "Сакриј најаве",
   "home.pending_critical_update.body": "Ажурирајте свој Mastodon сервер што је пре могуће!",
   "home.pending_critical_update.link": "Погледајте ажурирања",

+ 9 - 5
app/javascript/mastodon/locales/sv.json

@@ -145,12 +145,14 @@
   "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan följa dig för att se dina inlägg som endast är för följare.",
   "compose_form.lock_disclaimer.lock": "låst",
   "compose_form.placeholder": "Vad tänker du på?",
-  "compose_form.poll.add_option": "Lägg till alternativ",
   "compose_form.poll.duration": "Varaktighet för omröstning",
+  "compose_form.poll.multiple": "Flera val",
   "compose_form.poll.option_placeholder": "Alternativ {number}",
+  "compose_form.poll.single": "Välj en",
   "compose_form.poll.switch_to_multiple": "Ändra enkät för att tillåta flera val",
   "compose_form.poll.switch_to_single": "Ändra enkät för att tillåta ett enda val",
   "compose_form.poll.type": "Stil",
+  "compose_form.publish": "Publicera",
   "compose_form.publish_form": "Publicera",
   "compose_form.reply": "Svara",
   "compose_form.save_changes": "Uppdatera",
@@ -275,6 +277,10 @@
   "follow_request.authorize": "Godkänn",
   "follow_request.reject": "Avvisa",
   "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.",
+  "follow_suggestions.dismiss": "Visa inte igen",
+  "follow_suggestions.personalized_suggestion": "Personligt förslag",
+  "follow_suggestions.popular_suggestion": "Populärt förslag",
+  "follow_suggestions.view_all": "Visa alla",
   "followed_tags": "Följda hashtags",
   "footer.about": "Om",
   "footer.directory": "Profilkatalog",
@@ -301,13 +307,9 @@
   "hashtag.follow": "Följ hashtagg",
   "hashtag.unfollow": "Avfölj hashtagg",
   "hashtags.and_other": "…och {count, plural, one {}other {# mer}}",
-  "home.actions.go_to_explore": "Se vad som trendar",
-  "home.actions.go_to_suggestions": "Hitta personer att följa",
   "home.column_settings.basic": "Grundläggande",
   "home.column_settings.show_reblogs": "Visa boostar",
   "home.column_settings.show_replies": "Visa svar",
-  "home.explore_prompt.body": "Din hemflöde kommer att ha en blandning av inlägg från taggar du har valt att följa, de människor som du har valt att följa och de inlägg som de boostar. Om det känns för tyst kanske du vill:",
-  "home.explore_prompt.title": "Detta är din hembas inom Mastodon.",
   "home.hide_announcements": "Dölj notiser",
   "home.pending_critical_update.body": "Uppdatera din Mastodon-server så snart som möjligt!",
   "home.pending_critical_update.link": "Se uppdateringar",
@@ -518,6 +520,7 @@
   "poll_button.add_poll": "Lägg till en omröstning",
   "poll_button.remove_poll": "Ta bort omröstning",
   "privacy.change": "Ändra inläggsintegritet",
+  "privacy.direct.long": "Alla som nämns i inlägget",
   "privacy.private.long": "Endast dina följare",
   "privacy.private.short": "Följare",
   "privacy.public.long": "Alla på och utanför Mastodon",
@@ -539,6 +542,7 @@
   "relative_time.minutes": "{number}min",
   "relative_time.seconds": "{number}sek",
   "relative_time.today": "idag",
+  "reply_indicator.attachments": "{count, plural, one {# bilaga} other {# bilagor}}",
   "reply_indicator.cancel": "Ångra",
   "reply_indicator.poll": "Omröstning",
   "report.block": "Blockera",

+ 24 - 4
app/javascript/mastodon/locales/th.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "ล็อคอยู่",
   "compose_form.placeholder": "คุณกำลังคิดอะไรอยู่?",
   "compose_form.poll.duration": "ระยะเวลาการสำรวจความคิดเห็น",
+  "compose_form.poll.multiple": "หลายตัวเลือก",
+  "compose_form.poll.option_placeholder": "ตัวเลือก {number}",
+  "compose_form.poll.single": "เลือกอย่างใดอย่างหนึ่ง",
   "compose_form.poll.switch_to_multiple": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตหลายตัวเลือก",
   "compose_form.poll.switch_to_single": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตตัวเลือกเดี่ยว",
+  "compose_form.poll.type": "ลักษณะ",
+  "compose_form.publish": "โพสต์",
   "compose_form.publish_form": "โพสต์ใหม่",
+  "compose_form.reply": "ตอบกลับ",
+  "compose_form.save_changes": "อัปเดต",
   "compose_form.spoiler.marked": "เอาคำเตือนเนื้อหาออก",
   "compose_form.spoiler.unmarked": "เพิ่มคำเตือนเนื้อหา",
+  "compose_form.spoiler_placeholder": "คำเตือนเนื้อหา (ไม่จำเป็น)",
   "confirmation_modal.cancel": "ยกเลิก",
   "confirmations.block.block_and_report": "ปิดกั้นแล้วรายงาน",
   "confirmations.block.confirm": "ปิดกั้น",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "อนุญาต",
   "follow_request.reject": "ปฏิเสธ",
   "follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง",
+  "follow_suggestions.curated_suggestion": "คัดสรรโดยบรรณาธิการ",
+  "follow_suggestions.dismiss": "ไม่ต้องแสดงอีก",
+  "follow_suggestions.personalized_suggestion": "ข้อเสนอแนะเฉพาะบุคคล",
+  "follow_suggestions.popular_suggestion": "ข้อเสนอแนะยอดนิยม",
+  "follow_suggestions.view_all": "ดูทั้งหมด",
+  "follow_suggestions.who_to_follow": "ติดตามใครดี",
   "followed_tags": "แฮชแท็กที่ติดตาม",
   "footer.about": "เกี่ยวกับ",
   "footer.directory": "ไดเรกทอรีโปรไฟล์",
@@ -295,13 +309,9 @@
   "hashtag.follow": "ติดตามแฮชแท็ก",
   "hashtag.unfollow": "เลิกติดตามแฮชแท็ก",
   "hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}",
-  "home.actions.go_to_explore": "ดูสิ่งที่กำลังนิยม",
-  "home.actions.go_to_suggestions": "ค้นหาผู้คนที่จะติดตาม",
   "home.column_settings.basic": "พื้นฐาน",
   "home.column_settings.show_reblogs": "แสดงการดัน",
   "home.column_settings.show_replies": "แสดงการตอบกลับ",
-  "home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน หากนั่นรู้สึกเงียบเกินไป คุณอาจต้องการ:",
-  "home.explore_prompt.title": "นี่คือฐานหน้าแรกของคุณภายใน Mastodon",
   "home.hide_announcements": "ซ่อนประกาศ",
   "home.pending_critical_update.body": "โปรดอัปเดตเซิร์ฟเวอร์ Mastodon ของคุณโดยเร็วที่สุดเท่าที่จะเป็นไปได้!",
   "home.pending_critical_update.link": "ดูการอัปเดต",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "เพิ่มการสำรวจความคิดเห็น",
   "poll_button.remove_poll": "เอาการสำรวจความคิดเห็นออก",
   "privacy.change": "เปลี่ยนความเป็นส่วนตัวของโพสต์",
+  "privacy.direct.long": "ทุกคนที่กล่าวถึงในโพสต์",
+  "privacy.direct.short": "ผู้คนที่เฉพาะเจาะจง",
+  "privacy.private.long": "เฉพาะผู้ติดตามของคุณเท่านั้น",
+  "privacy.private.short": "ผู้ติดตาม",
+  "privacy.public.long": "ใครก็ตามที่อยู่ในและนอก Mastodon",
   "privacy.public.short": "สาธารณะ",
+  "privacy.unlisted.additional": "สิ่งนี้ทำงานเหมือนกับสาธารณะทุกประการ ยกเว้นโพสต์จะไม่ปรากฏในฟีดสดหรือแฮชแท็ก, การสำรวจ หรือการค้นหา Mastodon แม้ว่าคุณได้เลือกรับทั่วทั้งบัญชีก็ตาม",
+  "privacy.unlisted.long": "การประโคมอัลกอริทึมที่น้อยลง",
+  "privacy.unlisted.short": "สาธารณะแบบเงียบ",
   "privacy_policy.last_updated": "อัปเดตล่าสุดเมื่อ {date}",
   "privacy_policy.title": "นโยบายความเป็นส่วนตัว",
   "recommended": "แนะนำ",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number} นาที",
   "relative_time.seconds": "{number} วินาที",
   "relative_time.today": "วันนี้",
+  "reply_indicator.attachments": "{count, plural, other {# ไฟล์แนบ}}",
   "reply_indicator.cancel": "ยกเลิก",
+  "reply_indicator.poll": "การสำรวจความคิดเห็น",
   "report.block": "ปิดกั้น",
   "report.block_explanation": "คุณจะไม่เห็นโพสต์ของเขา เขาจะไม่สามารถเห็นโพสต์ของคุณหรือติดตามคุณ เขาจะสามารถบอกได้ว่ามีการปิดกั้นเขา",
   "report.categories.legal": "กฎหมาย",

+ 356 - 0
app/javascript/mastodon/locales/tok.json

@@ -0,0 +1,356 @@
+{
+  "about.blocks": "ma lawa",
+  "about.contact": "toki:",
+  "about.domain_blocks.no_reason_available": "mi sona ala e tan",
+  "about.domain_blocks.preamble": "ilo Masoton li ken e ni: sina lukin e toki jan pi ma ilo mute. sina ken toki tawa ona lon kulupu ma. taso, ma ni li ken ala e ni tawa ma ni:",
+  "about.domain_blocks.silenced.explanation": "sina lukin ala e toki e jan tan ma ni. taso, sina wile la, sina ken ni.",
+  "about.domain_blocks.silenced.title": "ken lili lukin",
+  "about.domain_blocks.suspended.title": "weka",
+  "about.not_available": "lon kulupu ni la sina ken alasa ala e sona ni.",
+  "about.rules": "lawa kulupu",
+  "account.account_note_header": "sona awen",
+  "account.add_or_remove_from_list": "o ante e lipu jan",
+  "account.badges.bot": "ilo nanpa li lawa e ni",
+  "account.badges.group": "kulupu",
+  "account.block": "o weka e @{name}",
+  "account.block_domain": "o weka e ma {domain}",
+  "account.block_short": "o weka e jan tawa mi",
+  "account.blocked": "jan li weka tawa mi",
+  "account.browse_more_on_origin_server": "sina tawa ma tan pi jan ni la sina ken lukin e mute",
+  "account.cancel_follow_request": "o pini kute",
+  "account.copy": "o pali same e linja pi lipu jan",
+  "account.direct": "len la o mu e @{name}",
+  "account.disable_notifications": "@{name} li toki la o mu ala e mi",
+  "account.domain_blocked": "ma ni li weka tawa sina",
+  "account.edit_profile": "o ante e lipu mi",
+  "account.enable_notifications": "@{name} li toki la o toki e toki ona tawa mi",
+  "account.endorse": "lipu jan la o suli e ni",
+  "account.featured_tags.last_status_at": "sitelen pini pi jan ni li lon tenpo {date}",
+  "account.featured_tags.last_status_never": "toki ala li lon",
+  "account.follow": "o kute",
+  "account.follow_back": "jan ni li kute e sina. o kute",
+  "account.followers": "jan kute",
+  "account.followers.empty": "jan ala li kute e jan ni",
+  "account.following": "sina kute e jan ni",
+  "account.follows.empty": "jan ni li kute e jan ala",
+  "account.go_to_profile": "o tawa lipu jan",
+  "account.hide_reblogs": "o lukin ala e pana toki tan @{name}",
+  "account.in_memoriam": "jan ni li moli. pona o tawa ona.",
+  "account.languages": "sina wile lukin e sitelen pi toki seme",
+  "account.locked_info": "sina wile kute e jan ni la ona o toki e ken",
+  "account.media": "sitelen",
+  "account.mention": "o toki e jan @{name}",
+  "account.moved_to": "lipu jan sin pi jan {name} li ni:",
+  "account.mute": "o len e @{name}",
+  "account.mute_notifications_short": "o kute ala e mu tan jan ni",
+  "account.mute_short": "o kute ala",
+  "account.muted": "sina len e jan ni",
+  "account.no_bio": "lipu li weka",
+  "account.open_original_page": "o open e lipu open",
+  "account.posts": "toki suli",
+  "account.posts_with_replies": "toki ale",
+  "account.report": "jan @{name} la o toki tawa lawa",
+  "account.requested": "jan ni o ken e kute sina. sina pini wile kute la o luka e ni",
+  "account.requested_follow": "{name} li wile kute e sina",
+  "account.share": "o pana e lipu jan @{name}",
+  "account.show_reblogs": "o lukin e pana toki tan @{name}",
+  "account.unblock": "o weka ala e jan {name}",
+  "account.unblock_domain": "o weka ala e ma {domain}",
+  "account.unblock_short": "o pini weka",
+  "account.unendorse": "lipu jan la o suli ala e ni",
+  "account.unfollow": "o pini kute",
+  "account.unmute": "o len ala e @{name}",
+  "account.unmute_notifications_short": "o kute e mu tan jan ni",
+  "account.unmute_short": "o len ala",
+  "admin.dashboard.retention.average": "sama",
+  "admin.dashboard.retention.cohort": "tenpo mun open",
+  "admin.dashboard.retention.cohort_size": "jan sin",
+  "alert.rate_limited.message": "tenpo {retry_time, time, medium} la o pali awen",
+  "alert.unexpected.message": "pakala li lon",
+  "alert.unexpected.title": "pakala a!",
+  "announcement.announcement": "toki suli",
+  "audio.hide": "o len e kalama",
+  "boost_modal.combo": "sina ken luka e nena {combo} tawa ni: sina wile ala luka e nena lon tenpo kama",
+  "bundle_column_error.copy_stacktrace": "o awen e sona pakala lon ilo sina",
+  "bundle_column_error.error.body": "ilo li ken ala pana e lipu ni. ni li ken tan pakala ilo.",
+  "bundle_column_error.error.title": "ike a!",
+  "bundle_column_error.network.title": "pakala la ilo sina li toki ala tawa ilo ante",
+  "bundle_column_error.retry": "o ni sin",
+  "bundle_column_error.return": "o tawa tomo",
+  "bundle_column_error.routing.body": "ilo li sona ala e lipu wile. sina pana ala pana e nasin pona tawa lipu?",
+  "bundle_column_error.routing.title": "pakala nanpa 404",
+  "bundle_modal_error.close": "o pini",
+  "bundle_modal_error.message": "ilo li wile kama e ijo ni, taso pakala li lon.",
+  "bundle_modal_error.retry": "o ni sin",
+  "closed_registrations_modal.find_another_server": "o alasa e ma ante",
+  "column.about": "sona",
+  "column.blocks": "kulupu pi jan weka",
+  "column.bookmarks": "awen toki",
+  "column.home": "lipu open",
+  "column.lists": "kulupu lipu",
+  "column.mutes": "jan len",
+  "column.pins": "toki sewi",
+  "column_header.hide_settings": "o len e lawa",
+  "column_header.pin": "o sewi",
+  "column_header.show_settings": "o lukin e lawa",
+  "column_header.unpin": "o sewi ala",
+  "column_subheading.settings": "ken ilo",
+  "community.column_settings.local_only": "toki tan ni taso",
+  "community.column_settings.media_only": "sitelen taso",
+  "community.column_settings.remote_only": "toki tan ante taso",
+  "compose.language.change": "o ante e nasin toki",
+  "compose.language.search": "o alasa e nasin toki...",
+  "compose.published.body": "toki li pana.",
+  "compose.published.open": "o lukin",
+  "compose.saved.body": "ilo li awen e ijo pana sina.",
+  "compose_form.direct_message_warning_learn_more": "o kama sona e ijo ante",
+  "compose_form.encryption_warning": "toki li len ala lon ilo Masoton ꞏ o pana ala e sona suli len lon ilo Masoton",
+  "compose_form.placeholder": "sina wile toki e seme?",
+  "compose_form.poll.duration": "tenpo pana",
+  "compose_form.poll.multiple": "pana mute",
+  "compose_form.poll.option_placeholder": "ken nanpa {number}",
+  "compose_form.poll.single": "pana pi wan taso",
+  "compose_form.poll.switch_to_multiple": "o ante e nasin pana. pana mute o ken",
+  "compose_form.poll.switch_to_single": "o ante e nasin pana. pana wan taso o lon",
+  "compose_form.poll.type": "nasin",
+  "compose_form.publish": "o toki",
+  "compose_form.publish_form": "o open toki sin",
+  "compose_form.reply": "o toki lon ijo ni",
+  "compose_form.save_changes": "o sin e ni",
+  "compose_form.spoiler.marked": "o weka e toki pi ijo ike ken",
+  "confirmation_modal.cancel": "o pini",
+  "confirmations.block.confirm": "o weka",
+  "confirmations.block.message": "sina o wile ala wile weka e jan {name}?",
+  "confirmations.cancel_follow_request.confirm": "o weka e wile sina",
+  "confirmations.cancel_follow_request.message": "sina awen ala awen wile weka e wile kute sina lon {name}?",
+  "confirmations.delete.confirm": "o weka",
+  "confirmations.delete.message": "sina wile ala wile weka e toki ni?",
+  "confirmations.delete_list.confirm": "o weka",
+  "confirmations.delete_list.message": "sina wile ala wile weka e lipu ni?",
+  "confirmations.discard_edit_media.confirm": "o weka",
+  "confirmations.discard_edit_media.message": "toki sitelen anu lukin lili sitelen la ante pi awen ala li lon. sina wile weka e ante ni?",
+  "confirmations.domain_block.confirm": "o weka.",
+  "confirmations.domain_block.message": "sina wile ala a wile a len e ma {domain} ꞏ ken suli la len jan taso li pona ꞏ len pi ma ni la sina ken ala lukin e ijo pi ma ni lon lipu toki ale anu lukin toki ꞏ len ni la jan kute sina pi ma ni li weka",
+  "confirmations.edit.confirm": "o ante",
+  "confirmations.logout.confirm": "o weka",
+  "confirmations.logout.message": "sina wile ala wile weka",
+  "confirmations.mute.confirm": "o len",
+  "confirmations.mute.message": "sina awen ala awen wile kute ala e {name}?",
+  "confirmations.redraft.confirm": "o weka o pali sin e toki",
+  "confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.",
+  "confirmations.reply.confirm": "toki lon toki ni",
+  "confirmations.reply.message": "toki tawa ona li weka e toki pali sina ꞏ sina wile ala wile ni",
+  "confirmations.unfollow.confirm": "o pini kute",
+  "confirmations.unfollow.message": "sina o wile ala wile pini kute e jan {name}?",
+  "conversation.delete": "o weka e toki ni",
+  "conversation.mark_as_read": "ni o sin ala",
+  "conversation.open": "o lukin e toki",
+  "conversation.with": "lon {names}",
+  "directory.local": "tan {domain} taso",
+  "directory.new_arrivals": "jan pi kama sin",
+  "directory.recently_active": "jan lon tenpo poka",
+  "disabled_account_banner.account_settings": "wile pi lipu jan",
+  "disabled_account_banner.text": "sina ken ala kepeken e lipu jan sina pi nimi {disabledAccount}.",
+  "dismissable_banner.community_timeline": "ni li toki pi tenpo poka tawa ale tan jan lon ma lawa pi nimi {domain}.",
+  "dismissable_banner.dismiss": "o weka",
+  "dismissable_banner.explore_links": "ni li toki pi ijo sin ꞏ jan mute li pana e ni lon tenpo suno ni ꞏ sin la jan mute li pana la ni li kama suli",
+  "embed.preview": "ni li jo e sitelen ni:",
+  "emoji_button.activity": "musi",
+  "emoji_button.flags": "len ma",
+  "emoji_button.food": "moku",
+  "emoji_button.label": "o pana e sitelen pilin",
+  "emoji_button.nature": "soweli en kasi",
+  "emoji_button.not_found": "sitelen pilin ala li lon",
+  "emoji_button.objects": "ijo",
+  "emoji_button.people": "jan",
+  "emoji_button.search": "o alasa...",
+  "emoji_button.search_results": "ijo pi alasa ni",
+  "emoji_button.symbols": "sitelen",
+  "emoji_button.travel": "ma en tawa",
+  "empty_column.account_hides_collections": "jan ni li wile len e sona ni",
+  "empty_column.account_timeline": "toki ala li lon!",
+  "empty_column.account_unavailable": "ken ala lukin e lipu jan",
+  "empty_column.blocks": "jan ala li weka tawa sina.",
+  "empty_column.followed_tags": "sina alasa ala e toki ꞏ sina alasa e toki la toki li lon ni",
+  "empty_column.hashtag": "ala li lon toki ni",
+  "empty_column.mutes": "jan ala li len tawa sina.",
+  "errors.unexpected_crash.report_issue": "o toki e pakala tawa lawa",
+  "explore.search_results": "ijo pi alasa ni",
+  "explore.suggested_follows": "jan",
+  "explore.title": "o alasa",
+  "explore.trending_links": "sin",
+  "explore.trending_statuses": "toki",
+  "filter_modal.select_filter.expired": "tenpo pini",
+  "filter_modal.select_filter.search": "o alasa anu pali",
+  "firehose.all": "ale",
+  "firehose.local": "kulupu ni",
+  "firehose.remote": "kulupu ante",
+  "follow_request.authorize": "o ken",
+  "follow_request.reject": "o ala",
+  "follow_suggestions.view_all": "o lukin e ale",
+  "follow_suggestions.who_to_follow": "sina o kute e ni",
+  "footer.about": "sona",
+  "footer.directory": "lipu jan",
+  "footer.get_app": "o jo e ilo",
+  "footer.privacy_policy": "lawa len",
+  "footer.source_code": "o lukin e toki ilo",
+  "footer.status": "lon",
+  "generic.saved": "ni li awen",
+  "hashtag.column_header.tag_mode.all": "en {additional}",
+  "hashtag.column_header.tag_mode.any": "anu {additional}",
+  "hashtag.column_header.tag_mode.none": "en {additional} ala",
+  "hashtag.column_settings.tag_mode.all": "ale ni",
+  "hashtag.column_settings.tag_mode.any": "wan ni",
+  "hashtag.column_settings.tag_mode.none": "ala ni",
+  "home.pending_critical_update.link": "o lukin e ijo ilo sin",
+  "interaction_modal.on_another_server": "lon ma ante",
+  "interaction_modal.on_this_server": "lon ma ni",
+  "interaction_modal.title.favourite": "o suli e toki {name}",
+  "interaction_modal.title.follow": "o kute e {name}",
+  "interaction_modal.title.reblog": "o wawa e toki {name}",
+  "keyboard_shortcuts.blocked": "o lukin e lipu sina pi jan weka",
+  "keyboard_shortcuts.boost": "o pana sin e toki",
+  "keyboard_shortcuts.down": "o tawa anpa lon lipu",
+  "keyboard_shortcuts.enter": "o lukin e toki",
+  "keyboard_shortcuts.favourite": "o suli e toki",
+  "keyboard_shortcuts.favourites": "o lukin e lipu sina pi toki suli",
+  "keyboard_shortcuts.muted": "o lukin e lipu sina pi jan len",
+  "keyboard_shortcuts.my_profile": "o lukin e lipu sina",
+  "keyboard_shortcuts.open_media": "o lukin e sitelen",
+  "keyboard_shortcuts.pinned": "o lukin pi lipu sina pi toki sewi",
+  "keyboard_shortcuts.toggle_sensitivity": "o ante e ken lukin",
+  "keyboard_shortcuts.toot": "o toki",
+  "keyboard_shortcuts.up": "o tawa sewi lon lipu",
+  "lightbox.close": "o pini",
+  "lightbox.compress": "o lili e sitelen",
+  "lightbox.expand": "o suli e sitelen",
+  "lightbox.next": "sinpin",
+  "lightbox.previous": "monsi",
+  "link_preview.author": "tan {name}",
+  "lists.account.add": "o pana tawa kulupu lipu",
+  "lists.account.remove": "o weka tan kulupu lipu",
+  "lists.delete": "o weka e kulupu lipu",
+  "lists.edit": "o ante e kulupu lipu",
+  "lists.edit.submit": "o ante e nimi",
+  "lists.exclusive": "o len e toki lon lipu open",
+  "lists.new.create": "o sin e kulupu lipu",
+  "lists.replies_policy.followed": "jan kute ale",
+  "lists.replies_policy.list": "jan pi kulupu ni taso",
+  "lists.replies_policy.none": "jan ala",
+  "lists.subheading": "kulupu lipu sina",
+  "load_pending": "{count, plural, other {ijo sin #}}",
+  "loading_indicator.label": "ni li kama…",
+  "media_gallery.toggle_visible": "{number, plural, other {o len e sitelen}}",
+  "mute_modal.duration": "tenpo",
+  "mute_modal.indefinite": "tenpo ale",
+  "navigation_bar.about": "sona",
+  "navigation_bar.blocks": "jan weka",
+  "navigation_bar.compose": "o pali e toki sin",
+  "navigation_bar.favourites": "toki suli",
+  "navigation_bar.filters": "nimi len",
+  "navigation_bar.lists": "kulupu lipu",
+  "navigation_bar.mutes": "sina wile ala kute e jan ni",
+  "navigation_bar.pins": "toki sewi",
+  "navigation_bar.preferences": "wile sina",
+  "navigation_bar.search": "o alasa",
+  "notification.admin.sign_up": "{name} li kama",
+  "notification.favourite": "{name} li suli e toki sina",
+  "notification.follow": " {name} li kute e sina",
+  "notification.follow_request": "{name} li wile kute e sina",
+  "notification.mention": "jan {name} li toki e sina",
+  "notification.reblog": "{name} li wawa e toki sina",
+  "notification.status": "{name} li toki",
+  "notification.update": "{name} li ante e toki",
+  "notifications.column_settings.follow": "jan kute sin",
+  "notifications.filter.all": "ale",
+  "onboarding.compose.template": "toki a, #Mastodon o!",
+  "onboarding.start.title": "sina o kama pona a!",
+  "poll.total_people": "{count, plural, other {jan #}}",
+  "privacy.public.short": "tawa ale",
+  "relative_time.full.just_now": "tenpo ni",
+  "relative_time.just_now": "tenpo ni",
+  "relative_time.today": "tenpo suno ni",
+  "report.block": "o weka e jan",
+  "report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.",
+  "report.category.title": "ike seme li lon {type} ni",
+  "report.category.title_account": "lipu",
+  "report.category.title_status": "toki",
+  "report.close": "o pini",
+  "report.mute": "o kute ala e ona",
+  "report.mute_explanation": "sina kama ala lukin e ijo pana ona. ona li awen ken kute e sina li awen ken lukin e sina li sona ala e weka kute sina e weka lukin sina.",
+  "report.next": "awen",
+  "report.reasons.dislike": "ni li ike tawa mi",
+  "report.reasons.legal": "ni li ike tawa lawa",
+  "report.reasons.other": "ni li ike tan ante",
+  "report.reasons.spam": "ni li ike tan toki mute",
+  "report.thanks.title": "sina wile ala lukin e ni anu seme?",
+  "report.unfollow": "o pini kute e {name}",
+  "report_notification.categories.legal": "ike tawa nasin lawa",
+  "search.placeholder": "o alasa",
+  "search.quick_action.go_to_account": "o tawa lipu jan {x}",
+  "search_popout.language_code": "nimi toki kepeken nasin ISO",
+  "search_results.all": "ale",
+  "search_results.see_all": "ale",
+  "search_results.statuses": "toki",
+  "search_results.title": "o alasa e {q}",
+  "status.block": "o weka e @{name}",
+  "status.cancel_reblog_private": "o pini e pana",
+  "status.delete": "o weka",
+  "status.edit": "o ante",
+  "status.edited": "ni li ante lon {date}",
+  "status.embed": "ni o lon insa pi lipu ante",
+  "status.favourite": "o suli",
+  "status.hide": "o len",
+  "status.history.created": "{name} li pali e ni lon {date}",
+  "status.history.edited": "{name} li ante lon {date}",
+  "status.load_more": "o kama e ijo ante",
+  "status.media.open": "o open",
+  "status.media.show": "o lukin",
+  "status.media_hidden": "sitelen li len",
+  "status.mute": "o len e @{name}",
+  "status.mute_conversation": "o kute ala e ijo pi toki ni",
+  "status.pin": "o sewi lon lipu sina",
+  "status.pinned": "toki sewi",
+  "status.reblog": "o wawa",
+  "status.share": "o pana tawa ante",
+  "status.show_less": "o lili e ni",
+  "status.show_less_all": "o lili e ale",
+  "status.show_more": "o suli e ni",
+  "status.show_more_all": "o suli e ale",
+  "status.show_original": "o lukin e mama",
+  "status.translate": "o ante pi nasin toki",
+  "status.translated_from_with": "toki li ante tan {lang} kepeken {provider}",
+  "status.uncached_media_warning": "lukin lili li weka",
+  "status.unmute_conversation": "o ken kute e ijo pi toki ni",
+  "status.unpin": "o sewi ala lon lipu sina",
+  "subscribed_languages.save": "o awen e ante",
+  "tabs_bar.home": "lipu open",
+  "timeline_hint.resources.followers": "jan kute",
+  "timeline_hint.resources.follows": "jan lukin",
+  "timeline_hint.resources.statuses": "ijo pi tenpo suli",
+  "trends.trending_now": "jan mute li toki",
+  "units.short.million": "{count}AAA",
+  "upload_button.label": "o pana e sitelen anu kalama",
+  "upload_error.limit": "ilo li ken ala e suli pi ijo ni.",
+  "upload_form.audio_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili",
+  "upload_form.description": "o toki e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
+  "upload_form.edit": "o ante",
+  "upload_form.thumbnail": "o ante e sitelen lili",
+  "upload_form.video_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili, e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
+  "upload_modal.choose_image": "o wile e sitelen",
+  "upload_modal.description_placeholder": "mi pu jaki tan soweli",
+  "upload_modal.detect_text": "ilo o alasa e nimi tan sitelen",
+  "upload_modal.edit_media": "o ante e sitelen",
+  "upload_modal.preparing_ocr": "ilo li open e alasa nimi lon sitelen…",
+  "upload_progress.label": "ilo li kama jo e ijo sina...",
+  "upload_progress.processing": "ilo li pali…",
+  "username.taken": "jan ante li kepeken e nimi ni. sina o kepeken e nimi sin",
+  "video.close": "o weka e ni",
+  "video.download": "o jo e ni",
+  "video.exit_fullscreen": "o weka tan sitelen suli",
+  "video.expand": "o suli e ni",
+  "video.hide": "o len e sitelen",
+  "video.mute": "o kalama ala",
+  "video.pause": "o lape e ni",
+  "video.unmute": "o kalama"
+}

+ 24 - 4
app/javascript/mastodon/locales/tr.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "kilitli",
   "compose_form.placeholder": "Aklında ne var?",
   "compose_form.poll.duration": "Anket süresi",
+  "compose_form.poll.multiple": "Çoktan seçmeli",
+  "compose_form.poll.option_placeholder": "Seçenek {number}",
+  "compose_form.poll.single": "Birini seç",
   "compose_form.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir",
   "compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir",
+  "compose_form.poll.type": "Stil",
+  "compose_form.publish": "Gönder",
   "compose_form.publish_form": "Gönder",
+  "compose_form.reply": "Yanıtla",
+  "compose_form.save_changes": "Güncelle",
   "compose_form.spoiler.marked": "Metin uyarının arkasına gizlenir",
   "compose_form.spoiler.unmarked": "Metin gizli değil",
+  "compose_form.spoiler_placeholder": "İçerik uyarısı (isteğe bağlı)",
   "confirmation_modal.cancel": "İptal",
   "confirmations.block.block_and_report": "Engelle ve Bildir",
   "confirmations.block.confirm": "Engelle",
@@ -269,6 +277,12 @@
   "follow_request.authorize": "İzin Ver",
   "follow_request.reject": "Reddet",
   "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa da, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.",
+  "follow_suggestions.curated_suggestion": "Editörün Seçimi",
+  "follow_suggestions.dismiss": "Tekrar gösterme",
+  "follow_suggestions.personalized_suggestion": "Kişiselleşmiş öneriler",
+  "follow_suggestions.popular_suggestion": "Popüler öneriler",
+  "follow_suggestions.view_all": "Tümünü gör",
+  "follow_suggestions.who_to_follow": "Takip edebileceklerin",
   "followed_tags": "Takip edilen etiketler",
   "footer.about": "Hakkında",
   "footer.directory": "Profil dizini",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Etiketi takip et",
   "hashtag.unfollow": "Etiketi takibi bırak",
   "hashtags.and_other": "…ve {count, plural, one {}other {# fazlası}}",
-  "home.actions.go_to_explore": "Öne çıkanları gör",
-  "home.actions.go_to_suggestions": "Takip edecek kişileri bulun",
   "home.column_settings.basic": "Temel",
   "home.column_settings.show_reblogs": "Yeniden paylaşımları göster",
   "home.column_settings.show_replies": "Yanıtları göster",
-  "home.explore_prompt.body": "Ana sayfa akışınızda, takip etmeyi seçtiğiniz ETİKETlerden, takip etmeyi seçtiğiniz kişilerden ve öne çıkardıkları gönderilerden oluşan bir karışım bulunur. Şu anda oldukça sessiz görünüyor, gör ve takip et :",
-  "home.explore_prompt.title": "Burası Mastodon'daki Anasayfanız.",
   "home.hide_announcements": "Duyuruları gizle",
   "home.pending_critical_update.body": "Lütfen Mastodon sunucunuzu en kısa sürede güncelleyin!",
   "home.pending_critical_update.link": "Güncellemelerini görün",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Bir anket ekleyin",
   "poll_button.remove_poll": "Anketi kaldır",
   "privacy.change": "Gönderi gizliliğini değiştir",
+  "privacy.direct.long": "Gönderide değinilen herkes",
+  "privacy.direct.short": "Belirli kişiler",
+  "privacy.private.long": "Sadece takipçileriniz",
+  "privacy.private.short": "Takipçiler",
+  "privacy.public.long": "Mastodon'da olan olmayan herkes",
   "privacy.public.short": "Herkese açık",
+  "privacy.unlisted.additional": "Bu neredeyse herkese açık gibi çalışır, tek farkı gönderi canlı akışlarda veya etiketlerde, keşfette, veya Mastodon aramasında gözükmez, hesap çapında öyle seçmiş olsanız bile.",
+  "privacy.unlisted.long": "Daha az algoritmik tantana",
+  "privacy.unlisted.short": "Sessizce herkese açık",
   "privacy_policy.last_updated": "Son güncelleme {date}",
   "privacy_policy.title": "Gizlilik Politikası",
   "recommended": "Önerilen",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}sn",
   "relative_time.today": "bugün",
+  "reply_indicator.attachments": "{count, plural, one {# ek} other {# ek}}",
   "reply_indicator.cancel": "İptal",
+  "reply_indicator.poll": "Anket",
   "report.block": "Engelle",
   "report.block_explanation": "Gönderilerini göremeyeceksiniz. Gönderilerinizi göremezler veya sizi takip edemezler. Engelli olduklarını anlayabilecekler.",
   "report.categories.legal": "Yasal",

+ 24 - 5
app/javascript/mastodon/locales/uk.json

@@ -145,13 +145,20 @@
   "compose_form.lock_disclaimer": "Ваш обліковий запис не {locked}. Будь-який користувач може підписатися на вас та переглядати ваші дописи для підписників.",
   "compose_form.lock_disclaimer.lock": "приватний",
   "compose_form.placeholder": "Що у вас на думці?",
-  "compose_form.poll.add_option": "Додати опцію",
   "compose_form.poll.duration": "Тривалість опитування",
+  "compose_form.poll.multiple": "Кілька варіантів",
+  "compose_form.poll.option_placeholder": "Варіант {number}",
+  "compose_form.poll.single": "Виберіть варіант",
   "compose_form.poll.switch_to_multiple": "Дозволити вибір декількох відповідей",
   "compose_form.poll.switch_to_single": "Перемкнути у режим вибору однієї відповіді",
+  "compose_form.poll.type": "Стиль",
+  "compose_form.publish": "Опублікувати",
   "compose_form.publish_form": "Новий допис",
+  "compose_form.reply": "Відповісти",
+  "compose_form.save_changes": "Оновити",
   "compose_form.spoiler.marked": "Прибрати попередження про вміст",
   "compose_form.spoiler.unmarked": "Додати попередження про вміст",
+  "compose_form.spoiler_placeholder": "Попередження про вміст (необов'язково)",
   "confirmation_modal.cancel": "Скасувати",
   "confirmations.block.block_and_report": "Заблокувати та поскаржитися",
   "confirmations.block.confirm": "Заблокувати",
@@ -270,6 +277,12 @@
   "follow_request.authorize": "Авторизувати",
   "follow_request.reject": "Відмовити",
   "follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, персонал {domain} припускає, що, можливо, ви хотіли б переглянути ці запити на підписку.",
+  "follow_suggestions.curated_suggestion": "Вибір редакції",
+  "follow_suggestions.dismiss": "Більше не показувати",
+  "follow_suggestions.personalized_suggestion": "Персоналізована пропозиція",
+  "follow_suggestions.popular_suggestion": "Популярна пропозиція",
+  "follow_suggestions.view_all": "Переглянути все",
+  "follow_suggestions.who_to_follow": "На кого підписатися",
   "followed_tags": "Відстежувані хештеґи",
   "footer.about": "Про проєкт",
   "footer.directory": "Каталог профілів",
@@ -296,13 +309,9 @@
   "hashtag.follow": "Стежити за хештегом",
   "hashtag.unfollow": "Не стежити за хештегом",
   "hashtags.and_other": "…і {count, plural, other {ще #}}",
-  "home.actions.go_to_explore": "Переглянути тенденції",
-  "home.actions.go_to_suggestions": "Знайти людей, аби підписатися",
   "home.column_settings.basic": "Основні",
   "home.column_settings.show_reblogs": "Показувати поширення",
   "home.column_settings.show_replies": "Показувати відповіді",
-  "home.explore_prompt.body": "Ваша домашня стрічка буде сумішшю дописів з обраних для стеження хештегів, людей і поширених ними дописів. Якщо цього замало, ви також можете:",
-  "home.explore_prompt.title": "Це ваша домашня база у Mastodon.",
   "home.hide_announcements": "Приховати оголошення",
   "home.pending_critical_update.body": "Якнайшвидше оновіть свій сервер Mastodon!",
   "home.pending_critical_update.link": "Переглянути оновлення",
@@ -515,7 +524,15 @@
   "poll_button.add_poll": "Додати опитування",
   "poll_button.remove_poll": "Видалити опитування",
   "privacy.change": "Змінити видимість допису",
+  "privacy.direct.long": "Усі згадані в дописі",
+  "privacy.direct.short": "Певні люди",
+  "privacy.private.long": "Лише ваші підписники",
+  "privacy.private.short": "Підписники",
+  "privacy.public.long": "Усі з Mastodon",
   "privacy.public.short": "Публічно",
+  "privacy.unlisted.additional": "Має таку ж поведінку, як у людей, але повідомлення не з'являтимуться у стрічках або хештегах, оглядах, або пошуку Mastodon, навіть якщо ви використовуєте облікові записи.",
+  "privacy.unlisted.long": "Менше взаємодій з алгоритмами",
+  "privacy.unlisted.short": "Без додавання до стрічки",
   "privacy_policy.last_updated": "Оновлено {date}",
   "privacy_policy.title": "Політика приватності",
   "recommended": "Рекомендовано",
@@ -533,7 +550,9 @@
   "relative_time.minutes": "{number}х",
   "relative_time.seconds": "{number}с",
   "relative_time.today": "сьогодні",
+  "reply_indicator.attachments": "{count, plural, one {# вкладення} few {# вкладення} many {# вкладень} other {# вкладення}}",
   "reply_indicator.cancel": "Скасувати",
+  "reply_indicator.poll": "Опитування",
   "report.block": "Заблокувати",
   "report.block_explanation": "Ви не будете бачити дописи цього користувача, а вони не зможуть бачити ваші дописи або підписуватися на вас. Вони будуть бачити, що ви їх заблокували.",
   "report.categories.legal": "Правові положення",

+ 25 - 5
app/javascript/mastodon/locales/vi.json

@@ -146,11 +146,19 @@
   "compose_form.lock_disclaimer.lock": "khóa",
   "compose_form.placeholder": "Bạn đang nghĩ gì?",
   "compose_form.poll.duration": "Hết hạn vào",
+  "compose_form.poll.multiple": "Nhiều lựa chọn",
+  "compose_form.poll.option_placeholder": "Lựa chọn {number}",
+  "compose_form.poll.single": "Chọn một",
   "compose_form.poll.switch_to_multiple": "Có thể chọn nhiều lựa chọn",
   "compose_form.poll.switch_to_single": "Chỉ cho phép chọn duy nhất một lựa chọn",
+  "compose_form.poll.type": "Loại",
+  "compose_form.publish": "Đăng",
   "compose_form.publish_form": "Đăng",
+  "compose_form.reply": "Trả lời",
+  "compose_form.save_changes": "Cập nhật",
   "compose_form.spoiler.marked": "Hủy nội dung ẩn",
   "compose_form.spoiler.unmarked": "Tạo nội dung ẩn",
+  "compose_form.spoiler_placeholder": "Nội dung ẩn (tùy chọn)",
   "confirmation_modal.cancel": "Hủy bỏ",
   "confirmations.block.block_and_report": "Chặn & Báo cáo",
   "confirmations.block.confirm": "Chặn",
@@ -266,9 +274,15 @@
   "firehose.all": "Toàn bộ",
   "firehose.local": "Máy chủ này",
   "firehose.remote": "Máy chủ khác",
-  "follow_request.authorize": "Cho phép",
+  "follow_request.authorize": "Chấp nhận",
   "follow_request.reject": "Từ chối",
   "follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.",
+  "follow_suggestions.curated_suggestion": "Lựa chọn của máy chủ",
+  "follow_suggestions.dismiss": "Không hiện lại",
+  "follow_suggestions.personalized_suggestion": "Gợi ý cá nhân hóa",
+  "follow_suggestions.popular_suggestion": "Những người nổi tiếng",
+  "follow_suggestions.view_all": "Xem tất cả",
+  "follow_suggestions.who_to_follow": "Gợi ý theo dõi",
   "followed_tags": "Hashtag theo dõi",
   "footer.about": "Giới thiệu",
   "footer.directory": "Cộng đồng",
@@ -295,13 +309,9 @@
   "hashtag.follow": "Theo dõi hashtag",
   "hashtag.unfollow": "Bỏ theo dõi hashtag",
   "hashtags.and_other": "…và {count, plural, other {# nữa}}",
-  "home.actions.go_to_explore": "Khám phá xu hướng",
-  "home.actions.go_to_suggestions": "Tìm người theo dõi",
   "home.column_settings.basic": "Tùy chỉnh",
   "home.column_settings.show_reblogs": "Hiện những lượt đăng lại",
   "home.column_settings.show_replies": "Hiện những tút dạng trả lời",
-  "home.explore_prompt.body": "Bảng tin của bạn sẽ bao gồm các tút có hashtag bạn theo dõi, những người bạn theo dõi và các tút mà họ đăng lại. Lúc này có vẻ hơi trống, sao bạn không:",
-  "home.explore_prompt.title": "Đây là ngôi nhà Mastodon của bạn.",
   "home.hide_announcements": "Ẩn thông báo máy chủ",
   "home.pending_critical_update.body": "Vui lòng cập nhật máy chủ Mastodon của bạn càng sớm càng tốt!",
   "home.pending_critical_update.link": "Xem bản cập nhật",
@@ -514,7 +524,15 @@
   "poll_button.add_poll": "Tạo bình chọn",
   "poll_button.remove_poll": "Hủy cuộc bình chọn",
   "privacy.change": "Chọn kiểu tút",
+  "privacy.direct.long": "Những người được nhắc trong tút",
+  "privacy.direct.short": "Người cụ thể",
+  "privacy.private.long": "Chỉ người theo dõi",
+  "privacy.private.short": "Người theo dõi",
+  "privacy.public.long": "Bất cứ ai",
   "privacy.public.short": "Công khai",
+  "privacy.unlisted.additional": "Giống hệt như công khai, ngoại trừ tút sẽ không xuất hiện trong bảng tin hoặc hashtag, khám phá hoặc tìm kiếm Mastodon, ngay cả khi bạn chọn cho phép trong cài đặt tài khoản.",
+  "privacy.unlisted.long": "Ít hướng thuật toán hơn",
+  "privacy.unlisted.short": "Hạn chế",
   "privacy_policy.last_updated": "Cập nhật lần cuối {date}",
   "privacy_policy.title": "Chính sách bảo mật",
   "recommended": "Đề xuất",
@@ -532,7 +550,9 @@
   "relative_time.minutes": "{number} phút",
   "relative_time.seconds": "{number}s",
   "relative_time.today": "hôm nay",
+  "reply_indicator.attachments": "{count, plural, other {# tập tin đính kèm}}",
   "reply_indicator.cancel": "Hủy bỏ",
+  "reply_indicator.poll": "Bình chọn",
   "report.block": "Chặn",
   "report.block_explanation": "Bạn sẽ không còn thấy tút của người này. Họ sẽ không thể thấy tút của bạn hoặc theo dõi bạn. Họ biết là bạn đã chặn họ.",
   "report.categories.legal": "Phạm pháp",

+ 6 - 6
app/javascript/mastodon/locales/zh-CN.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "你的账户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。",
   "compose_form.lock_disclaimer.lock": "开启保护",
   "compose_form.placeholder": "想写什么?",
-  "compose_form.poll.add_option": "添加选项",
   "compose_form.poll.duration": "投票期限",
   "compose_form.poll.multiple": "多选",
   "compose_form.poll.option_placeholder": "选项 {number}",
-  "compose_form.poll.remove_option": "删除此选项",
   "compose_form.poll.single": "单选",
   "compose_form.poll.switch_to_multiple": "将投票改为多选",
   "compose_form.poll.switch_to_single": "将投票改为单选",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "同意",
   "follow_request.reject": "拒绝",
   "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。",
+  "follow_suggestions.curated_suggestion": "主编推荐",
+  "follow_suggestions.dismiss": "不再显示",
+  "follow_suggestions.personalized_suggestion": "个性化建议",
+  "follow_suggestions.popular_suggestion": "热门建议",
+  "follow_suggestions.view_all": "查看全部",
+  "follow_suggestions.who_to_follow": "推荐关注",
   "followed_tags": "关注的话题标签",
   "footer.about": "关于",
   "footer.directory": "用户目录",
@@ -305,13 +309,9 @@
   "hashtag.follow": "关注话题标签",
   "hashtag.unfollow": "取消关注话题标签",
   "hashtags.and_other": "… 和另外 {count, plural, other {# 个话题}}",
-  "home.actions.go_to_explore": "查看热门话题",
-  "home.actions.go_to_suggestions": "寻找要关注的人",
   "home.column_settings.basic": "基本设置",
   "home.column_settings.show_reblogs": "显示转嘟",
   "home.column_settings.show_replies": "显示回复",
-  "home.explore_prompt.body": "你的主页动态会推送一系列关注的话题标签和用户,以及转发的嘟文。如果你觉得过于清净,不妨试一下:",
-  "home.explore_prompt.title": "这是你在 Mastodon 的主页。",
   "home.hide_announcements": "隐藏公告",
   "home.pending_critical_update.body": "请尽快更新您的 Mastodon 服务器!",
   "home.pending_critical_update.link": "查看更新",

+ 6 - 6
app/javascript/mastodon/locales/zh-HK.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。",
   "compose_form.lock_disclaimer.lock": "鎖定",
   "compose_form.placeholder": "你在想甚麼?",
-  "compose_form.poll.add_option": "新增選項",
   "compose_form.poll.duration": "投票期限",
   "compose_form.poll.multiple": "多選",
   "compose_form.poll.option_placeholder": "選項 {number}",
-  "compose_form.poll.remove_option": "移除此選項",
   "compose_form.poll.single": "選擇一個",
   "compose_form.poll.switch_to_multiple": "變更投票為允許多個選項",
   "compose_form.poll.switch_to_single": "變更投票為限定單一選項",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "批准",
   "follow_request.reject": "拒絕",
   "follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。",
+  "follow_suggestions.curated_suggestion": "編輯推薦",
+  "follow_suggestions.dismiss": "不再顯示",
+  "follow_suggestions.personalized_suggestion": "個人化推薦",
+  "follow_suggestions.popular_suggestion": "熱門推薦",
+  "follow_suggestions.view_all": "查看所有",
+  "follow_suggestions.who_to_follow": "追蹤對象",
   "followed_tags": "已追蹤標籤",
   "footer.about": "關於",
   "footer.directory": "個人檔案目錄",
@@ -305,13 +309,9 @@
   "hashtag.follow": "追蹤主題標籤",
   "hashtag.unfollow": "取消追蹤主題標籤",
   "hashtags.and_other": "…及{count, plural, other {其他 # 個}}",
-  "home.actions.go_to_explore": "即時熱門話題",
-  "home.actions.go_to_suggestions": "尋找追蹤對象",
   "home.column_settings.basic": "基本",
   "home.column_settings.show_reblogs": "顯示被轉推的文章",
   "home.column_settings.show_replies": "顯示回應文章",
-  "home.explore_prompt.body": "你的首頁時間軸將顯示來自你追蹤的標籤、使用者及他們轉推的帖文。如果時間軸感覺太安靜,你可以考慮:",
-  "home.explore_prompt.title": "這是你在 Mastodon 中的主頁。",
   "home.hide_announcements": "隱藏公告",
   "home.pending_critical_update.body": "請盡快更新你的 Mastodon 伺服器!",
   "home.pending_critical_update.link": "查看更新",

+ 6 - 6
app/javascript/mastodon/locales/zh-TW.json

@@ -145,11 +145,9 @@
   "compose_form.lock_disclaimer": "您的帳號尚未 {locked}。任何人皆能跟隨您並看到您設定成只對跟隨者顯示的嘟文。",
   "compose_form.lock_disclaimer.lock": "上鎖",
   "compose_form.placeholder": "正在想些什麼嗎?",
-  "compose_form.poll.add_option": "新增選項",
   "compose_form.poll.duration": "投票期限",
   "compose_form.poll.multiple": "多選",
   "compose_form.poll.option_placeholder": "選項 {number}",
-  "compose_form.poll.remove_option": "移除此選項",
   "compose_form.poll.single": "選擇一個",
   "compose_form.poll.switch_to_multiple": "變更投票為允許多個選項",
   "compose_form.poll.switch_to_single": "變更投票為允許單一選項",
@@ -279,6 +277,12 @@
   "follow_request.authorize": "授權",
   "follow_request.reject": "拒絕",
   "follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的管理員認為您可能想要自己審核這些帳號的跟隨請求。",
+  "follow_suggestions.curated_suggestion": "精選內容",
+  "follow_suggestions.dismiss": "不再顯示",
+  "follow_suggestions.personalized_suggestion": "個人化推薦",
+  "follow_suggestions.popular_suggestion": "熱門推薦",
+  "follow_suggestions.view_all": "檢視全部",
+  "follow_suggestions.who_to_follow": "推薦跟隨帳號",
   "followed_tags": "已跟隨主題標籤",
   "footer.about": "關於",
   "footer.directory": "個人檔案目錄",
@@ -305,13 +309,9 @@
   "hashtag.follow": "跟隨主題標籤",
   "hashtag.unfollow": "取消跟隨主題標籤",
   "hashtags.and_other": "…及其他 {count, plural, other {# 個}}",
-  "home.actions.go_to_explore": "看看發生什麼新鮮事",
-  "home.actions.go_to_suggestions": "尋找一些人來跟隨",
   "home.column_settings.basic": "基本設定",
   "home.column_settings.show_reblogs": "顯示轉嘟",
   "home.column_settings.show_replies": "顯示回覆",
-  "home.explore_prompt.body": "您的首頁時間軸將由您所跟隨之主題標籤、帳號以及其轉嘟所組成。若目前流速有點慢,您可以考慮以下幾點:",
-  "home.explore_prompt.title": "這是您於 Mastodon 的基地",
   "home.hide_announcements": "隱藏公告",
   "home.pending_critical_update.body": "請立即升級您的 Mastodon 伺服器!",
   "home.pending_critical_update.link": "檢視更新內容",

+ 2 - 2
app/javascript/mastodon/reducers/compose.js

@@ -315,8 +315,8 @@ export default function compose(state = initialState, action) {
       map.set('spoiler', !state.get('spoiler'));
       map.set('idempotencyKey', uuid());
 
-      if (!state.get('sensitive') && state.get('media_attachments').size >= 1) {
-        map.set('sensitive', true);
+      if (state.get('media_attachments').size >= 1 && !state.get('default_sensitive')) {
+        map.set('sensitive', !state.get('spoiler'));
       }
     });
   case COMPOSE_SPOILER_TEXT_CHANGE:

+ 9 - 53
app/javascript/styles/mastodon/components.scss

@@ -4711,43 +4711,6 @@ a.status-card {
   animation: heartbeat 1.5s ease-in-out infinite both;
 }
 
-@keyframes shake-bottom {
-  0%,
-  100% {
-    transform: rotate(0deg);
-    transform-origin: 50% 100%;
-  }
-
-  10% {
-    transform: rotate(2deg);
-  }
-
-  20%,
-  40%,
-  60% {
-    transform: rotate(-4deg);
-  }
-
-  30%,
-  50%,
-  70% {
-    transform: rotate(4deg);
-  }
-
-  80% {
-    transform: rotate(-2deg);
-  }
-
-  90% {
-    transform: rotate(2deg);
-  }
-}
-
-.no-reduce-motion .shake-bottom {
-  transform-origin: 50% 100%;
-  animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;
-}
-
 .emoji-picker-dropdown__menu {
   position: relative;
   margin-top: 5px;
@@ -5353,20 +5316,6 @@ a.status-card {
   }
 }
 
-.search-results__hashtag {
-  display: block;
-  padding: 10px;
-  color: $secondary-text-color;
-  text-decoration: none;
-
-  &:hover,
-  &:active,
-  &:focus {
-    color: lighten($secondary-text-color, 4%);
-    text-decoration: underline;
-  }
-}
-
 .search-results__info {
   padding: 20px;
   color: $darker-text-color;
@@ -5394,6 +5343,8 @@ a.status-card {
   inset-inline-start: 0;
   width: 100%;
   height: 100%;
+  max-width: 100vw;
+  max-height: 100vh;
   box-sizing: border-box;
   display: flex;
   flex-direction: column;
@@ -9465,6 +9416,7 @@ noscript {
   flex-direction: column;
   gap: 12px;
   padding: 16px 0;
+  padding-bottom: 0;
   border-bottom: 1px solid mix($ui-base-color, $ui-highlight-color, 75%);
   background: mix($ui-base-color, $ui-highlight-color, 95%);
 
@@ -9503,6 +9455,7 @@ noscript {
       cursor: pointer;
       top: 0;
       color: $primary-text-color;
+      opacity: 0.5;
 
       &.left {
         left: 0;
@@ -9530,6 +9483,8 @@ noscript {
       &:hover,
       &:focus,
       &:active {
+        opacity: 1;
+
         .inline-follow-suggestions__body__scroll-button__icon {
           background: lighten($ui-highlight-color, 4%);
         }
@@ -9541,11 +9496,10 @@ noscript {
       flex-wrap: nowrap;
       gap: 16px;
       padding: 16px;
-      padding-bottom: 0;
       scroll-snap-type: x mandatory;
       scroll-padding: 16px;
       scroll-behavior: smooth;
-      overflow-x: hidden;
+      overflow-x: scroll;
 
       &__card {
         background: darken($ui-base-color, 4%);
@@ -9570,6 +9524,7 @@ noscript {
           position: absolute;
           inset-inline-end: 8px;
           top: 8px;
+          opacity: 0.75;
         }
 
         &__avatar {
@@ -9607,6 +9562,7 @@ noscript {
             gap: 4px;
             overflow: hidden;
             white-space: nowrap;
+            cursor: help;
 
             > span {
               overflow: hidden;

+ 20 - 0
app/lib/application_extension.rb

@@ -4,14 +4,34 @@ module ApplicationExtension
   extend ActiveSupport::Concern
 
   included do
+    include Redisable
+
     has_many :created_users, class_name: 'User', foreign_key: 'created_by_application_id', inverse_of: :created_by_application
 
     validates :name, length: { maximum: 60 }
     validates :website, url: true, length: { maximum: 2_000 }, if: :website?
     validates :redirect_uri, length: { maximum: 2_000 }
+
+    # The relationship used between Applications and AccessTokens is using
+    # dependent: delete_all, which means the ActiveRecord callback in
+    # AccessTokenExtension is not run, so instead we manually announce to
+    # streaming that these tokens are being deleted.
+    before_destroy :push_to_streaming_api, prepend: true
   end
 
   def confirmation_redirect_uri
     redirect_uri.lines.first.strip
   end
+
+  def push_to_streaming_api
+    # TODO: #28793 Combine into a single topic
+    payload = Oj.dump(event: :kill)
+    access_tokens.in_batches do |tokens|
+      redis.pipelined do |pipeline|
+        tokens.ids.each do |id|
+          pipeline.publish("timeline:access_token:#{id}", payload)
+        end
+      end
+    end
+  end
 end

+ 40 - 0
app/lib/signature_parser.rb

@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+class SignatureParser
+  class ParsingError < StandardError; end
+
+  # The syntax of this header is defined in:
+  # https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12#section-4
+  # See https://datatracker.ietf.org/doc/html/rfc7235#appendix-C
+  # and https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6
+
+  # In addition, ignore a `Signature ` string prefix that was added by old versions
+  # of `node-http-signatures`
+
+  TOKEN_RE = /[0-9a-zA-Z!#$%&'*+.^_`|~-]+/
+  # qdtext and quoted_pair are not exactly according to spec but meh
+  QUOTED_STRING_RE = /"([^\\"]|(\\.))*"/
+  PARAM_RE = /(?<key>#{TOKEN_RE})\s*=\s*((?<value>#{TOKEN_RE})|(?<quoted_value>#{QUOTED_STRING_RE}))/
+
+  def self.parse(raw_signature)
+    # Old versions of node-http-signature add an incorrect "Signature " prefix to the header
+    raw_signature = raw_signature.delete_prefix('Signature ')
+
+    params = {}
+    scanner = StringScanner.new(raw_signature)
+
+    # Use `skip` instead of `scan` as we only care about the subgroups
+    while scanner.skip(PARAM_RE)
+      # This is not actually correct with regards to quoted pairs, but it's consistent
+      # with our previous implementation, and good enough in practice.
+      params[scanner[:key]] = scanner[:value] || scanner[:quoted_value][1...-1]
+
+      scanner.skip(/\s*/)
+      return params if scanner.eos?
+
+      raise ParsingError unless scanner.skip(/\s*,\s*/)
+    end
+
+    raise ParsingError
+  end
+end

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