Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `README.md`:
  Upstream changed their README, we have a completely different one.
  Kept our README.
local
Claire 2 years ago
commit c79a03b319
  1. 6
      .circleci/config.yml
  2. 32
      .github/CODEOWNERS
  3. 2
      .github/FUNDING.yml
  4. 1
      .github/ISSUE_TEMPLATE/2.feature_request.yml
  5. 10
      .github/ISSUE_TEMPLATE/3.support.md
  6. 7
      .github/ISSUE_TEMPLATE/config.yml
  7. 2
      .github/workflows/build-image.yml
  8. 639
      AUTHORS.md
  9. 198
      CHANGELOG.md
  10. 2
      Gemfile
  11. 120
      Gemfile.lock
  12. 18
      SECURITY.md
  13. 19
      app/controllers/api/v1/notifications_controller.rb
  14. 1
      app/javascript/mastodon/locales/af.json
  15. 1
      app/javascript/mastodon/locales/ar.json
  16. 3
      app/javascript/mastodon/locales/ast.json
  17. 1
      app/javascript/mastodon/locales/bg.json
  18. 1
      app/javascript/mastodon/locales/bn.json
  19. 1
      app/javascript/mastodon/locales/br.json
  20. 1
      app/javascript/mastodon/locales/ca.json
  21. 1
      app/javascript/mastodon/locales/co.json
  22. 1
      app/javascript/mastodon/locales/cs.json
  23. 1
      app/javascript/mastodon/locales/cy.json
  24. 11
      app/javascript/mastodon/locales/da.json
  25. 1
      app/javascript/mastodon/locales/de.json
  26. 1
      app/javascript/mastodon/locales/el.json
  27. 1
      app/javascript/mastodon/locales/eo.json
  28. 1
      app/javascript/mastodon/locales/es-AR.json
  29. 1
      app/javascript/mastodon/locales/es-MX.json
  30. 1
      app/javascript/mastodon/locales/es.json
  31. 1
      app/javascript/mastodon/locales/et.json
  32. 1
      app/javascript/mastodon/locales/eu.json
  33. 1
      app/javascript/mastodon/locales/fa.json
  34. 1
      app/javascript/mastodon/locales/fi.json
  35. 3
      app/javascript/mastodon/locales/fr.json
  36. 1
      app/javascript/mastodon/locales/ga.json
  37. 1
      app/javascript/mastodon/locales/gd.json
  38. 1
      app/javascript/mastodon/locales/gl.json
  39. 1
      app/javascript/mastodon/locales/he.json
  40. 1
      app/javascript/mastodon/locales/hi.json
  41. 1
      app/javascript/mastodon/locales/hr.json
  42. 1
      app/javascript/mastodon/locales/hu.json
  43. 1
      app/javascript/mastodon/locales/hy.json
  44. 1
      app/javascript/mastodon/locales/id.json
  45. 1
      app/javascript/mastodon/locales/io.json
  46. 1
      app/javascript/mastodon/locales/is.json
  47. 1
      app/javascript/mastodon/locales/it.json
  48. 27
      app/javascript/mastodon/locales/ja.json
  49. 1
      app/javascript/mastodon/locales/ka.json
  50. 1
      app/javascript/mastodon/locales/kab.json
  51. 1
      app/javascript/mastodon/locales/kk.json
  52. 7
      app/javascript/mastodon/locales/kmr.json
  53. 1
      app/javascript/mastodon/locales/kn.json
  54. 1
      app/javascript/mastodon/locales/ko.json
  55. 1
      app/javascript/mastodon/locales/ku.json
  56. 1
      app/javascript/mastodon/locales/kw.json
  57. 1
      app/javascript/mastodon/locales/lt.json
  58. 1
      app/javascript/mastodon/locales/lv.json
  59. 1
      app/javascript/mastodon/locales/mk.json
  60. 1
      app/javascript/mastodon/locales/ml.json
  61. 1
      app/javascript/mastodon/locales/mr.json
  62. 1
      app/javascript/mastodon/locales/ms.json
  63. 1
      app/javascript/mastodon/locales/nl.json
  64. 1
      app/javascript/mastodon/locales/nn.json
  65. 1
      app/javascript/mastodon/locales/no.json
  66. 1
      app/javascript/mastodon/locales/oc.json
  67. 1
      app/javascript/mastodon/locales/pa.json
  68. 1
      app/javascript/mastodon/locales/pl.json
  69. 1
      app/javascript/mastodon/locales/pt-BR.json
  70. 1
      app/javascript/mastodon/locales/pt-PT.json
  71. 1
      app/javascript/mastodon/locales/ro.json
  72. 25
      app/javascript/mastodon/locales/ru.json
  73. 1
      app/javascript/mastodon/locales/sa.json
  74. 1
      app/javascript/mastodon/locales/sc.json
  75. 1
      app/javascript/mastodon/locales/si.json
  76. 1
      app/javascript/mastodon/locales/sk.json
  77. 1
      app/javascript/mastodon/locales/sl.json
  78. 1
      app/javascript/mastodon/locales/sq.json
  79. 1
      app/javascript/mastodon/locales/sr-Latn.json
  80. 1
      app/javascript/mastodon/locales/sr.json
  81. 1
      app/javascript/mastodon/locales/sv.json
  82. 1
      app/javascript/mastodon/locales/szl.json
  83. 1
      app/javascript/mastodon/locales/ta.json
  84. 1
      app/javascript/mastodon/locales/tai.json
  85. 1
      app/javascript/mastodon/locales/te.json
  86. 59
      app/javascript/mastodon/locales/th.json
  87. 1
      app/javascript/mastodon/locales/tr.json
  88. 7
      app/javascript/mastodon/locales/tt.json
  89. 1
      app/javascript/mastodon/locales/ug.json
  90. 1
      app/javascript/mastodon/locales/uk.json
  91. 1
      app/javascript/mastodon/locales/ur.json
  92. 33
      app/javascript/mastodon/locales/vi.json
  93. 1
      app/javascript/mastodon/locales/zgh.json
  94. 7
      app/javascript/mastodon/locales/zh-CN.json
  95. 1
      app/javascript/mastodon/locales/zh-HK.json
  96. 1
      app/javascript/mastodon/locales/zh-TW.json
  97. 14
      app/models/admin/account_action.rb
  98. 24
      app/models/notification.rb
  99. 4
      app/models/preview_card.rb
  100. 4
      app/models/status.rb
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,8 +1,8 @@
version: 2.1
orbs:
ruby: circleci/ruby@1.2.0
node: circleci/node@4.7.0
ruby: circleci/ruby@1.4.0
node: circleci/node@5.0.1
executors:
default:
@ -23,7 +23,7 @@ executors:
environment:
POSTGRES_USER: root
POSTGRES_HOST_AUTH_METHOD: trust
- image: circleci/redis:6-alpine
- image: cimg/redis:6.2
commands:
install-system-dependencies:

@ -1,32 +0,0 @@
# CODEOWNERS for mastodon/mastodon
# Translators
# To add translator, copy these lines, replace `fr` with appropriate language code and replace `@żelipapą` with user's GitHub nickname preceded by `@` sign or e-mail address.
# /app/javascript/mastodon/locales/fr.json @żelipapą
# /app/views/user_mailer/*.fr.html.erb @żelipapą
# /app/views/user_mailer/*.fr.text.erb @żelipapą
# /config/locales/*.fr.yml @żelipapą
# /config/locales/fr.yml @żelipapą
# Polish
/app/javascript/mastodon/locales/pl.json @m4sk1n
/app/views/user_mailer/*.pl.html.erb @m4sk1n
/app/views/user_mailer/*.pl.text.erb @m4sk1n
/config/locales/*.pl.yml @m4sk1n
/config/locales/pl.yml @m4sk1n
# French
/app/javascript/mastodon/locales/fr.json @aldarone
/app/javascript/mastodon/locales/whitelist_fr.json @aldarone
/app/views/user_mailer/*.fr.html.erb @aldarone
/app/views/user_mailer/*.fr.text.erb @aldarone
/config/locales/*.fr.yml @aldarone
/config/locales/fr.yml @aldarone
# Dutch
/app/javascript/mastodon/locales/nl.json @jeroenpraat
/app/javascript/mastodon/locales/whitelist_nl.json @jeroenpraat
/app/views/user_mailer/*.nl.html.erb @jeroenpraat
/app/views/user_mailer/*.nl.text.erb @jeroenpraat
/config/locales/*.nl.yml @jeroenpraat
/config/locales/nl.yml @jeroenpraat

@ -1,3 +1,3 @@
patreon: mastodon
open_collective: mastodon
github: [Gargron]
custom: https://sponsor.joinmastodon.org

@ -1,5 +1,6 @@
name: Feature Request
description: I have a suggestion
labels: suggestion
body:
- type: markdown
attributes:

@ -1,10 +0,0 @@
---
name: Support
about: Ask for help with your deployment
title: DO NOT CREATE THIS ISSUE
---
We primarily use GitHub as a bug and feature tracker. For usage questions, troubleshooting of deployments and other individual technical assistance, please use one of the resources below:
- https://discourse.joinmastodon.org
- #mastodon on irc.freenode.net

@ -1,5 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Mastodon Meta Discussion Board
url: https://discourse.joinmastodon.org/
- name: GitHub Discussions
url: https://github.com/mastodon/mastodon/discussions
about: Please ask and answer questions here.
- name: Bug Bounty Program
url: https://app.intigriti.com/programs/mastodon/mastodonio/detail
about: Please report security vulnerabilities here.

@ -31,7 +31,7 @@ jobs:
latest=true
tags: |
type=edge,branch=main
type=semver,pattern={{ raw }}
type=match,pattern=v(.*),group=0
type=ref,event=pr
- uses: docker/build-push-action@v2
with:

File diff suppressed because it is too large Load Diff

@ -3,6 +3,194 @@ Changelog
All notable changes to this project will be documented in this file.
## Unreleased
### Added
- **Add support for post editing** ([Gargron](https://github.com/mastodon/mastodon/pull/16697), [Gargron](https://github.com/mastodon/mastodon/pull/17727), [Gargron](https://github.com/mastodon/mastodon/pull/17728), [Gargron](https://github.com/mastodon/mastodon/pull/17320), [Gargron](https://github.com/mastodon/mastodon/pull/17404), [Gargron](https://github.com/mastodon/mastodon/pull/17390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17335), [Gargron](https://github.com/mastodon/mastodon/pull/17696), [Gargron](https://github.com/mastodon/mastodon/pull/17745), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17740), [Gargron](https://github.com/mastodon/mastodon/pull/17697), [Gargron](https://github.com/mastodon/mastodon/pull/17648), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17531), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17499), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17498), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17380), [Gargron](https://github.com/mastodon/mastodon/pull/17373), [Gargron](https://github.com/mastodon/mastodon/pull/17334), [Gargron](https://github.com/mastodon/mastodon/pull/17333), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17699), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17748))
- Previous versions remain available for perusal and comparison
- People who reblogged a post are notified when it's edited
- New REST APIs:
- `PUT /api/v1/statuses/:id`
- `GET /api/v1/statuses/:id/history`
- `GET /api/v1/statuses/:id/source`
- New streaming API event:
- `update`
- **Add appeals for moderator decisions** ([Gargron](https://github.com/mastodon/mastodon/pull/17364), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17725), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17566), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17652), [Gargron](https://github.com/mastodon/mastodon/pull/17616), [Gargron](https://github.com/mastodon/mastodon/pull/17615), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17554), [Gargron](https://github.com/mastodon/mastodon/pull/17523))
- All default moderator decisions now notify the affected user by e-mail
- They now link to an appeal page instead of suggesting replying to the e-mail
- They can now be found in account settings and not just e-mail
- Users can submit one appeal within 20 days of the decision
- Moderators can approve or reject the appeal
- **Add notifications for posts deleted by moderators** ([Gargron](https://github.com/mastodon/mastodon/pull/17204), [Gargron](https://github.com/mastodon/mastodon/pull/17668), [Gargron](https://github.com/mastodon/mastodon/pull/17746), [Gargron](https://github.com/mastodon/mastodon/pull/17679), [Gargron](https://github.com/mastodon/mastodon/pull/17487))
- New, redesigned report view in admin UI
- Common report actions now only take one click to complete
- Deleting posts or marking as sensitive from report now notifies user
- Reports can be categorized by reason and specific rules violated
- The reasons are automatically cited in the notifications, except for spam
- Marking posts as sensitive now federates using post editing
- **Add explore page with trending posts and links** ([Gargron](https://github.com/mastodon/mastodon/pull/17123), [Gargron](https://github.com/mastodon/mastodon/pull/17431), [Gargron](https://github.com/mastodon/mastodon/pull/16917), [Gargron](https://github.com/mastodon/mastodon/pull/17677), [Gargron](https://github.com/mastodon/mastodon/pull/16938), [Gargron](https://github.com/mastodon/mastodon/pull/17044), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16978), [Gargron](https://github.com/mastodon/mastodon/pull/16979), [tribela](https://github.com/mastodon/mastodon/pull/17066), [Gargron](https://github.com/mastodon/mastodon/pull/17072), [Gargron](https://github.com/mastodon/mastodon/pull/17403), [noiob](https://github.com/mastodon/mastodon/pull/17624), [mayaeh](https://github.com/mastodon/mastodon/pull/17755), [mayaeh](https://github.com/mastodon/mastodon/pull/17757), [Gargron](https://github.com/mastodon/mastodon/pull/17760), [mayaeh](https://github.com/mastodon/mastodon/pull/17762))
- Hashtag trends algorithm is extended to work for posts and links
- Links are only considered if they have an adequate preview card
- Preview card generation has been improved to support structured data
- Links can only trend if the publisher (domain) has been approved
- Posts can only trend if the author has been approved
- Individual approval and rejection for posts and links is also available
- Moderators are notified about pending trends at most once every 2 hours
- Posts and link trends are language-specific
- Search page is redesigned into explore page in web UI
- Discovery tab is coming soon in official iOS and Android apps
- New REST APIs:
- `GET /api/v1/trends/links`
- `GET /api/v1/trends/statuses`
- `GET /api/v1/trends/tags` (alias of `GET /api/v1/trends`)
- `GET /api/v1/admin/trends/links`
- `GET /api/v1/admin/trends/statuses`
- `GET /api/v1/admin/trends/tags`
- **Add graphs and retention metrics to admin dashboard** ([Gargron](https://github.com/mastodon/mastodon/pull/16829), [Gargron](https://github.com/mastodon/mastodon/pull/17617), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17570), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16910), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16909), [mashirozx](https://github.com/mastodon/mastodon/pull/16884), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16854))
- Dashboard shows more numbers with development over time
- Other data such as most used interface languages and sign-up sources
- User retention graph shows how many new users stick around
- New REST APIs:
- `POST /api/v1/admin/measures`
- `POST /api/v1/admin/dimensions`
- `POST /api/v1/admin/retention`
- Add `GET /api/v1/accounts/familiar_followers` to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17700))
- Add `POST /api/v1/accounts/:id/remove_from_followers` to REST API ([noellabo](https://github.com/mastodon/mastodon/pull/16864))
- Add `category` and `rule_ids` params to `POST /api/v1/reports` IN REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17492), [Gargron](https://github.com/mastodon/mastodon/pull/17682), [Gargron](https://github.com/mastodon/mastodon/pull/17713))
- `category` can be one of: `spam`, `violation`, `other` (default)
- `rule_ids` must reference `rules` returned in `GET /api/v1/instance`
- Add global `lang` param to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17464), [Gargron](https://github.com/mastodon/mastodon/pull/17592))
- Add `types` param to `GET /api/v1/notifications` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17767))
- **Add notifications for moderators about new sign-ups** ([Gargron](https://github.com/mastodon/mastodon/pull/16953), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17629))
- When a new user confirms e-mail, moderators receive a notification
- New streaming API event:
- `admin.sign_up`
- Add authentication history ([Gargron](https://github.com/mastodon/mastodon/pull/16408), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16428), [baby-gnu](https://github.com/mastodon/mastodon/pull/16654))
- Add ability to automatically delete old posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16529), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17691), [tribela](https://github.com/mastodon/mastodon/pull/16653))
- Add ability to pin private posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16954), [tribela](https://github.com/mastodon/mastodon/pull/17326), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17304), [MitarashiDango](https://github.com/mastodon/mastodon/pull/17647))
- Add ability to filter search results by author using `from:` syntax ([tribela](https://github.com/mastodon/mastodon/pull/16526))
- Add ability to delete canonical email blocks in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16644))
- Add ability to purge undeliverable domains in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16686), [tribela](https://github.com/mastodon/mastodon/pull/17210), [tribela](https://github.com/mastodon/mastodon/pull/17741), [tribela](https://github.com/mastodon/mastodon/pull/17209))
- Add ability to disable e-mail token authentication for specific users in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/16427))
- **Add ability to suspend accounts in batches in admin UI** ([Gargron](https://github.com/mastodon/mastodon/pull/17009), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17301), [Gargron](https://github.com/mastodon/mastodon/pull/17444))
- New, redesigned accounts list in admin UI
- Batch suspensions are meant to help clean up spam and bot accounts
- They do not generate notifications
- Add ability to filter reports by origin of target account in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/16487))
- Add support for login through OpenID Connect ([chandrn7](https://github.com/mastodon/mastodon/pull/16221))
- Add lazy loading for emoji picker in web UI ([mashirozx](https://github.com/mastodon/mastodon/pull/16907), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17011))
- Add single option votes tooltip in polls in web UI ([Brawaru](https://github.com/mastodon/mastodon/pull/16849))
- Add confirmation modal when closing media edit modal with unsaved changes in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16518))
- Add support for fetching Create and Announce activities by URI in ActivityPub ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16383))
- Add `S3_FORCE_SINGLE_REQUEST` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16866))
- Add `OMNIAUTH_ONLY` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17288), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17345))
- Add `ES_USER` and `ES_PASS` environment variables for Elasticsearch authentication ([tribela](https://github.com/mastodon/mastodon/pull/16890))
- Add `CAS_SECURITY_ASSUME_EMAIL_IS_VERIFIED` environment variable ([baby-gnu](https://github.com/mastodon/mastodon/pull/16655))
- Add ability to pass specific domains to `tootctl accounts cull` ([tribela](https://github.com/mastodon/mastodon/pull/16511))
- Add `--by-uri` option to `tootctl domains purge` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16434))
- Add `--batch-size` option to `tootctl search deploy` ([aquarla](https://github.com/mastodon/mastodon/pull/17049))
- Add `--remove-orphans` option to `tootctl statuses remove` ([noellabo](https://github.com/mastodon/mastodon/pull/17067))
### Changed
- Change design of federation pages in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17704), [noellabo](https://github.com/mastodon/mastodon/pull/17735), [Gargron](https://github.com/mastodon/mastodon/pull/17765))
- Change design of account cards in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17689))
- Change `follow` scope to be covered by `read` and `write` scopes in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17678))
- Change design of authorized applications page ([Gargron](https://github.com/mastodon/mastodon/pull/17656), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17686))
- Change e-mail domain blocks to block IPs dynamically ([Gargron](https://github.com/mastodon/mastodon/pull/17635), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17650), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17649))
- Change report modal to include category selection in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17565), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17734), [Gargron](https://github.com/mastodon/mastodon/pull/17654), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17632))
- Change reblogs to not count towards hashtag trends anymore ([Gargron](https://github.com/mastodon/mastodon/pull/17501))
- Change languages to be listed under standard instead of native name in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17485))
- Change routing paths to use usernames in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/16171), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16772), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16773), [mashirozx](https://github.com/mastodon/mastodon/pull/16793), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17060))
- Change list title input design in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17092))
- Change "Opt-in to profile directory" preference to be general discoverability preference ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16637))
- Change API rate limits to use /64 masking on IPv6 addresses ([tribela](https://github.com/mastodon/mastodon/pull/17588), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17600), [zunda](https://github.com/mastodon/mastodon/pull/17590))
- Change allowed formats for locally uploaded custom emojis to include GIF ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17706), [Gargron](https://github.com/mastodon/mastodon/pull/17759))
- Change error message when chosen password is too long ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17082))
- Change minimum required Elasticsearch version from 6 to 7 ([noellabo](https://github.com/mastodon/mastodon/pull/16915))
### Removed
- Remove profile directory link from main navigation panel in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17688))
- **Remove language detection through cld3** ([Gargron](https://github.com/mastodon/mastodon/pull/17478), [ykzts](https://github.com/mastodon/mastodon/pull/17539), [Gargron](https://github.com/mastodon/mastodon/pull/17496), [Gargron](https://github.com/mastodon/mastodon/pull/17722))
- cld3 is very inaccurate on short-form content even with unique alphabets
- Post language can be overriden individually using `language` param
- Otherwise, it defaults to the user's interface language
- Remove support for `OAUTH_REDIRECT_AT_SIGN_IN` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17287))
- Use `OMNIAUTH_ONLY` instead
- Remove Keybase integration ([Gargron](https://github.com/mastodon/mastodon/pull/17045))
- Remove old columns and indexes ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17245), [Gargron](https://github.com/mastodon/mastodon/pull/16409), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17191))
- Remove shortcodes from newly-created media attachments ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16730), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16763))
### Deprecated
- `GET /api/v1/trends``GET /api/v1/trends/tags`
- OAuth `follow` scope → `read` and/or `write`
- `text` attribute on `DELETE /api/v1/statuses/:id``GET /api/v1/statuses/:id/source`
### Fixed
- Fix web manifest not permitting PWA usage from alternate domains ([HolgerHuo](https://github.com/mastodon/mastodon/pull/16714))
- Fix not being able to edit media attachments for scheduled posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17690))
- Fix subscribed relay activities being recorded as boosts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17571))
- Fix streaming API server error messages when JSON parsing fails not specifying the source ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17559))
- Fix browsers autofilling new password field with old password ([mashirozx](https://github.com/mastodon/mastodon/pull/17702))
- Fix text being invisible before fonts load in web UI ([tribela](https://github.com/mastodon/mastodon/pull/16330))
- Fix public profile pages of unconfirmed users being accessible ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17385), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17457))
- Fix nil error when trying to fetch key for signature verification ([Gargron](https://github.com/mastodon/mastodon/pull/17747))
- Fix null values being included in some indexes ([Gargron](https://github.com/mastodon/mastodon/pull/17711))
- Fix `POST /api/v1/emails/confirmations` not being available after sign-up ([Gargron](https://github.com/mastodon/mastodon/pull/17743))
- Fix rare race condition when reblogged post is deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17693), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17730))
- Fix being able to add more than 4 hashtags to hashtag column in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17729))
- Fix data integrity of featured tags ([Gargron](https://github.com/mastodon/mastodon/pull/17712))
- Fix performance of account timelines ([Gargron](https://github.com/mastodon/mastodon/pull/17709))
- Fix returning empty `<p>` tag for blank account `note` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17687))
- Fix leak of existence of otherwise inaccessible posts in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17684))
- Fix not showing loading indicator when searching in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17655))
- Fix media modal footer's “external link” not being a link ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17561))
- Fix reply button on media modal not giving focus to compose form ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17626))
- Fix some media attachments being converted with too high framerates ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17619))
- Fix sign in token and warning emails failing to send when contact e-mail address is malformed ([helloworldstack](https://github.com/mastodon/mastodon/pull/17589))
- Fix opening the emoji picker scrolling the single-column view to the top ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17579))
- Fix edge case where settings/admin page sidebar would be incorrectly hidden ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17580))
- Fix performance of server-side filtering ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17575))
- Fix privacy policy link not being visible on small screens ([Gargron](https://github.com/mastodon/mastodon/pull/17533))
- Fix duplicate accounts when searching by IP range in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17524), [tribela](https://github.com/mastodon/mastodon/pull/17150))
- Fix error when performing a batch action on posts in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17532))
- Fix deletes not being signed in authorized fetch mode ([Gargron](https://github.com/mastodon/mastodon/pull/17484))
- Fix Undo Announce sometimes inlining the originally Announced status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17516))
- Fix localization of cold-start follow recommendations ([Gargron](https://github.com/mastodon/mastodon/pull/17479), [Gargron](https://github.com/mastodon/mastodon/pull/17486))
- Fix replies collection incorrectly looping ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17462))
- Fix errors when multiple Delete are received for a given actor ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17460))
- Fixed prototype pollution bug and only allow trusted origin ([r0hanSH](https://github.com/mastodon/mastodon/pull/17420))
- Fix text being incorrectly pre-selected in composer textarea on /share ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17339))
- Fix SMTP_ENABLE_STARTTLS_AUTO/SMTP_TLS/SMTP_SSL environment variables don't work ([kgtkr](https://github.com/mastodon/mastodon/pull/17216))
- Fix media upload specific rate limits only being applied to v1 endpoint in REST API ([tribela](https://github.com/mastodon/mastodon/pull/17272))
- Fix media descriptions not being used for client-side filtering ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17206))
- Fix cold-start follow recommendation favouring older accounts due to wrong sorting ([noellabo](https://github.com/mastodon/mastodon/pull/17126))
- Fix not redirect to the right page after authenticating with WebAuthn ([heguro](https://github.com/mastodon/mastodon/pull/17098))
- Fix searching for additional hashtags in hashtag column ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17054))
- Fix color of hashtag column settings inputs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17058))
- Fix performance of `tootctl statuses remove` ([noellabo](https://github.com/mastodon/mastodon/pull/17052))
- Fix `tootctl accounts cull` not excluding domains on timeouts and certificate issues ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16433))
- Fix 404 error when filtering admin action logs by non-existent target account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16643))
- Fix error when accessing streaming API without any OAuth scopes ([Brawaru](https://github.com/mastodon/mastodon/pull/16823))
- Fix follow request count not updating when new follow requests arrive over streaming API in web UI ([matildepark](https://github.com/mastodon/mastodon/pull/16652))
- Fix error when unsuspending a local account ([HolgerHuo](https://github.com/mastodon/mastodon/pull/16605))
- Fix crash when a notification contains a not yet processed media attachment in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16573))
- Fix wrong color of download button in audio player in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16572))
- Fix notes for others accounts not being deleted when an account is deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16579))
- Fix error when logging occurrence of unsupported video file ([noellabo](https://github.com/mastodon/mastodon/pull/16581))
- Fix wrong elements in trends widget being hidden on smaller screens in web UI ([tribela](https://github.com/mastodon/mastodon/pull/16570))
- Fix link to about page being displayed in limited federation mode ([weex](https://github.com/mastodon/mastodon/pull/16432))
- Fix styling of boost button in media modal not reflecting ability to boost ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16387))
- Fix OCR failure when erroneous lang data is in cache ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16386))
- Fix downloading media from blocked domains in `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/16914))
- Fix login form being displayed on landing page when already logged in ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17348))
- Fix polling for media processing status too frequently in web UI ([tribela](https://github.com/mastodon/mastodon/pull/17271))
- Fix hashtag autocomplete overriding user-typed case ([weex](https://github.com/mastodon/mastodon/pull/16460))
- Fix WebAuthn authentication setup to not prompt for PIN ([truongnmt](https://github.com/mastodon/mastodon/pull/16545))
## [3.4.6] - 2022-02-03
### Fixed
@ -572,7 +760,7 @@ All notable changes to this project will be documented in this file.
- `EMAIL_DOMAIN_WHITELIST``EMAIL_DOMAIN_ALLOWLIST`
- CLI option changed:
- `tootctl domains purge --whitelist-mode``tootctl domains purge --limited-federation-mode`
- Remove some unnecessary database indices ([lfuelling](https://github.com/mastodon/mastodon/pull/13695), [noellabo](https://github.com/mastodon/mastodon/pull/14259))
- Remove some unnecessary database indexes ([lfuelling](https://github.com/mastodon/mastodon/pull/13695), [noellabo](https://github.com/mastodon/mastodon/pull/14259))
- Remove unnecessary Node.js version upper bound ([ykzts](https://github.com/mastodon/mastodon/pull/14139))
### Fixed
@ -591,7 +779,7 @@ All notable changes to this project will be documented in this file.
- Fix new posts pushing down origin of opened dropdown in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14271), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/14348))
- Fix timeline markers not being saved sometimes ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13887), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/13889), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/14155))
- Fix CSV uploads being rejected ([noellabo](https://github.com/mastodon/mastodon/pull/13835))
- Fix incompatibility with ElasticSearch 7.x ([noellabo](https://github.com/mastodon/mastodon/pull/13828))
- Fix incompatibility with Elasticsearch 7.x ([noellabo](https://github.com/mastodon/mastodon/pull/13828))
- Fix being able to search posts where you're in the target audience but not actively mentioned ([noellabo](https://github.com/mastodon/mastodon/pull/13829))
- Fix non-local posts appearing on local-only hashtag timelines in web UI ([noellabo](https://github.com/mastodon/mastodon/pull/13827))
- Fix `tootctl media remove-orphans` choking on unknown files in storage ([Gargron](https://github.com/mastodon/mastodon/pull/13765))
@ -1195,7 +1383,7 @@ All notable changes to this project will be documented in this file.
- Fix URLs appearing twice in errors of ActivityPub::DeliveryWorker ([Gargron](https://github.com/mastodon/mastodon/pull/11231))
- Fix support for HTTP proxies ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11245))
- Fix HTTP requests to IPv6 hosts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11240))
- Fix error in ElasticSearch index import ([mayaeh](https://github.com/mastodon/mastodon/pull/11192))
- Fix error in Elasticsearch index import ([mayaeh](https://github.com/mastodon/mastodon/pull/11192))
- Fix duplicate account error when seeding development database ([ysksn](https://github.com/mastodon/mastodon/pull/11366))
- Fix performance of session clean-up scheduler ([abcang](https://github.com/mastodon/mastodon/pull/11871))
- Fix older migrations not running ([zunda](https://github.com/mastodon/mastodon/pull/11377))
@ -1205,8 +1393,8 @@ All notable changes to this project will be documented in this file.
- Fix muted text color not applying to all text ([trwnh](https://github.com/mastodon/mastodon/pull/11996))
- Fix follower/following lists resetting on back-navigation in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/11986))
- Fix n+1 query when approving multiple follow requests ([abcang](https://github.com/mastodon/mastodon/pull/12004))
- Fix records not being indexed into ElasticSearch sometimes ([Gargron](https://github.com/mastodon/mastodon/pull/12024))
- Fix needlessly indexing unsearchable statuses into ElasticSearch ([Gargron](https://github.com/mastodon/mastodon/pull/12041))
- Fix records not being indexed into Elasticsearch sometimes ([Gargron](https://github.com/mastodon/mastodon/pull/12024))
- Fix needlessly indexing unsearchable statuses into Elasticsearch ([Gargron](https://github.com/mastodon/mastodon/pull/12041))
- Fix new user bootstrapping crashing when to-be-followed accounts are invalid ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/12037))
- Fix featured hashtag URL being interpreted as media or replies tab ([Gargron](https://github.com/mastodon/mastodon/pull/12048))
- Fix account counters being overwritten by parallel writes ([Gargron](https://github.com/mastodon/mastodon/pull/12045))

@ -7,7 +7,7 @@ gem 'pkg-config', '~> 1.4'
gem 'rexml', '~> 3.2'
gem 'puma', '~> 5.6'
gem 'rails', '~> 6.1.4'
gem 'rails', '~> 6.1.5'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.2'
gem 'rack', '~> 2.2.3'

@ -1,40 +1,40 @@
GEM
remote: https://rubygems.org/
specs:
actioncable (6.1.4.6)
actionpack (= 6.1.4.6)
activesupport (= 6.1.4.6)
actioncable (6.1.5)
actionpack (= 6.1.5)
activesupport (= 6.1.5)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (6.1.4.6)
actionpack (= 6.1.4.6)
activejob (= 6.1.4.6)
activerecord (= 6.1.4.6)
activestorage (= 6.1.4.6)
activesupport (= 6.1.4.6)
actionmailbox (6.1.5)
actionpack (= 6.1.5)
activejob (= 6.1.5)
activerecord (= 6.1.5)
activestorage (= 6.1.5)
activesupport (= 6.1.5)
mail (>= 2.7.1)
actionmailer (6.1.4.6)
actionpack (= 6.1.4.6)
actionview (= 6.1.4.6)
activejob (= 6.1.4.6)
activesupport (= 6.1.4.6)
actionmailer (6.1.5)
actionpack (= 6.1.5)
actionview (= 6.1.5)
activejob (= 6.1.5)
activesupport (= 6.1.5)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (6.1.4.6)
actionview (= 6.1.4.6)
activesupport (= 6.1.4.6)
actionpack (6.1.5)
actionview (= 6.1.5)
activesupport (= 6.1.5)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (6.1.4.6)
actionpack (= 6.1.4.6)
activerecord (= 6.1.4.6)
activestorage (= 6.1.4.6)
activesupport (= 6.1.4.6)
actiontext (6.1.5)
actionpack (= 6.1.5)
activerecord (= 6.1.5)
activestorage (= 6.1.5)
activesupport (= 6.1.5)
nokogiri (>= 1.8.5)
actionview (6.1.4.6)
activesupport (= 6.1.4.6)
actionview (6.1.5)
activesupport (= 6.1.5)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
@ -45,22 +45,22 @@ GEM
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
active_record_query_trace (1.8)
activejob (6.1.4.6)
activesupport (= 6.1.4.6)
activejob (6.1.5)
activesupport (= 6.1.5)
globalid (>= 0.3.6)
activemodel (6.1.4.6)
activesupport (= 6.1.4.6)
activerecord (6.1.4.6)
activemodel (= 6.1.4.6)
activesupport (= 6.1.4.6)
activestorage (6.1.4.6)
actionpack (= 6.1.4.6)
activejob (= 6.1.4.6)
activerecord (= 6.1.4.6)
activesupport (= 6.1.4.6)
marcel (~> 1.0.0)
activemodel (6.1.5)
activesupport (= 6.1.5)
activerecord (6.1.5)
activemodel (= 6.1.5)
activesupport (= 6.1.5)
activestorage (6.1.5)
actionpack (= 6.1.5)
activejob (= 6.1.5)
activerecord (= 6.1.5)
activesupport (= 6.1.5)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (6.1.4.6)
activesupport (6.1.5)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@ -367,7 +367,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.14.0)
loofah (2.15.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
@ -432,14 +432,14 @@ GEM
openssl (2.2.0)
openssl-signature_algorithm (0.4.0)
orm_adapter (0.5.0)
ox (2.14.9)
ox (2.14.10)
parallel (1.21.0)
parser (3.1.0.0)
ast (~> 2.4.1)
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.3.3)
pg (1.3.4)
pghero (2.8.2)
activerecord (>= 5)
pkg-config (1.4.7)
@ -482,20 +482,20 @@ GEM
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (6.1.4.6)
actioncable (= 6.1.4.6)
actionmailbox (= 6.1.4.6)
actionmailer (= 6.1.4.6)
actionpack (= 6.1.4.6)
actiontext (= 6.1.4.6)
actionview (= 6.1.4.6)
activejob (= 6.1.4.6)
activemodel (= 6.1.4.6)
activerecord (= 6.1.4.6)
activestorage (= 6.1.4.6)
activesupport (= 6.1.4.6)
rails (6.1.5)
actioncable (= 6.1.5)
actionmailbox (= 6.1.5)
actionmailer (= 6.1.5)
actionpack (= 6.1.5)
actiontext (= 6.1.5)
actionview (= 6.1.5)
activejob (= 6.1.5)
activemodel (= 6.1.5)
activerecord (= 6.1.5)
activestorage (= 6.1.5)
activesupport (= 6.1.5)
bundler (>= 1.15.0)
railties (= 6.1.4.6)
railties (= 6.1.5)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
@ -511,11 +511,11 @@ GEM
railties (>= 6.0.0, < 7)
rails-settings-cached (0.6.6)
rails (>= 4.2.0)
railties (6.1.4.6)
actionpack (= 6.1.4.6)
activesupport (= 6.1.4.6)
railties (6.1.5)
actionpack (= 6.1.5)
activesupport (= 6.1.5)
method_source
rake (>= 0.13)
rake (>= 12.2)
thor (~> 1.0)
rainbow (3.1.1)
rake (13.0.6)
@ -548,7 +548,7 @@ GEM
rspec-mocks (3.11.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-rails (5.1.0)
rspec-rails (5.1.1)
actionpack (>= 5.2)
activesupport (>= 5.2)
railties (>= 5.2)
@ -806,7 +806,7 @@ DEPENDENCIES
rack (~> 2.2.3)
rack-attack (~> 6.6)
rack-cors (~> 1.1)
rails (~> 6.1.4)
rails (~> 6.1.5)
rails-controller-testing (~> 1.0)
rails-i18n (~> 6.0)
rails-settings-cached (~> 0.6)

@ -1,13 +1,19 @@
# Security Policy
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you should submit the report through our [Bug Bounty Program][bug-bounty]. Alternatively, you can reach us at <hello@joinmastodon.org>.
You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
## Scope
A "vulnerability in Mastodon" is a vulnerability in the code distributed through our main source code repository on GitHub. Vulnerabilities that are specific to a given installation (e.g. misconfiguration) should be reported to the owner of that installation and not us.
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 3.4.x | :white_check_mark: |
| 3.3.x | :white_check_mark: |
| < 3.3 | :x: |
## Reporting a Vulnerability
| 3.4.x | Yes |
| 3.3.x | Yes |
| < 3.3 | No |
hello@joinmastodon.org
[bug-bounty]: https://app.intigriti.com/programs/mastodon/mastodonio/detail

@ -44,13 +44,18 @@ class Api::V1::NotificationsController < Api::BaseController
limit_param(DEFAULT_NOTIFICATIONS_LIMIT),
params_slice(:max_id, :since_id, :min_id)
)
Notification.preload_cache_collection_target_statuses(notifications) do |target_statuses|
cache_collection(target_statuses, Status)
end
end
def browserable_account_notifications
current_account.notifications.without_suspended.browserable(exclude_types, from_account)
current_account.notifications.without_suspended.browserable(
types: Array(browserable_params[:types]),
exclude_types: Array(browserable_params[:exclude_types]),
from_account_id: browserable_params[:account_id]
)
end
def target_statuses_from_notifications
@ -81,17 +86,11 @@ class Api::V1::NotificationsController < Api::BaseController
@notifications.first.id
end
def exclude_types
val = params.permit(exclude_types: [])[:exclude_types] || []
val = [val] unless val.is_a?(Enumerable)
val
end
def from_account
params[:account_id]
def browserable_params
params.permit(:account_id, types: [], exclude_types: [])
end
def pagination_params(core_params)
params.slice(:limit, :exclude_types).permit(:limit, exclude_types: []).merge(core_params)
params.slice(:limit, :account_id, :types, :exclude_types).permit(:limit, :account_id, types: [], exclude_types: []).merge(core_params)
end
end

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "اكتشف",
"navigation_bar.domain_blocks": "النطاقات المخفية",
"navigation_bar.edit_profile": "عدّل الملف التعريفي",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "المفضلة",
"navigation_bar.filters": "الكلمات المكتومة",
"navigation_bar.follow_requests": "طلبات المتابعة",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Dominios anubríos",
"navigation_bar.edit_profile": "Editar el perfil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Pallabres silenciaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
@ -361,7 +362,7 @@
"poll.total_votes": "{count, plural, one {# votu} other {# votos}}",
"poll.vote": "Vote",
"poll.voted": "You voted for this answer",
"poll.votes": "{votes, plural, one {# vote} other {# votes}}",
"poll.votes": "{votes, plural, one {# votu} other {# votos}}",
"poll_button.add_poll": "Amestar una encuesta",
"poll_button.remove_poll": "Quitar la encuesta",
"privacy.change": "Adjust status privacy",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Откриване",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Редактирай профил",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Любими",
"navigation_bar.filters": "Заглушени думи",
"navigation_bar.follow_requests": "Заявки за последване",

@ -294,6 +294,7 @@
"navigation_bar.discover": "ঘন",
"navigation_bar.domain_blocks": "লনগি",
"navigation_bar.edit_profile": "নির প সমদন করত",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "পছনর",
"navigation_bar.filters": "বনধ কর শবদ",
"navigation_bar.follow_requests": "অনসরণর অনধগি",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Dizoleiñ",
"navigation_bar.domain_blocks": "Domanioù kuzhet",
"navigation_bar.edit_profile": "Aozañ ar profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Ar re vuiañ-karet",
"navigation_bar.filters": "Gerioù kuzhet",
"navigation_bar.follow_requests": "Pedadoù heuliañ",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Dominis ocults",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explora",
"navigation_bar.favourites": "Preferits",
"navigation_bar.filters": "Paraules silenciades",
"navigation_bar.follow_requests": "Sol·licituds de seguiment",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Scopre",
"navigation_bar.domain_blocks": "Duminii piattati",
"navigation_bar.edit_profile": "Mudificà u prufile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favuriti",
"navigation_bar.filters": "Parolle silenzate",
"navigation_bar.follow_requests": "Dumande d'abbunamentu",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Objevujte",
"navigation_bar.domain_blocks": "Blokované domény",
"navigation_bar.edit_profile": "Upravit profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Oblíbené",
"navigation_bar.filters": "Skrytá slova",
"navigation_bar.follow_requests": "Žádosti o sledování",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Darganfod",
"navigation_bar.domain_blocks": "Parthau cuddiedig",
"navigation_bar.edit_profile": "Golygu proffil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Ffefrynnau",
"navigation_bar.filters": "Geiriau a dawelwyd",
"navigation_bar.follow_requests": "Ceisiadau dilyn",

@ -169,8 +169,8 @@
"empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager én, vil den dukke op hér.",
"empty_column.domain_blocks": "Ingen blokerede domæner endnu.",
"empty_column.explore_statuses": "Ingen nye tendensen pt. Tjek igen senere!",
"empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du favoriserer ét, vil det dukke op hér.",
"empty_column.favourites": "Ingen har endnu favoriseret dette indlæg. Når nogen gør dét, vil det dukke op hér.",
"empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du favoritmarkerer ét, vil det dukke op hér.",
"empty_column.favourites": "Ingen har endnu gjort dette indlæg til favorit. Når nogen gør dét, vil det dukke op hér.",
"empty_column.follow_recommendations": "Ser ud til, at der ikke kunne genereres forslag til dig. Du kan prøve med Søg for at lede efter personer, du måske kender, eller udforske hashtags.",
"empty_column.follow_requests": "Du har endnu ingen følgeanmodninger. Når du modtager én, vil den dukke op hér.",
"empty_column.hashtag": "Der er intet med dette hashtag endnu.",
@ -234,7 +234,7 @@
"keyboard_shortcuts.direct": "Åbn Direkte beskeder-kolonnen",
"keyboard_shortcuts.down": "Flyt nedad på listen",
"keyboard_shortcuts.enter": "Åbn indlæg",
"keyboard_shortcuts.favourite": "Favorisér indlæg",
"keyboard_shortcuts.favourite": "Favoritmarkér indlæg",
"keyboard_shortcuts.favourites": "Åbn favoritlisten",
"keyboard_shortcuts.federated": "Åbn fælles tidslinje",
"keyboard_shortcuts.heading": "Tastaturgenveje",
@ -294,6 +294,7 @@
"navigation_bar.discover": "Opdag",
"navigation_bar.domain_blocks": "Blokerede domæner",
"navigation_bar.edit_profile": "Redigér profil",
"navigation_bar.explore": "Udforsk",
"navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Tavsgjorte ord",
"navigation_bar.follow_requests": "Følgeanmodninger",
@ -309,7 +310,7 @@
"navigation_bar.public_timeline": "Fælles tidslinje",
"navigation_bar.security": "Sikkerhed",
"notification.admin.sign_up": "{name} tilmeldte sig",
"notification.favourite": "{name} favoriserede dit indlæg",
"notification.favourite": "{name} favoritmarkerede dit indlæg",
"notification.follow": "{name} begyndte at følge dig",
"notification.follow_request": "{name} har anmodet om at følge dig",
"notification.mention": "{name} nævnte dig",
@ -427,7 +428,7 @@
"report.unfollow_explanation": "Denne konto følges. For at ophøre med at se vedkommendes indlæg på hjemmetidslinjen, vælg Følg ikke længere.",
"search.placeholder": "Søg",
"search_popout.search_format": "Avanceret søgeformat",
"search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoriseret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.",
"search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoritmarkeret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "indlæg",
"search_popout.tips.text": "Simpel tekst returnerer matchende visnings- og brugernavne samt hashtags",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Entdecken",
"navigation_bar.domain_blocks": "Versteckte Domains",
"navigation_bar.edit_profile": "Profil bearbeiten",
"navigation_bar.explore": "Entdecken",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Stummgeschaltene Wörter",
"navigation_bar.follow_requests": "Folgeanfragen",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Ανακάλυψη",
"navigation_bar.domain_blocks": "Κρυμμένοι τομείς",
"navigation_bar.edit_profile": "Επεξεργασία προφίλ",
"navigation_bar.explore": "Εξερεύνηση",
"navigation_bar.favourites": "Αγαπημένα",
"navigation_bar.filters": "Αποσιωπημένες λέξεις",
"navigation_bar.follow_requests": "Αιτήματα ακολούθησης",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Esplori",
"navigation_bar.domain_blocks": "Blokitaj domajnoj",
"navigation_bar.edit_profile": "Redakti profilon",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Stelumoj",
"navigation_bar.filters": "Silentigitaj vortoj",
"navigation_bar.follow_requests": "Petoj de sekvado",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios bloqueados",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorá",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Solicitudes de seguimiento",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios ocultos",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Solicitudes para seguirte",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios ocultos",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Solicitudes para seguirte",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Avasta",
"navigation_bar.domain_blocks": "Peidetud domeenid",
"navigation_bar.edit_profile": "Muuda profiili",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Lemmikud",
"navigation_bar.filters": "Vaigistatud sõnad",
"navigation_bar.follow_requests": "Jälgimistaotlused",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Aurkitu",
"navigation_bar.domain_blocks": "Ezkutatutako domeinuak",
"navigation_bar.edit_profile": "Aldatu profila",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Gogokoak",
"navigation_bar.filters": "Mutututako hitzak",
"navigation_bar.follow_requests": "Jarraitzeko eskariak",

@ -294,6 +294,7 @@
"navigation_bar.discover": "گشت و گذار",
"navigation_bar.domain_blocks": "دامنههای مسدود شده",
"navigation_bar.edit_profile": "ویرایش نمایه",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "پسندیدهها",
"navigation_bar.filters": "واژههای خموش",
"navigation_bar.follow_requests": "درخواستهای پیگیری",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Löydä uutta",
"navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
"navigation_bar.edit_profile": "Muokkaa profiilia",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Suosikit",
"navigation_bar.filters": "Mykistetyt sanat",
"navigation_bar.follow_requests": "Seuraamispyynnöt",

@ -18,7 +18,7 @@
"account.followers": "Abonnés",
"account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.",
"account.followers_counter": "{count, plural, one {{counter} Abonné·e} other {{counter} Abonné·e·s}}",
"account.following": "Following",
"account.following": "Abonnements",
"account.following_counter": "{count, plural, other {{counter} Abonnements}}",
"account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.",
"account.follows_you": "Vous suit",
@ -294,6 +294,7 @@
"navigation_bar.discover": "Découvrir",
"navigation_bar.domain_blocks": "Domaines bloqués",
"navigation_bar.edit_profile": "Modifier le profil",
"navigation_bar.explore": "Explorer",
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Mots masqués",
"navigation_bar.follow_requests": "Demandes d’abonnement",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Fidir",
"navigation_bar.domain_blocks": "Àrainnean bacte",
"navigation_bar.edit_profile": "Deasaich a’ phròifil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Na h-annsachdan",
"navigation_bar.filters": "Faclan mùchte",
"navigation_bar.follow_requests": "Iarrtasan leantainn",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios agochados",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Peticións de seguimento",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "עריכת פרופיל",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "חיבובים",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "בקשות מעקב",

@ -294,6 +294,7 @@
"navigation_bar.discover": "ख",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "पइल सित कर",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "अनसरण करन अनध",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Istraživanje",
"navigation_bar.domain_blocks": "Blokirane domene",
"navigation_bar.edit_profile": "Uredi profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favoriti",
"navigation_bar.filters": "Utišane riječi",
"navigation_bar.follow_requests": "Zahtjevi za praćenje",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Felfedezés",
"navigation_bar.domain_blocks": "Rejtett domainek",
"navigation_bar.edit_profile": "Profil szerkesztése",
"navigation_bar.explore": "Felfedezés",
"navigation_bar.favourites": "Kedvencek",
"navigation_bar.filters": "Némított szavak",
"navigation_bar.follow_requests": "Követési kérelmek",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Բացայայտել",
"navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ",
"navigation_bar.edit_profile": "Խմբագրել անձնական էջը",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Հաւանածներ",
"navigation_bar.filters": "Լռեցուած բառեր",
"navigation_bar.follow_requests": "Հետեւելու հայցեր",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Temukan",
"navigation_bar.domain_blocks": "Domain tersembunyi",
"navigation_bar.edit_profile": "Ubah profil",
"navigation_bar.explore": "Jelajahi",
"navigation_bar.favourites": "Favorit",
"navigation_bar.filters": "Kata yang dibisukan",
"navigation_bar.follow_requests": "Permintaan mengikuti",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Modifikar profilo",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorati",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Demandi di sequado",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Uppgötva",
"navigation_bar.domain_blocks": "Útilokuð lén",
"navigation_bar.edit_profile": "Breyta notandasniði",
"navigation_bar.explore": "Kanna",
"navigation_bar.favourites": "Eftirlæti",
"navigation_bar.filters": "Þögguð orð",
"navigation_bar.follow_requests": "Beiðnir um að fylgjast með",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Scopri",
"navigation_bar.domain_blocks": "Domini nascosti",
"navigation_bar.edit_profile": "Modifica profilo",
"navigation_bar.explore": "Esplora",
"navigation_bar.favourites": "Apprezzati",
"navigation_bar.filters": "Parole silenziate",
"navigation_bar.follow_requests": "Richieste di seguirti",

@ -172,7 +172,7 @@
"empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
"empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。",
"empty_column.domain_blocks": "ブロックしているドメインはありません。",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.explore_statuses": "まだ何もありません。後で確認してください。",
"empty_column.favourited_statuses": "まだ何もお気に入り登録していません。お気に入り登録するとここに表示されます。",
"empty_column.favourites": "まだ誰もお気に入り登録していません。お気に入り登録されるとここに表示されます。",
"empty_column.follow_recommendations": "おすすめを生成できませんでした。検索を使って知り合いを探したり、トレンドハッシュタグを見てみましょう。",
@ -298,6 +298,7 @@
"navigation_bar.discover": "見つける",
"navigation_bar.domain_blocks": "ブロックしたドメイン",
"navigation_bar.edit_profile": "プロフィールを編集",
"navigation_bar.explore": "エクスプローラー",
"navigation_bar.favourites": "お気に入り",
"navigation_bar.filters": "フィルター設定",
"navigation_bar.follow_requests": "フォローリクエスト",
@ -398,8 +399,8 @@
"report.categories.other": "その他",
"report.categories.spam": "スパム",
"report.categories.violation": "サーバーのルールに違反",
"report.category.subtitle": "Choose the best match",
"report.category.title": "Tell us what's going on with this {type}",
"report.category.subtitle": "近いものを選択してください",
"report.category.title": "この{type}について教えてください",
"report.category.title_account": "プロフィール",
"report.category.title_status": "投稿",
"report.close": "完了",
@ -410,23 +411,23 @@
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.next": "次へ",
"report.placeholder": "追加コメント",
"report.reasons.dislike": "I don't like it",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.spam": "It's spam",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.dislike": "興味がありません",
"report.reasons.dislike_description": "見たくない内容の場合",
"report.reasons.other": "その他",
"report.reasons.other_description": "当てはまる選択肢がない場合",
"report.reasons.spam": "これはスパムです",
"report.reasons.spam_description": "悪意のあるリンクや虚偽の情報、執拗な返信など",
"report.reasons.violation": "サーバーのルールに違反しています",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.reasons.violation_description": "ルールに違反しているのを見つけた場合",
"report.rules.subtitle": "当てはまるものをすべて選んでください:",
"report.rules.title": "どのルールに違反していますか?",
"report.statuses.subtitle": "当てはまるものをすべて選んでください:",
"report.statuses.title": "Are there any posts that back up this report?",
"report.statuses.title": "この通報を裏付けるような投稿はありますか?",
"report.submit": "通報する",
"report.target": "{target}さんを通報する",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
"report.thanks.take_action": "次のような方法はいかがでしょうか?",
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Don't want to see this?",
"report.thanks.title": "見えないようにしたいですか?",
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "@{name}のフォローを解除",
"report.unfollow_explanation": "このアカウントをフォローしています。ホームフィードに彼らの投稿を表示しないようにするには、彼らのフォローを外してください。",

@ -294,6 +294,7 @@
"navigation_bar.discover": "აღმოაჩინე",
"navigation_bar.domain_blocks": "დამალული დომენები",
"navigation_bar.edit_profile": "შეცვალე პროფილი",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "ფავორიტები",
"navigation_bar.filters": "გაჩუმებული სიტყვები",
"navigation_bar.follow_requests": "დადევნების მოთხოვნები",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Ẓer",
"navigation_bar.domain_blocks": "Tiɣula yeffren",
"navigation_bar.edit_profile": "Ẓreg amaɣnu",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Ismenyifen",
"navigation_bar.filters": "Awalen i yettwasgugmen",
"navigation_bar.follow_requests": "Isuturen n teḍfeṛt",

@ -294,6 +294,7 @@
"navigation_bar.discover": "шарлау",
"navigation_bar.domain_blocks": "Жабық домендер",
"navigation_bar.edit_profile": "Профиль түзету",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Таңдаулылар",
"navigation_bar.filters": "Үнсіз сөздер",
"navigation_bar.follow_requests": "Жазылуға сұранғандар",

@ -131,7 +131,7 @@
"confirmations.mute.explanation": "Ev ê şandinên ji wan tê û şandinên ku behsa wan dike veşêre, lê hê jî maf dide ku ew şandinên te bibînin û te bişopînin.",
"confirmations.mute.message": "Bi rastî tu dixwazî {name} bêdeng bikî?",
"confirmations.redraft.confirm": "Jê bibe & ji nû ve serrast bike",
"confirmations.redraft.message": "Bi rastî tu dixwazî şandî ye jê bibî û nûve reşnivîsek çê bikî? Bijare û şandî wê wenda bibin û bersivên ji bo şandiyê resen wê sêwî bimînin.",
"confirmations.redraft.message": "Bi rastî tu dixwazî şandî ye jê bibî û nûve reşnivîsek çê bikî? Bijarte û şandî wê wenda bibin û bersivên ji bo şandiyê resen wê sêwî bimînin.",
"confirmations.reply.confirm": "Bersivê bide",
"confirmations.reply.message": "Bersiva niha li ser peyama ku tu niha berhev dikî dê binivsîne. Ma pê bawer î ku tu dixwazî bidomînî?",
"confirmations.unfollow.confirm": "Neşopîne",
@ -294,10 +294,11 @@
"navigation_bar.discover": "Vekolê",
"navigation_bar.domain_blocks": "Navparên astengkirî",
"navigation_bar.edit_profile": "Profîl serrast bike",
"navigation_bar.explore": "Vekole",
"navigation_bar.favourites": "Bijarte",
"navigation_bar.filters": "Peyvên bêdengkirî",
"navigation_bar.follow_requests": "Daxwazên şopandinê",
"navigation_bar.follows_and_followers": "Yên tê şopandin û şopîner",
"navigation_bar.follows_and_followers": "Şopandin û şopîner",
"navigation_bar.info": "Derbarê vî rajekarî",
"navigation_bar.keyboard_shortcuts": "Bişkoka kurterê",
"navigation_bar.lists": "Rêzok",
@ -381,7 +382,7 @@
"relative_time.full.hours": "{number, plural, one {# demjimêr} other {# demjimêr}} berê",
"relative_time.full.just_now": "hema niha",
"relative_time.full.minutes": "{number, plural, one {# xulek} other {# xulek}} berê",
"relative_time.full.seconds": "{number, plural, one {# çirke} other {# çirke}} xulek",
"relative_time.full.seconds": "{number, plural, one {# çirke} other {# çirke}} berê",
"relative_time.hours": "{number}d",
"relative_time.just_now": "niha",
"relative_time.minutes": "{number}x",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "발견하기",
"navigation_bar.domain_blocks": "차단한 도메인",
"navigation_bar.edit_profile": "프로필 편집",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "즐겨찾기",
"navigation_bar.filters": "뮤트한 단어",
"navigation_bar.follow_requests": "팔로우 요청",

@ -294,6 +294,7 @@
"navigation_bar.discover": "دۆزینەوە",
"navigation_bar.domain_blocks": "دۆمەینە بلۆک کراوەکان",
"navigation_bar.edit_profile": "دەستکاری پرۆفایل بکە",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "دڵخوازەکان",
"navigation_bar.filters": "وشە کپەکان",
"navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Diskudha",
"navigation_bar.domain_blocks": "Gorfarthow lettys",
"navigation_bar.edit_profile": "Golegi profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Re drudh",
"navigation_bar.filters": "Geryow tawhes",
"navigation_bar.follow_requests": "Govynnow holya",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Atklāt",
"navigation_bar.domain_blocks": "Bloķētie domēni",
"navigation_bar.edit_profile": "Rediģēt profilu",
"navigation_bar.explore": "Pārlūkot",
"navigation_bar.favourites": "Izlases",
"navigation_bar.filters": "Klusināti vārdi",
"navigation_bar.follow_requests": "Sekošanas pieprasījumi",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Уреди профил",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Омилени",
"navigation_bar.filters": "Замолќени зборови",
"navigation_bar.follow_requests": "Следи покани",

@ -294,6 +294,7 @@
"navigation_bar.discover": "കണക",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "പൽ തിക",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "പിയപടവ",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "പിടരള അഭയർതഥനകൾ",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Teroka",
"navigation_bar.domain_blocks": "Domain disekat",
"navigation_bar.edit_profile": "Sunting profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Kegemaran",
"navigation_bar.filters": "Perkataan yang dibisukan",
"navigation_bar.follow_requests": "Permintaan ikutan",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Ontdekken",
"navigation_bar.domain_blocks": "Geblokkeerde domeinen",
"navigation_bar.edit_profile": "Profiel bewerken",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorieten",
"navigation_bar.filters": "Filters",
"navigation_bar.follow_requests": "Volgverzoeken",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Oppdag",
"navigation_bar.domain_blocks": "Skjulte domene",
"navigation_bar.edit_profile": "Rediger profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorittar",
"navigation_bar.filters": "Målbundne ord",
"navigation_bar.follow_requests": "Fylgjeførespurnader",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Oppdag",
"navigation_bar.domain_blocks": "Skjulte domener",
"navigation_bar.edit_profile": "Rediger profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Stilnede ord",
"navigation_bar.follow_requests": "Følgeforespørsler",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Trobar",
"navigation_bar.domain_blocks": "Domenis resconduts",
"navigation_bar.edit_profile": "Modificar lo perfil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Mots ignorats",
"navigation_bar.follow_requests": "Demandas d’abonament",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -298,6 +298,7 @@
"navigation_bar.discover": "Odkrywaj",
"navigation_bar.domain_blocks": "Ukryte domeny",
"navigation_bar.edit_profile": "Edytuj profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Ulubione",
"navigation_bar.filters": "Wyciszone słowa",
"navigation_bar.follow_requests": "Prośby o śledzenie",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Domínios bloqueados",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palavras filtradas",
"navigation_bar.follow_requests": "Seguidores pendentes",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Domínios escondidos",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palavras silenciadas",
"navigation_bar.follow_requests": "Seguidores pendentes",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Descoperă",
"navigation_bar.domain_blocks": "Domenii blocate",
"navigation_bar.edit_profile": "Modifică profilul",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorite",
"navigation_bar.filters": "Cuvinte ignorate",
"navigation_bar.follow_requests": "Cereri de abonare",

@ -44,7 +44,7 @@
"account.unblock_short": "Разблокировать",
"account.unendorse": "Не рекомендовать в профиле",
"account.unfollow": "Отписаться",
"account.unmute": "Убрать {name} из игнорируемых",
"account.unmute": "Не игнорировать @{name}",
"account.unmute_notifications": "Показывать уведомления от @{name}",
"account.unmute_short": "Не игнорировать",
"account_note.placeholder": "Текст заметки",
@ -294,6 +294,7 @@
"navigation_bar.discover": "Изучайте",
"navigation_bar.domain_blocks": "Скрытые домены",
"navigation_bar.edit_profile": "Изменить профиль",
"navigation_bar.explore": "Обзор",
"navigation_bar.favourites": "Избранное",
"navigation_bar.filters": "Игнорируемые слова",
"navigation_bar.follow_requests": "Запросы на подписку",
@ -393,7 +394,7 @@
"report.categories.other": "Другое",
"report.categories.spam": "Спам",
"report.categories.violation": "Содержимое нарушает одно или несколько правил узла",
"report.category.subtitle": "Choose the best match",
"report.category.subtitle": "Выберите наиболее подходящее",
"report.category.title": "Расскажите нам, что происходит с {type}",
"report.category.title_account": "профиль",
"report.category.title_status": "пост",
@ -402,21 +403,21 @@
"report.forward": "Переслать в {target}",
"report.forward_hint": "Эта учётная запись расположена на другом узле. Отправить туда анонимную копию вашей жалобы?",
"report.mute": "Mute",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.mute_explanation": "Вы не будете видеть их посты. Они по-прежнему могут подписываться на вас и видеть ваши посты, но не будут знать, что они в списке игнорируемых.",
"report.next": "Далее",
"report.placeholder": "Комментарий",
"report.reasons.dislike": "Мне не нравится",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.dislike_description": "Не хотел(а) бы видеть такой контент",
"report.reasons.other": "Другое",
"report.reasons.other_description": "Проблема не подпадает под другие категории",
"report.reasons.spam": "Это спам",
"report.reasons.spam_description": "Вредоносные ссылки, поддельные действия или повторяющиеся ответы",
"report.reasons.violation": "It violates server rules",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.rules.title": "Which rules are being violated?",
"report.statuses.subtitle": "Select all that apply",
"report.statuses.title": "Are there any posts that back up this report?",
"report.reasons.violation": "Нарушаются правила сервера",
"report.reasons.violation_description": "Вы знаете, что подобное нарушает определенные правила",
"report.rules.subtitle": "Выберите все подходящие варианты",
"report.rules.title": "Какие правила нарушены?",
"report.statuses.subtitle": "Выберите все подходящие варианты",
"report.statuses.title": "Есть ли сообщения, подтверждающие основания этой жалобы?",
"report.submit": "Отправить",
"report.target": "Жалоба на {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
@ -437,7 +438,7 @@
"search_results.hashtags": "Хэштеги",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.statuses": "Посты",
"search_results.statuses_fts_disabled": "Поиск постов по их содержанию не поддерживается данным узлом Mastodon.",
"search_results.statuses_fts_disabled": "Поиск постов по их содержанию не поддерживается данным сервером Mastodon.",
"search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}",
"status.admin_account": "Открыть интерфейс модератора для @{name}",
"status.admin_status": "Открыть этот пост в интерфейсе модератора",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Iscoberi",
"navigation_bar.domain_blocks": "Domìnios blocados",
"navigation_bar.edit_profile": "Modìfica profilu",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Preferidos",
"navigation_bar.filters": "Faeddos a sa muda",
"navigation_bar.follow_requests": "Rechestas de sighidura",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "පකඩ සකරණය",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "පයතමයන",
"navigation_bar.filters": "නහඬ කළ වචන",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Objavuj",
"navigation_bar.domain_blocks": "Skryté domény",
"navigation_bar.edit_profile": "Uprav profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Obľúbené",
"navigation_bar.filters": "Filtrované slová",
"navigation_bar.follow_requests": "Žiadosti o sledovanie",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Odkrijte",
"navigation_bar.domain_blocks": "Skrite domene",
"navigation_bar.edit_profile": "Uredi profil",
"navigation_bar.explore": "Razišči",
"navigation_bar.favourites": "Priljubljeni",
"navigation_bar.filters": "Utišane besede",
"navigation_bar.follow_requests": "Prošnje za sledenje",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Zbuloni",
"navigation_bar.domain_blocks": "Përkatësi të bllokuara",
"navigation_bar.edit_profile": "Përpunoni profilin",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Të parapëlqyer",
"navigation_bar.filters": "Fjalë të heshtuara",
"navigation_bar.follow_requests": "Kërkesa për ndjekje",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Izmeni profil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Omiljeni",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Zahtevi za praćenje",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Откриј",
"navigation_bar.domain_blocks": "Сакривени домени",
"navigation_bar.edit_profile": "Измени налог",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Омиљене",
"navigation_bar.filters": "Пригушене речи",
"navigation_bar.follow_requests": "Захтеви за праћење",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Upptäck",
"navigation_bar.domain_blocks": "Dolda domäner",
"navigation_bar.edit_profile": "Redigera profil",
"navigation_bar.explore": "Utforska",
"navigation_bar.favourites": "Favoriter",
"navigation_bar.filters": "Tystade ord",
"navigation_bar.follow_requests": "Följförfrågningar",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "கணிி",
"navigation_bar.domain_blocks": "மறத களஙகள",
"navigation_bar.edit_profile": "சயவிவரதிதவ",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "விபதகநத",
"navigation_bar.filters": "மடககபபடட வகள",
"navigation_bar.follow_requests": "கிகளிபறறவ",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "కన",
"navigation_bar.domain_blocks": "దిన డ",
"navigation_bar.edit_profile": "పి సవరిి",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "ఇషటపడినవి",
"navigation_bar.filters": "మయబడిన పద",
"navigation_bar.follow_requests": "అనసరిచడిి అభయరధనల",

@ -18,7 +18,7 @@
"account.followers": "ผดตาม",
"account.followers.empty": "ยงไมใครตดตามผใช",
"account.followers_counter": "{count, plural, other {{counter} ผดตาม}}",
"account.following": "Following",
"account.following": "กำลงตดตาม",
"account.following_counter": "{count, plural, other {{counter} กำลงตดตาม}}",
"account.follows.empty": "ผใชงไมไดดตามใคร",
"account.follows_you": "ตดตามคณ",
@ -41,15 +41,15 @@
"account.statuses_counter": "{count, plural, other {{counter} โพสต}}",
"account.unblock": "เลกปดกน @{name}",
"account.unblock_domain": "เลกปดกนโดเมน {domain}",
"account.unblock_short": "Unblock",
"account.unblock_short": "เลกปดก",
"account.unendorse": "ไมแนะนำในโปรไฟล",
"account.unfollow": "เลกตดตาม",
"account.unmute": "เลกซอน @{name}",
"account.unmute_notifications": "เลกซอนการแจงเตอนจาก @{name}",
"account.unmute_short": "Unmute",
"account.unmute_short": "เลกซอน",
"account_note.placeholder": "คลกเพอเพมหมายเหต",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
"admin.dashboard.daily_retention": "ตราการรกษาผใชตามวนหลงจากลงทะเบยน",
"admin.dashboard.monthly_retention": "ตราการรกษาผใชตามเดอนหลงจากลงทะเบยน",
"admin.dashboard.retention.average": "คาเฉลย",
"admin.dashboard.retention.cohort": "เดอนทลงทะเบยน",
"admin.dashboard.retention.cohort_size": "ผใชใหม",
@ -133,7 +133,7 @@
"confirmations.redraft.confirm": "ลบแลวรางใหม",
"confirmations.redraft.message": "คณแนใจหรอไมาตองการลบโพสตแลวรางโพสตใหม? รายการโปรดและการดนจะหายไป และการตอบกลบโพสตงเดมจะไมความเกยวพน",
"confirmations.reply.confirm": "ตอบกลบ",
"confirmations.reply.message": "การตอบกลบในตอนนจะเขยนทบขอความทณกำลงเขยน คณแนใจหรอไมาตองการดำเนนการตอ?",
"confirmations.reply.message": "การตอบกลบในตอนนจะเขยนทบขอความทณกำลงเขยนในปจจณแนใจหรอไมาตองการดำเนนการตอ?",
"confirmations.unfollow.confirm": "เลกตดตาม",
"confirmations.unfollow.message": "คณแนใจหรอไมาตองการเลกตดตาม {name}?",
"conversation.delete": "ลบการสนทนา",
@ -168,7 +168,7 @@
"empty_column.community": "เสนเวลาในเซฟเวอรางเปลา เขยนบางอยางเปนสาธารณะเพอเรมตน!",
"empty_column.direct": "คณยงไมอความโดยตรงใด ๆ เมอคณสงหรอรบขอความ ขอความจะปรากฏท",
"empty_column.domain_blocks": "ยงไมโดเมนทดกนอย",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.explore_statuses": "ไมงใดทกำลงนยมในตอนน กลบมาตรวจสอบในภายหล!",
"empty_column.favourited_statuses": "คณยงไมโพสตนชอบใด ๆ เมอคณชนชอบโพสต โพสตจะปรากฏท",
"empty_column.favourites": "ยงไมใครชนชอบโพสต เมอใครสกคนชนชอบ เขาจะปรากฏท",
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
@ -294,6 +294,7 @@
"navigation_bar.discover": "คนพบ",
"navigation_bar.domain_blocks": "โดเมนทดกนอย",
"navigation_bar.edit_profile": "แกไขโปรไฟล",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "รายการโปรด",
"navigation_bar.filters": "คำทอนอย",
"navigation_bar.follow_requests": "คำขอตดตาม",
@ -389,42 +390,42 @@
"relative_time.today": "วนน",
"reply_indicator.cancel": "ยกเลก",
"report.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.block_explanation": "ณจะไมเหนโพสตของเขา เขาจะไมสามารถเหนโพสตของคณหรอตดตามคณ เขาจะสามารถบอกไดามการปดกนเขา",
"report.categories.other": "อน ๆ",
"report.categories.spam": "สแปม",
"report.categories.violation": "เนอหาละเมดหนงกฎของเซฟเวอรหรอมากกวา",
"report.category.subtitle": "Choose the best match",
"report.category.title": "Tell us what's going on with this {type}",
"report.category.subtitle": "เลอกทตรงกนท",
"report.category.title": "บอกเราวาเกดอะไรขนกบ {type} น",
"report.category.title_account": "โปรไฟล",
"report.category.title_status": "โพสต",
"report.close": "เสรจสน",
"report.comment.title": "Is there anything else you think we should know?",
"report.comment.title": "งอนใดทณคดวาเราควรทราบหรอไม?",
"report.forward": "สงตอไปยง {target}",
"report.forward_hint": "บญชมาจากเซฟเวอรน สงสำเนาของรายงานทไมระบวตนไปทนดวย?",
"report.mute": "ซอน",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.mute_explanation": "ณจะไมเหนโพสตของเขา เขายงสามารถตดตามคณและเหนโพสตของคณและจะไมทราบวามการซอนเขา",
"report.next": "ถดไป",
"report.placeholder": "ความคดเหนเพมเตม",
"report.reasons.dislike": "I don't like it",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.spam": "It's spam",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.violation": "It violates server rules",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.rules.title": "Which rules are being violated?",
"report.statuses.subtitle": "Select all that apply",
"report.statuses.title": "Are there any posts that back up this report?",
"report.reasons.dislike": "นไมชอบโพสต",
"report.reasons.dislike_description": "โพสตไมใชบางอยางทณตองการเห",
"report.reasons.other": "โพสตเปนอยางอ",
"report.reasons.other_description": "ญหาไมเขาหมวดหมน ๆ",
"report.reasons.spam": "โพสตเปนสแปม",
"report.reasons.spam_description": "งกเปนอนตราย, การมวนรวมปลอม หรอการตอบกลบซำ ๆ",
"report.reasons.violation": "โพสตละเมดกฎของเซฟเวอร",
"report.reasons.violation_description": "ณทราบวาโพสตแหกกฎเฉพาะ",
"report.rules.subtitle": "เลอกทงหมดทนำไปใช",
"report.rules.title": "กำลงละเมดกฎใด?",
"report.statuses.subtitle": "เลอกทงหมดทนำไปใช",
"report.statuses.title": "โพสตใด ๆ ทสนบสนนรายงานนหรอไม?",
"report.submit": "สง",
"report.target": "กำลงรายงาน {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Don't want to see this?",
"report.thanks.take_action": "อตวเลอกของคณสำหรบการควบคมสงทณเหนใน Mastodon:",
"report.thanks.take_action_actionable": "ขณะทเราตรวจทานสงนณสามารถดำเนนการก @{name}:",
"report.thanks.title": "ไมองการเหนสงน?",
"report.thanks.title_actionable": "ขอบคณสำหรบการรายงาน เราจะตรวจสอบสงน",
"report.unfollow": "เลกตดตาม @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report.unfollow_explanation": "ณกำลงตดตามบญช เพอไมใหเหนโพสตของเขาในฟดหนาแรกของคณอกตอไป เลกตดตามเขา",
"search.placeholder": "คนหา",
"search_popout.search_format": "รปแบบการคนหาขนสง",
"search_popout.tips.full_text": "ขอความแบบงายสงคนโพสตณไดเขยน ชนชอบ ดน หรอไดบการกลาวถง ตลอดจนชอผใช, ชอทแสดง และแฮชแทกทตรงกน",
@ -435,7 +436,7 @@
"search_results.accounts": "ผคน",
"search_results.all": "ทงหมด",
"search_results.hashtags": "แฮชแทก",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.nothing_found": "ไมพบสงใดสำหรบคำคนหาเหลาน",
"search_results.statuses": "โพสต",
"search_results.statuses_fts_disabled": "ไมการเปดใชงานการคนหาโพสตโดยเนอหาของโพสตในเซฟเวอร Mastodon น",
"search_results.total": "{count, number} {count, plural, other {ผลลพธ}}",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Keşfet",
"navigation_bar.domain_blocks": "Engellenen alan adları",
"navigation_bar.edit_profile": "Profili düzenle",
"navigation_bar.explore": "Keşfet",
"navigation_bar.favourites": "Favoriler",
"navigation_bar.filters": "Sessize alınmış kelimeler",
"navigation_bar.follow_requests": "Takip istekleri",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Профильны үзгәртү",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
@ -395,7 +396,7 @@
"report.categories.violation": "Content violates one or more server rules",
"report.category.subtitle": "Choose the best match",
"report.category.title": "Tell us what's going on with this {type}",
"report.category.title_account": "profile",
"report.category.title_account": "профиль",
"report.category.title_status": "post",
"report.close": "Done",
"report.comment.title": "Is there anything else you think we should know?",
@ -478,9 +479,9 @@
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Уртаклашу",
"status.show_less": "Show less",
"status.show_less": "Әзрәк күрсәтү",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",
"status.show_more": "Күбрәк күрсәтү",
"status.show_more_all": "Show more for all",
"status.show_thread": "Show thread",
"status.uncached_media_warning": "Not available",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Знайти",
"navigation_bar.domain_blocks": "Приховані домени",
"navigation_bar.edit_profile": "Редагувати профіль",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Вподобане",
"navigation_bar.filters": "Приховані слова",
"navigation_bar.follow_requests": "Запити на підписку",

@ -294,6 +294,7 @@
"navigation_bar.discover": "دریافت کریں",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "پروفائل میں ترمیم کریں",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "پسندیدہ",
"navigation_bar.filters": "خاموش کردہ الفاظ",
"navigation_bar.follow_requests": "پیروی کی درخواستیں",

@ -22,7 +22,7 @@
"account.following_counter": "{count, plural, one {{counter} Theo dõi} other {{counter} Theo dõi}}",
"account.follows.empty": "Người này chưa theo dõi ai.",
"account.follows_you": "Đang theo dõi bạn",
"account.hide_reblogs": "Ẩn chia sẻ từ @{name}",
"account.hide_reblogs": "Ẩn tút do @{name} đăng lại",
"account.joined": "Đã tham gia {date}",
"account.link_verified_on": "Liên kết này đã được xác thực vào {date}",
"account.locked_info": "Đây là tài khoản riêng tư. Họ sẽ tự mình xét duyệt các yêu cầu theo dõi.",
@ -37,7 +37,7 @@
"account.report": "Báo cáo @{name}",
"account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi",
"account.share": "Chia sẻ trang @{name}",
"account.show_reblogs": "Hiện chia sẻ từ @{name}",
"account.show_reblogs": "Hiện tút do @{name} đăng lại",
"account.statuses_counter": "{count, plural, one {{counter} Tút} other {{counter} Tút}}",
"account.unblock": "Bỏ chặn @{name}",
"account.unblock_domain": "Bỏ ẩn {domain}",
@ -60,7 +60,7 @@
"announcement.announcement": "Thông báo chung",
"attachments_list.unprocessed": "(chưa xử lí)",
"autosuggest_hashtag.per_week": "{count} mỗi tuần",
"boost_modal.combo": "Nhấn {combo} để chia sẻ nhanh hơn",
"boost_modal.combo": "Nhấn {combo} để bỏ qua bước này",
"bundle_column_error.body": "Đã có lỗi xảy ra trong khi tải nội dung này.",
"bundle_column_error.retry": "Thử lại",
"bundle_column_error.title": "Không có kết nối internet",
@ -131,7 +131,7 @@
"confirmations.mute.explanation": "Điều này sẽ khiến tút của họ và những tút có nhắc đến họ bị ẩn, tuy nhiên họ vẫn có thể xem tút của bạn và theo dõi bạn.",
"confirmations.mute.message": "Bạn thật sự muốn ẩn {name}?",
"confirmations.redraft.confirm": "Xóa & viết lại",
"confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và chia sẻ của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
"confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và đăng lại của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
"confirmations.reply.confirm": "Trả lời",
"confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?",
"confirmations.unfollow.confirm": "Ngưng theo dõi",
@ -218,7 +218,7 @@
"hashtag.column_settings.tag_mode.none": "Không chọn",
"hashtag.column_settings.tag_toggle": "Bao gồm thêm hashtag cho cột này",
"home.column_settings.basic": "Tùy chỉnh",
"home.column_settings.show_reblogs": "Hiện những lượt chia sẻ",
"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.hide_announcements": "Ẩn thông báo",
"home.show_announcements": "Hiện thông báo",
@ -227,7 +227,7 @@
"intervals.full.minutes": "{number, plural, other {# phút}}",
"keyboard_shortcuts.back": "trở lại",
"keyboard_shortcuts.blocked": "mở danh sách người đã chặn",
"keyboard_shortcuts.boost": "chia sẻ",
"keyboard_shortcuts.boost": "Đăng lại",
"keyboard_shortcuts.column": "mở các mục",
"keyboard_shortcuts.compose": "mở khung soạn tút",
"keyboard_shortcuts.description": "Mô tả",
@ -294,6 +294,7 @@
"navigation_bar.discover": "Khám phá",
"navigation_bar.domain_blocks": "Máy chủ đã ẩn",
"navigation_bar.edit_profile": "Trang cá nhân",
"navigation_bar.explore": "Khám phá",
"navigation_bar.favourites": "Thích",
"navigation_bar.filters": "Bộ lọc từ ngữ",
"navigation_bar.follow_requests": "Yêu cầu theo dõi",
@ -315,7 +316,7 @@
"notification.mention": "{name} nhắc đến bạn",
"notification.own_poll": "Cuộc bình chọn của bạn đã kết thúc",
"notification.poll": "Cuộc bình chọn đã kết thúc",
"notification.reblog": "{name} chia sẻ tút của bạn",
"notification.reblog": "{name} đăng lại tút của bạn",
"notification.status": "{name} vừa đăng",
"notification.update": "{name} đã viết lại một tút",
"notifications.clear": "Xóa hết thông báo",
@ -331,7 +332,7 @@
"notifications.column_settings.mention": "Lượt nhắc đến:",
"notifications.column_settings.poll": "Kết quả bình chọn:",
"notifications.column_settings.push": "Thông báo đẩy",
"notifications.column_settings.reblog": "Lượt chia sẻ mới:",
"notifications.column_settings.reblog": "Lượt đăng lại mới:",
"notifications.column_settings.show": "Thông báo trên thanh menu",
"notifications.column_settings.sound": "Kèm theo tiếng \"bíp\"",
"notifications.column_settings.status": "Tút mới:",
@ -339,7 +340,7 @@
"notifications.column_settings.unread_notifications.highlight": "Nổi bật thông báo chưa đọc",
"notifications.column_settings.update": "Lượt sửa:",
"notifications.filter.all": "Toàn bộ",
"notifications.filter.boosts": "Chia sẻ",
"notifications.filter.boosts": "Đăng lại",
"notifications.filter.favourites": "Thích",
"notifications.filter.follows": "Đang theo dõi",
"notifications.filter.mentions": "Lượt nhắc đến",
@ -427,7 +428,7 @@
"report.unfollow_explanation": "Bạn đang theo dõi người này. Để không thấy tút của họ trong bảng tin nữa, hãy ngưng theo dõi.",
"search.placeholder": "Tìm kiếm",
"search_popout.search_format": "Gợi ý",
"search_popout.tips.full_text": "Nội dung trả về bao gồm những tút mà bạn đã viết, thích, chia sẻ hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm địa chỉ người dùng, tên hiển thị và hashtag.",
"search_popout.tips.full_text": "Nội dung trả về bao gồm những tút mà bạn đã viết, thích, đăng lại hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm địa chỉ người dùng, tên hiển thị và hashtag.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "tút",
"search_popout.tips.text": "Nội dung trả về là tên người dùng, tên hiển thị và hashtag",
@ -443,8 +444,8 @@
"status.admin_status": "Mở tút này trong giao diện quản trị",
"status.block": "Chặn @{name}",
"status.bookmark": "Lưu",
"status.cancel_reblog_private": "Hủy chia sẻ",
"status.cannot_reblog": "Không thể chia sẻ tút này",
"status.cancel_reblog_private": "Hủy đăng lại",
"status.cannot_reblog": "Không thể đăng lại tút này",
"status.copy": "Sao chép URL",
"status.delete": "Xóa",
"status.detailed_status": "Xem chi tiết thêm",
@ -467,10 +468,10 @@
"status.pin": "Ghim lên trang cá nhân",
"status.pinned": "Tút đã ghim",
"status.read_more": "Đọc tiếp",
"status.reblog": "Chia sẻ",
"status.reblog_private": "Chia sẻ (Riêng tư)",
"status.reblogged_by": "{name} chia sẻ",
"status.reblogs.empty": "Tút này chưa có ai chia sẻ. Nếu có, nó sẽ hiển thị ở đây.",
"status.reblog": "Đăng lại",
"status.reblog_private": "Đăng lại (Riêng tư)",
"status.reblogged_by": "{name} đăng lại",
"status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.",
"status.redraft": "Xóa và viết lại",
"status.remove_bookmark": "Bỏ lưu",
"status.reply": "Trả lời",

@ -294,6 +294,7 @@
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "ⵜⵓⵜⵔⴰⵡⵉⵏ ⵏ ⵓⴹⴼⴰⵕ",

@ -18,7 +18,7 @@
"account.followers": "关注者",
"account.followers.empty": "目前无人关注此用户。",
"account.followers_counter": "被 {counter} 人关注",
"account.following": "Following",
"account.following": "正在关注",
"account.following_counter": "正在关注 {counter} 人",
"account.follows.empty": "此用户目前尚未关注任何人。",
"account.follows_you": "关注了你",
@ -41,12 +41,12 @@
"account.statuses_counter": "{counter} 条嘟文",
"account.unblock": "解除屏蔽 @{name}",
"account.unblock_domain": "不再屏蔽 {domain} 实例",
"account.unblock_short": "Unblock",
"account.unblock_short": "移出黑名单",
"account.unendorse": "不在个人资料中推荐此用户",
"account.unfollow": "取消关注",
"account.unmute": "不再隐藏 @{name}",
"account.unmute_notifications": "不再隐藏来自 @{name} 的通知",
"account.unmute_short": "Unmute",
"account.unmute_short": "恢复消息提醒",
"account_note.placeholder": "点击添加备注",
"admin.dashboard.daily_retention": "注册后用户留存率(按日计算)",
"admin.dashboard.monthly_retention": "注册后用户留存率(按月计算)",
@ -294,6 +294,7 @@
"navigation_bar.discover": "发现",
"navigation_bar.domain_blocks": "已屏蔽的网站",
"navigation_bar.edit_profile": "修改个人资料",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "喜欢",
"navigation_bar.filters": "隐藏关键词",
"navigation_bar.follow_requests": "关注请求",

@ -294,6 +294,7 @@
"navigation_bar.discover": "探索",
"navigation_bar.domain_blocks": "封鎖的服務站",
"navigation_bar.edit_profile": "修改個人資料",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "最愛的內容",
"navigation_bar.filters": "靜音詞彙",
"navigation_bar.follow_requests": "關注請求",

@ -294,6 +294,7 @@
"navigation_bar.discover": "探索",
"navigation_bar.domain_blocks": "隱藏的網域",
"navigation_bar.edit_profile": "編輯個人資料",
"navigation_bar.explore": "探索",
"navigation_bar.favourites": "最愛",
"navigation_bar.filters": "靜音詞彙",
"navigation_bar.follow_requests": "跟隨請求",

@ -22,6 +22,16 @@ class Admin::AccountAction
attr_reader :warning, :send_email_notification, :include_statuses
alias send_email_notification? send_email_notification
alias include_statuses? include_statuses
def initialize(attributes = {})
@send_email_notification = true
@include_statuses = true
super
end
def send_email_notification=(value)
@send_email_notification = ActiveModel::Type::Boolean.new.cast(value)
end
@ -141,11 +151,11 @@ class Admin::AccountAction
end
def warnable?
send_email_notification && target_account.local?
send_email_notification? && target_account.local?
end
def status_ids
report.status_ids if with_report? && include_statuses
report.status_ids if with_report? && include_statuses?
end
def reports

@ -63,13 +63,6 @@ class Notification < ApplicationRecord
scope :without_suspended, -> { joins(:from_account).merge(Account.without_suspended) }
scope :browserable, ->(exclude_types = [], account_id = nil) {
scope = all
scope = where(from_account_id: account_id) if account_id.present?
scope = scope.where(type: TYPES - exclude_types.map(&:to_sym)) unless exclude_types.empty?
scope
}
def type
@type ||= (super || LEGACY_TYPE_CLASS_MAP[activity_type]).to_sym
end
@ -90,6 +83,23 @@ class Notification < ApplicationRecord
end
class << self
def browserable(types: [], exclude_types: [], from_account_id: nil)
requested_types = begin
if types.empty?
TYPES
else
types.map(&:to_sym) & TYPES
end
end
requested_types -= exclude_types.map(&:to_sym)
all.tap do |scope|
scope.merge!(where(from_account_id: from_account_id)) if from_account_id.present?
scope.merge!(where(type: requested_types)) unless requested_types.size == TYPES.size
end
end
def preload_cache_collection_target_statuses(notifications, &_block)
notifications.group_by(&:type).each do |type, grouped_notifications|
associations = TARGET_STATUS_INCLUDES_BY_TYPE[type]

@ -80,6 +80,10 @@ class PreviewCard < ApplicationRecord
end
end
def requires_review?
attributes['trendable'].nil? && (provider.nil? || provider.requires_review?)
end
def requires_review_notification?
attributes['trendable'].nil? && (provider.nil? || provider.requires_review_notification?)
end

@ -300,6 +300,10 @@ class Status < ApplicationRecord
end
end
def requires_review?
attributes['trendable'].nil? && account.requires_review?
end
def requires_review_notification?
attributes['trendable'].nil? && account.requires_review_notification?
end

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

Loading…
Cancel
Save