Compare commits

...

170 Commits

Author SHA1 Message Date
ida schmidt 8059e3574d make it say doot damn it 2022-06-14 13:49:00 -07:00
ida schmidt e09482ad29 Merge tag 'v3.5.3' of https://github.com/mastodon/mastodon into HEAD 2022-06-14 13:41:49 -07:00
Eugen Rochko fbcbf7898f
Bump version to 3.5.3 (#18530) 2022-05-26 23:26:15 +02:00
Eugen Rochko 0a1992430d
Fix errors when rendering RSS feeds (#18531) 2022-05-26 23:02:42 +02:00
Eugen Rochko 52f4e834f2
Fix concurrent unfollowing decrementing follower count more than once (#18527) 2022-05-26 22:14:47 +02:00
Eugen Rochko 8a9acbe604
Fix being able to appeal a strike unlimited times (#18529)
Peculiarity of the `has_one` association is that the convenience
creation method deletes the previous association even if the new
one is invalid
2022-05-26 22:08:12 +02:00
Eugen Rochko c4d2c39a75
Fix being able to report otherwise inaccessible statuses (#18528) 2022-05-26 22:08:02 +02:00
Eugen Rochko 1ff4877945
Fix empty votes arbitrarily increasing voters count in polls (#18526) 2022-05-26 22:06:10 +02:00
Eugen Rochko 976cd6413e
Fix moderator leak in undo_mark_statuses_as_sensitive (#18525)
Signed-off-by: Eugen Rochko <eugen@zeonfederated.com>

Co-authored-by: 40826d <74816220+40826d@users.noreply.github.com>
2022-05-26 22:04:16 +02:00
Eugen Rochko 9f81b9f29a
Fix suspended users being able to access APIs that don't require a user (#18524) 2022-05-26 22:04:05 +02:00
Eugen Rochko 96129c2f10
Fix confirmation redirect to app without `Location` header (#18523) 2022-05-26 22:03:54 +02:00
Eugen Rochko 3e0e7a1cfb
Fix follower and other counters being able to go negative (#18517) 2022-05-26 20:32:48 +02:00
Yamagishi Kazutoshi 702b709d9a
Add ES6 compatibility to browserslist (#18519) 2022-05-26 20:29:28 +02:00
Eugen Rochko d8abc0018f
Remove 3.3.x from supported versions in security policy (#18516) 2022-05-26 18:43:14 +02:00
Eugen Rochko 088dc0ec5a
Fix regression in `tootctl search deploy` caused by unloaded attribute (#18514) 2022-05-26 18:05:47 +02:00
Eugen Rochko a4fa9e23fc
Change "dangerous" to "sensitive" in privacy policy and web UI (#18515)
Fix #18470
2022-05-26 17:55:05 +02:00
Claire 440eb71310
Change unapproved and unconfirmed account to not be accessible in the REST API (#17530)
* Change unapproved and unconfirmed account to not be accessible in the REST API

* Change Account#searchable? to reject unconfirmed and unapproved users

* Disable search for unapproved and unconfirmed users in Account.search_for

* Disable search for unapproved and unconfirmed users in Account.advanced_search_for

* Remove unconfirmed and unapproved accounts from Account.searchable scope

* Prevent mentions to unapproved/unconfirmed accounts

* Fix some old tests for Account.advanced_search_for

* Add some Account.advanced_search_for tests for existing behaviors

* Add some tests for Account.search_for

* Add Account.advanced_search_for tests unconfirmed and unapproved accounts

* Add Account.searchable tests

* Fix Account.without_unapproved scope potentially messing with previously-applied scopes

* Allow lookup of unconfirmed/unapproved accounts through /api/v1/accounts/lookup

This is so that the API can still be used to check whether an username is free
to use.
2022-05-26 15:50:33 +02:00
dependabot[bot] 86f4dba47e
Bump @babel/preset-env from 7.17.12 to 7.18.2 (#18512)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.17.12 to 7.18.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.2/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-26 09:16:19 +09:00
dependabot[bot] 77823333bb
Bump @babel/plugin-transform-runtime from 7.17.12 to 7.18.2 (#18511)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.17.12 to 7.18.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.2/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-26 09:06:44 +09:00
dependabot[bot] ddddd4c043
Bump immutable from 4.0.0 to 4.1.0 (#18502)
Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/immutable-js/immutable-js/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: immutable
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-26 08:41:07 +09:00
dependabot[bot] 01db331657
Bump @babel/plugin-transform-runtime from 7.17.12 to 7.18.0 (#18489)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.17.12 to 7.18.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.0/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-26 08:06:55 +09:00
dependabot[bot] 2bc5e41b83
Bump @babel/runtime from 7.17.9 to 7.18.0 (#18494)
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.17.9 to 7.18.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-26 08:06:29 +09:00
dependabot[bot] 4d48d83b00
Bump @babel/core from 7.17.12 to 7.18.0 (#18490)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.12 to 7.18.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-26 08:05:53 +09:00
Claire 25dda3061e
Fix unnecessary query on status creation (#17901) 2022-05-26 00:20:30 +02:00
Eugen Rochko 96f29ce91a
New Crowdin updates (#18458)
* New translations en.yml (Ido)

* New translations en.json (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations devise.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Ido)

* New translations en.yml (Ido)

* New translations en.json (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.json (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations doorkeeper.en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.json (Armenian)

* New translations en.json (Armenian)

* New translations en.json (Armenian)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Russian)

* New translations en.json (Estonian)

* New translations en.json (Estonian)

* New translations en.json (Estonian)

* New translations en.json (Estonian)

* New translations en.yml (Estonian)

* New translations en.json (Estonian)

* New translations en.json (Estonian)

* New translations en.yml (Estonian)

* New translations en.json (Estonian)

* New translations en.yml (Estonian)

* New translations en.json (Estonian)

* New translations en.json (Estonian)

* New translations en.yml (Russian)

* New translations en.yml (Russian)

* New translations simple_form.en.yml (Russian)

* New translations en.yml (Russian)

* New translations simple_form.en.yml (Russian)

* New translations en.json (Sorani (Kurdish))

* New translations en.json (Sorani (Kurdish))

* New translations en.json (Sorani (Kurdish))

* New translations activerecord.en.yml (Sorani (Kurdish))

* New translations doorkeeper.en.yml (Sorani (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations doorkeeper.en.yml (Sorani (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-24 23:33:18 +09:00
Claire e5997a1956
Fix warning an account outside of a report closing all reports for that account (#18387)
* Fix warning an account outside of a report closing all reports for that account

* Make it clear what actions solve other reports

* Revert "Make it clear what actions solve other reports"

This reverts commit ad006de821f72e75480701298d13f0945b509059.
2022-05-23 20:38:29 +02:00
Eugen Rochko a9b64b24d6
Change algorithm of `tootctl search deploy` to improve performance (#18463) 2022-05-22 22:16:43 +02:00
dependabot[bot] 54bb659ad1
Bump sidekiq from 6.4.1 to 6.4.2 (#18091)
Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.4.1 to 6.4.2.
- [Release notes](https://github.com/mperham/sidekiq/releases)
- [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/mperham/sidekiq/compare/v6.4.1...v6.4.2)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-21 15:43:36 +09:00
Yamagishi Kazutoshi dfb9e6dab1
Disable transpile to older iOS versions (#18462) 2022-05-20 04:39:05 +02:00
Yamagishi Kazutoshi e925b06721
Fix languages dropdown on light theme (#18460) 2022-05-19 19:26:19 +02:00
Eugen Rochko 9a0fa28993
New Crowdin updates (#18419)
* New translations en.json (German)

* New translations en.json (Welsh)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Turkish)

* New translations en.json (Chinese Simplified)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Asturian)

* New translations en.json (Irish)

* New translations en.json (Arabic)

* New translations en.json (Scottish Gaelic)

* New translations en.json (Galician)

* New translations en.json (Czech)

* New translations en.json (Slovak)

* New translations en.json (Icelandic)

* New translations en.json (Sorani (Kurdish))

* New translations en.json (English, United Kingdom)

* New translations en.json (Norwegian)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Afrikaans)

* New translations en.json (Bulgarian)

* New translations en.json (Persian)

* New translations en.json (Tamil)

* New translations en.json (Malayalam)

* New translations en.json (Silesian)

* New translations en.json (Taigi)

* New translations en.json (Ido)

* New translations en.json (Kabyle)

* New translations en.json (Sanskrit)

* New translations en.json (Sardinian)

* New translations en.json (Corsican)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Serbian (Latin))

* New translations en.json (Occitan)

* New translations en.json (Kannada)

* New translations en.json (Cornish)

* New translations en.json (Sinhala)

* New translations en.json (Breton)

* New translations en.json (Tatar)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Kazakh)

* New translations en.json (Spanish, Mexico)

* New translations en.json (Bengali)

* New translations en.json (Marathi)

* New translations en.json (Thai)

* New translations en.json (Croatian)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Estonian)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Malay)

* New translations en.json (Telugu)

* New translations en.json (Esperanto)

* New translations en.json (Uyghur)

* New translations en.json (Standard Moroccan Tamazight)

* New translations en.yml (Icelandic)

* New translations en.json (German)

* New translations en.json (Turkish)

* New translations en.json (Icelandic)

* New translations en.json (Greek)

* New translations en.json (Chinese Traditional)

* New translations en.json (Catalan)

* New translations en.json (Latvian)

* New translations en.json (Czech)

* New translations en.json (Indonesian)

* New translations en.json (Korean)

* New translations en.json (Russian)

* New translations en.json (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (German)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Danish)

* New translations en.json (Chinese Simplified)

* New translations en.json (Afrikaans)

* New translations en.json (Ukrainian)

* New translations en.json (Portuguese)

* New translations en.yml (Italian)

* New translations en.json (Italian)

* New translations en.yml (Italian)

* New translations en.json (Catalan)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (French)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Arabic)

* New translations en.yml (Arabic)

* New translations en.yml (Hungarian)

* New translations en.json (Hungarian)

* New translations en.yml (Galician)

* New translations en.json (Galician)

* New translations en.yml (Scottish Gaelic)

* New translations en.yml (Ido)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Catalan)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Korean)

* New translations en.json (Polish)

* New translations en.yml (Ido)

* New translations en.json (Czech)

* New translations en.json (Hungarian)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Ido)

* New translations en.json (Russian)

* New translations en.json (Latvian)

* New translations en.yml (Russian)

* New translations en.json (Russian)

* New translations devise.en.yml (Russian)

* New translations en.yml (Ido)

* New translations en.json (Icelandic)

* New translations en.json (Portuguese)

* New translations en.yml (Ido)

* New translations en.json (Catalan)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* Run `yarn manage:translations`

* New translations en.json (Chinese Simplified)

* New translations en.yml (Slovenian)

* New translations en.json (Slovenian)

* New translations en.json (Vietnamese)

* New translations en.json (Chinese Traditional)

* New translations en.json (Chinese Simplified)

* New translations en.json (Spanish)

* New translations en.json (Greek)

* New translations en.json (Thai)

* New translations en.json (Turkish)

* New translations en.json (Turkish)

* New translations en.json (Italian)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (Japanese)

* New translations en.json (Japanese)

* New translations en.json (Afrikaans)

* New translations en.yml (Basque)

* New translations en.yml (German)

* New translations en.json (German)

* New translations en.yml (Esperanto)

* New translations en.json (German)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Chinese Simplified)

* New translations en.json (German)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Korean)

* New translations en.yml (Galician)

* New translations en.json (Galician)

* New translations devise.en.yml (Galician)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Russian)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (Ido)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (German)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Korean)

* New translations en.json (Korean)

* New translations simple_form.en.yml (Korean)

* New translations en.yml (Korean)

* New translations en.json (Ukrainian)

* New translations en.yml (Arabic)

* New translations en.json (Arabic)

* New translations en.json (Arabic)

* New translations en.json (Arabic)

* New translations en.json (Arabic)

* New translations en.json (Thai)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Russian)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations devise.en.yml (Chinese Simplified)

* New translations en.yml (Ido)

* New translations en.json (French)

* New translations en.json (Indonesian)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Vietnamese)

* New translations en.json (Esperanto)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations doorkeeper.en.yml (Portuguese, Brazilian)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.yml (Ido)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-19 19:58:16 +09:00
Eugen Rochko 679b7158e3
Change search indexing to use batches to minimize resource usage (#18451) 2022-05-18 23:29:14 +02:00
dependabot[bot] ded5a0254a
Bump yargs from 17.4.1 to 17.5.1 (#18437)
Bumps [yargs](https://github.com/yargs/yargs) from 17.4.1 to 17.5.1.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/compare/v17.4.1...v17.5.1)

---
updated-dependencies:
- dependency-name: yargs
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-19 03:33:13 +09:00
dependabot[bot] ffc2971466
Bump dotenv from 16.0.0 to 16.0.1 (#18438)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.0.0 to 16.0.1.
- [Release notes](https://github.com/motdotla/dotenv/releases)
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.0.0...v16.0.1)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-19 03:30:31 +09:00
dependabot[bot] a918a76bfb
Bump glob from 8.0.1 to 8.0.3 (#18440)
Bumps [glob](https://github.com/isaacs/node-glob) from 8.0.1 to 8.0.3.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v8.0.1...v8.0.3)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-19 03:29:53 +09:00
dependabot[bot] 6b4e2d5ce6
Bump rubocop from 1.28.2 to 1.29.1 (#18433)
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.28.2 to 1.29.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.28.2...v1.29.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-19 03:27:55 +09:00
dependabot[bot] 6048eeed04
Bump faker from 2.20.0 to 2.21.0 (#18434)
Bumps [faker](https://github.com/faker-ruby/faker) from 2.20.0 to 2.21.0.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v2.20.0...v2.21.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-19 03:27:02 +09:00
dependabot[bot] 1a880533ac
Bump @babel/preset-env from 7.17.10 to 7.17.12 (#18443)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.17.10 to 7.17.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.12/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-18 21:25:23 +09:00
dependabot[bot] d842f645d1
Bump @babel/plugin-proposal-decorators from 7.17.9 to 7.17.12 (#18442)
Bumps [@babel/plugin-proposal-decorators](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-decorators) from 7.17.9 to 7.17.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.12/packages/babel-plugin-proposal-decorators)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-decorators"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-18 21:16:16 +09:00
dependabot[bot] a4d7426f10
Bump @babel/plugin-transform-runtime from 7.17.10 to 7.17.12 (#18441)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.17.10 to 7.17.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.12/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 21:02:31 +09:00
dependabot[bot] 82d4a45630
Bump @babel/preset-react from 7.16.7 to 7.17.12 (#18436)
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.16.7 to 7.17.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.12/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 21:01:58 +09:00
dependabot[bot] 9fcef31580
Bump @babel/core from 7.17.10 to 7.17.12 (#18439)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.10 to 7.17.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.12/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 21:01:23 +09:00
Claire e0bdaeab65
Fix NoMethodError when resolving a link that redirects to a local post (#18314)
* Fix NoMethodError when resolving a link that redirects to a local post

* Fix tests
2022-05-17 14:52:26 +02:00
Yamagishi Kazutoshi c78a622ba4
Prevent update to redis 4.1.0 (#18444) 2022-05-17 10:12:00 +02:00
Eugen Rochko d25015fc5b
Revert "Bump redis from 4.0.6 to 4.1.0" (#18430) 2022-05-16 20:14:20 +02:00
Eugen Rochko 6c699b1723
Fix preferred posting language returning unusable value in REST API (#18428) 2022-05-16 19:13:36 +02:00
Eugen Rochko 0cdb077570
Add language dropdown to compose in web UI (#18420) 2022-05-16 11:18:35 +02:00
Yamagishi Kazutoshi c3fac61f56
Fix `Mastodon::RaceConditionError` that occurs when external status is reblogged (#18424)
* Fix `Mastodon::RaceConditionError` that occurs when external status is reblogged

* Replace to `@object`
2022-05-16 01:00:09 +02:00
Eugen Rochko 95a036c598
New Crowdin updates (#18339)
* New translations en.yml (Asturian)

* New translations en.yml (Kannada)

* New translations en.yml (Sinhala)

* New translations en.yml (Marathi)

* New translations en.yml (Malay)

* New translations en.yml (Croatian)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Kazakh)

* New translations en.yml (Estonian)

* New translations en.yml (Latvian)

* New translations en.yml (Hindi)

* New translations en.yml (Telugu)

* New translations en.yml (Breton)

* New translations en.yml (Welsh)

* New translations en.yml (Esperanto)

* New translations en.yml (Uyghur)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Tatar)

* New translations en.yml (Malayalam)

* New translations en.yml (English, United Kingdom)

* New translations en.yml (Korean)

* New translations en.yml (Russian)

* New translations en.yml (Turkish)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Swedish)

* New translations en.yml (Catalan)

* New translations en.yml (Czech)

* New translations en.yml (Spanish)

* New translations en.yml (Greek)

* New translations en.yml (Portuguese)

* New translations en.yml (Ukrainian)

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (German)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Polish)

* New translations en.yml (Asturian)

* New translations en.yml (Scottish Gaelic)

* New translations en.yml (Chinese Traditional)

* New translations en.json (Persian)

* New translations en.yml (Persian)

* New translations en.yml (Chinese Traditional)

* New translations en.json (Chinese Traditional)

* New translations en.json (Persian)

* New translations en.yml (Persian)

* New translations en.yml (Chinese Traditional)

* New translations doorkeeper.en.yml (Chinese Traditional)

* New translations en.json (Persian)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations devise.en.yml (Chinese Traditional)

* New translations en.yml (Chinese Traditional)

* New translations doorkeeper.en.yml (Chinese Traditional)

* New translations en.yml (Chinese Traditional)

* New translations en.json (Chinese Traditional)

* New translations doorkeeper.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations en.yml (Icelandic)

* New translations en.yml (Indonesian)

* New translations en.yml (Japanese)

* New translations en.yml (Vietnamese)

* New translations en.yml (Japanese)

* New translations en.yml (Latvian)

* New translations en.yml (Galician)

* New translations en.yml (Thai)

* New translations en.yml (Italian)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Welsh)

* New translations en.yml (Welsh)

* New translations en.yml (Welsh)

* New translations en.yml (Welsh)

* New translations en.yml (Welsh)

* New translations en.json (Korean)

* New translations en.yml (Hungarian)

* New translations en.yml (Welsh)

* New translations en.yml (French)

* New translations en.yml (Scottish Gaelic)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.yml (Afrikaans)

* New translations en.json (Afrikaans)

* New translations en.json (Ido)

* New translations en.json (Afrikaans)

* New translations en.json (Afrikaans)

* New translations en.json (Afrikaans)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Catalan)

* New translations en.json (Catalan)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Arabic)

* New translations en.json (Arabic)

* New translations en.yml (Arabic)

* New translations en.json (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations devise.en.yml (Ido)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Catalan)

* New translations en.yml (Afrikaans)

* New translations en.yml (Latvian)

* New translations en.yml (Italian)

* New translations en.yml (Greek)

* New translations en.yml (Hungarian)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Ido)

* New translations en.yml (Hungarian)

* New translations en.json (Hungarian)

* New translations simple_form.en.yml (Hungarian)

* New translations en.yml (Korean)

* New translations en.yml (Russian)

* New translations en.yml (Hungarian)

* New translations en.yml (Turkish)

* New translations en.yml (Korean)

* New translations en.yml (Portuguese)

* New translations en.yml (Vietnamese)

* New translations en.yml (Portuguese)

* New translations en.yml (Icelandic)

* New translations en.yml (Albanian)

* New translations en.yml (Czech)

* New translations en.yml (Czech)

* New translations en.yml (Danish)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Polish)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Ukrainian)

* New translations en.yml (Indonesian)

* New translations en.yml (Spanish)

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.json (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations doorkeeper.en.yml (Chinese Simplified)

* New translations en.yml (German)

* New translations en.json (Chinese Simplified)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Galician)

* New translations en.yml (French)

* New translations en.json (Galician)

* New translations en.yml (French)

* New translations en.yml (Welsh)

* New translations en.yml (Arabic)

* New translations en.json (Sorani (Kurdish))

* New translations en.yml (Arabic)

* New translations en.json (Sorani (Kurdish))

* New translations en.yml (Arabic)

* New translations doorkeeper.en.yml (Arabic)

* New translations en.json (Arabic)

* New translations en.json (Sorani (Kurdish))

* New translations simple_form.en.yml (Arabic)

* New translations en.yml (Arabic)

* New translations en.yml (Arabic)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.json (Hindi)

* New translations en.json (Hindi)

* New translations en.json (Hindi)

* New translations en.json (Sorani (Kurdish))

* New translations en.yml (Slovenian)

* New translations en.yml (Hungarian)

* New translations en.json (English, United Kingdom)

* New translations en.yml (French)

* New translations en.yml (French)

* New translations en.json (French)

* New translations en.json (Croatian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Scottish Gaelic)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Welsh)

* New translations en.yml (Welsh)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Chinese Traditional)

* New translations en.json (Tatar)

* New translations en.json (Tatar)

* New translations en.yml (Catalan)

* New translations en.yml (Hebrew)

* New translations en.yml (Catalan)

* New translations en.yml (Hebrew)

* New translations devise.en.yml (Catalan)

* New translations en.yml (Russian)

* New translations doorkeeper.en.yml (Russian)

* New translations en.yml (Russian)

* New translations en.yml (Swedish)

* New translations en.yml (Spanish)

* New translations en.yml (Turkish)

* New translations en.yml (Welsh)

* New translations en.yml (Latvian)

* New translations en.json (Slovak)

* New translations en.yml (Slovak)

* New translations en.json (Slovak)

* New translations en.yml (Czech)

* New translations en.yml (Portuguese)

* New translations en.yml (Afrikaans)

* New translations activerecord.en.yml (Afrikaans)

* New translations activerecord.en.yml (Afrikaans)

* New translations en.yml (Afrikaans)

* New translations activerecord.en.yml (Afrikaans)

* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Ido)

* New translations en.json (Spanish, Argentina)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Danish)

* New translations en.yml (Vietnamese)

* New translations en.yml (German)

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Polish)

* New translations en.yml (Indonesian)

* New translations en.yml (Korean)

* New translations en.yml (Italian)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations en.yml (Polish)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-15 18:04:59 +09:00
James Smith 98400a6887
Support STREAMING_API_BASE_URL in Helm Chart (#18408)
This adds a mastodon.streaming.base_url setting in the Helm chart values
file to allow setting the STREAMING_API_BASE_URL in the Mastodon environnment
config map.
2022-05-14 10:03:44 +02:00
Eugen Rochko 42c976fd65
Fix missing string for appeal validation error (#18410) 2022-05-14 06:51:59 +02:00
Eugen Rochko 6cf57c6765
Refactor how Redis locks are created (#18400)
* Refactor how Redis locks are created

* Fix autorelease duration on account deletion lock
2022-05-13 00:02:35 +02:00
Jeong Arm 12535568f7
Fix rss view on hashtag (#18406) 2022-05-12 22:40:54 +02:00
dependabot[bot] bda8345e91
Bump rails from 6.1.5.1 to 6.1.6 (#18372)
Bumps [rails](https://github.com/rails/rails) from 6.1.5.1 to 6.1.6.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v6.1.5.1...v6.1.6)

---
updated-dependencies:
- dependency-name: rails
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-12 10:54:27 +09:00
dependabot[bot] 2923ca461f
Bump @rails/ujs from 6.1.5 to 6.1.6 (#18380)
Bumps [@rails/ujs](https://github.com/rails/rails) from 6.1.5 to 6.1.6.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v6.1.5...v6.1.6)

---
updated-dependencies:
- dependency-name: "@rails/ujs"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-12 10:44:41 +09:00
dependabot[bot] a52dc01f30
Bump nokogiri from 1.13.4 to 1.13.6 (#18371)
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.4 to 1.13.6.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.13.6/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.4...v1.13.6)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-12 10:43:30 +09:00
dependabot[bot] 3261d89af6
Bump aws-sdk-s3 from 1.113.2 to 1.114.0 (#18373)
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.113.2 to 1.114.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-12 10:42:52 +09:00
dependabot[bot] 95555f15b5
Bump jest from 28.0.3 to 28.1.0 (#18377)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.0.3 to 28.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:15:04 +09:00
dependabot[bot] 68260c0257
Bump sidekiq-unique-jobs from 7.1.21 to 7.1.22 (#18375)
Bumps [sidekiq-unique-jobs](https://github.com/mhenrixon/sidekiq-unique-jobs) from 7.1.21 to 7.1.22.
- [Release notes](https://github.com/mhenrixon/sidekiq-unique-jobs/releases)
- [Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.1.21...v7.1.22)

---
updated-dependencies:
- dependency-name: sidekiq-unique-jobs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:09:31 +09:00
dependabot[bot] a2ef5e3212
Bump array-includes from 3.1.4 to 3.1.5 (#18381)
Bumps [array-includes](https://github.com/es-shims/array-includes) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/es-shims/array-includes/releases)
- [Changelog](https://github.com/es-shims/array-includes/blob/main/CHANGELOG.md)
- [Commits](https://github.com/es-shims/array-includes/compare/v3.1.4...v3.1.5)

---
updated-dependencies:
- dependency-name: array-includes
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:08:27 +09:00
dependabot[bot] 3ca348fa11
Bump i18n-tasks from 1.0.9 to 1.0.10 (#18370)
Bumps [i18n-tasks](https://github.com/glebm/i18n-tasks) from 1.0.9 to 1.0.10.
- [Release notes](https://github.com/glebm/i18n-tasks/releases)
- [Changelog](https://github.com/glebm/i18n-tasks/blob/main/CHANGES.md)
- [Commits](https://github.com/glebm/i18n-tasks/compare/v1.0.9...v1.0.10)

---
updated-dependencies:
- dependency-name: i18n-tasks
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:04:12 +09:00
dependabot[bot] 593637145e
Bump babel-jest from 28.0.3 to 28.1.0 (#18374)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 28.0.3 to 28.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.0/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:02:08 +09:00
dependabot[bot] 19216f93b5
Bump jest-environment-jsdom from 28.0.2 to 28.1.0 (#18379)
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.0.2 to 28.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.0/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:01:51 +09:00
dependabot[bot] e7d0bf731e
Bump capybara from 3.36.0 to 3.37.1 (#18376)
Bumps [capybara](https://github.com/teamcapybara/capybara) from 3.36.0 to 3.37.1.
- [Release notes](https://github.com/teamcapybara/capybara/releases)
- [Changelog](https://github.com/teamcapybara/capybara/blob/master/History.md)
- [Commits](https://github.com/teamcapybara/capybara/compare/3.36.0...3.37.1)

---
updated-dependencies:
- dependency-name: capybara
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:01:16 +09:00
dependabot[bot] d3c18058d7
Bump react-select from 5.3.1 to 5.3.2 (#18382)
Bumps [react-select](https://github.com/JedWatson/react-select) from 5.3.1 to 5.3.2.
- [Release notes](https://github.com/JedWatson/react-select/releases)
- [Changelog](https://github.com/JedWatson/react-select/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/JedWatson/react-select/compare/react-select@5.3.1...react-select@5.3.2)

---
updated-dependencies:
- dependency-name: react-select
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 04:00:31 +09:00
Eugen Rochko b4d373a3df
Add `limited` attribute to accounts in REST API and a warning in web UI (#18344) 2022-05-10 09:44:35 +02:00
luzpaz 898fe2fa8e
Fix typo in source `setted`->`set` (#18385)
Found via `codespell -q 3 -S ./CHANGELOG.md,./AUTHORS.md,./config/locales,./app/javascript/mastodon/locales -L ba,keypair,medias,ro`
2022-05-10 04:58:04 +02:00
Claire 662ed53c18
Fix block/mute lists showing a follow button when unblocking a user (#18364)
Fixes #601
2022-05-09 23:20:19 +02:00
Claire f714e24ff1
Fix redis configuration not being changed by mastodon:setup (#18383)
Fixes #18342
2022-05-09 23:19:11 +02:00
Eugen Rochko 2b8dc58b7f
Change RSS feeds (#18356)
* Change RSS feeds

- Use date and time for titles instead of ellipsized text
- Use full content in body, even when there is a content warning
- Use media extensions

* Change feed icons and add width and height attributes to custom emojis

* Fix custom emoji animate on hover breaking

* Fix tests
2022-05-09 07:43:08 +02:00
Claire f17e73da09
Fix streaming notifications not using quick filter logic (#18316)
Fixes #18309

The quickFilter logic was used on display and to request new notification
pages, but not for live updates. The main issue this caused is bump the unread
notifications count regardless of the quickFilter setting.

Since notifications are re-fetched when changing quickFilter settings, it is
safe to drop live notifications that do not match the selected filter.
2022-05-07 04:50:40 +02:00
Claire 991353682d
Fix ambiguous wording on appeal actions (#18328)
Fixes #18322
2022-05-06 21:41:34 +02:00
Claire 5a448d0d71
Fix floating action button obscuring last element (#18332)
Fixes #18331

Add some padding below the last element of scrollable lists when the FAB is
shown in order for users to always be able to fully see the last element.
2022-05-06 21:40:49 +02:00
Claire a53003c6f1
Fix account warnings not being recorded in audit log (#18338)
* Fix account warnings not being recorded in audit log

Fixes #18334

* Only record warnings if they are not associated to another action
2022-05-06 21:40:20 +02:00
Eugen Rochko 9250578e6b
New Crowdin updates (#18255)
* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)

* New translations doorkeeper.en.yml (Tatar)

* New translations doorkeeper.en.yml (Malayalam)

* New translations doorkeeper.en.yml (Breton)

* New translations doorkeeper.en.yml (Sinhala)

* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)

* New translations en.json (Chinese Traditional)

* New translations en.json (Catalan)

* New translations en.json (Japanese)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.json (Korean)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.json (Korean)

* New translations en.yml (Hebrew)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Hebrew)

* New translations en.json (Vietnamese)

* New translations en.json (Turkish)

* New translations en.json (Galician)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

* Add whitelist_en-GB.json [ci skip]

* New translations en.json (Ukrainian)

* New translations en.json (Ukrainian)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Swedish)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Greek)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Ukrainian)

* New translations en.json (Thai)

* New translations en.yml (Hebrew)

* New translations en.yml (Ukrainian)

* New translations en.json (Polish)

* New translations en.json (Ukrainian)

* New translations doorkeeper.en.yml (Ukrainian)

* New translations en.json (Thai)

* New translations en.yml (Hebrew)

* New translations en.yml (Ukrainian)

* New translations en.json (Danish)

* New translations en.json (Hebrew)

* New translations en.json (Ido)

* New translations simple_form.en.yml (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Danish)

* New translations en.json (Ido)

* New translations en.yml (Hebrew)

* New translations doorkeeper.en.yml (Hebrew)

* New translations en.json (Ido)

* New translations en.yml (Hebrew)

* New translations en.yml (Afrikaans)

* New translations en.json (Afrikaans)

* New translations en.yml (Hebrew)

* New translations en.json (Afrikaans)

* New translations en.json (Hebrew)

* New translations en.json (Slovenian)

* New translations simple_form.en.yml (Hebrew)

* New translations en.yml (Slovenian)

* New translations en.json (Hebrew)

* New translations en.json (Slovenian)

* New translations en.json (Ukrainian)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Slovenian)

* New translations en.yml (Hebrew)

* New translations en.json (Hebrew)

* New translations en.json (Latvian)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Slovenian)

* New translations en.yml (Hebrew)

* New translations en.json (Hebrew)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Slovenian)

* New translations en.yml (Hebrew)

* New translations en.yml (Slovenian)

* New translations en.json (Hebrew)

* New translations simple_form.en.yml (Ukrainian)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Slovenian)

* New translations en.yml (Hebrew)

* New translations en.yml (Slovenian)

* New translations en.json (German)

* New translations simple_form.en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations simple_form.en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Slovenian)

* New translations en.json (Russian)

* New translations simple_form.en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Slovenian)

* New translations en.json (Icelandic)

* New translations simple_form.en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.json (Hungarian)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Hungarian)

* New translations en.yml (Hebrew)

* New translations en.yml (Hungarian)

* New translations en.json (Hungarian)

* New translations en.yml (Hebrew)

* New translations en.json (Czech)

* New translations en.yml (Hebrew)

* New translations en.json (Czech)

* New translations en.yml (Spanish)

* New translations en.yml (Hebrew)

* New translations en.json (Spanish)

* New translations en.yml (Hebrew)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Hebrew)

* New translations en.json (Portuguese)

* New translations en.yml (Hebrew)

* New translations en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations doorkeeper.en.yml (Japanese)

* New translations en.json (Danish)

* New translations activerecord.en.yml (Japanese)

* New translations en.yml (Hebrew)

* New translations en.yml (Slovenian)

* New translations en.json (Welsh)

* New translations en.yml (Slovenian)

* New translations en.json (Italian)

* New translations en.yml (Slovenian)

* New translations en.json (Indonesian)

* New translations en.yml (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.yml (Thai)

* New translations en.yml (Slovenian)

* New translations en.yml (Thai)

* New translations en.yml (Slovenian)

* New translations en.yml (Thai)

* New translations en.yml (Thai)

* New translations en.yml (Slovenian)

* New translations en.yml (Danish)

* New translations en.json (Swedish)

* New translations en.yml (Slovenian)

* New translations en.json (Vietnamese)

* New translations en.yml (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.yml (Welsh)

* New translations simple_form.en.yml (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.yml (Scottish Gaelic)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Slovenian)

* New translations en.yml (Welsh)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.json (Danish)

* New translations en.yml (Slovenian)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Slovenian)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Slovenian)

* New translations doorkeeper.en.yml (Slovenian)

* New translations simple_form.en.yml (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.json (Spanish, Argentina)

* New translations en.yml (Slovenian)

* New translations en.json (Scottish Gaelic)

* New translations en.json (Slovenian)

* New translations simple_form.en.yml (Slovenian)

* New translations en.json (Welsh)

* New translations en.json (French)

* New translations en.json (Welsh)

* New translations en.json (French)

* New translations en.yml (Arabic)

* New translations en.json (Arabic)

* New translations simple_form.en.yml (Welsh)

* New translations en.json (French)

* New translations simple_form.en.yml (Ukrainian)

* New translations en.json (Ukrainian)

* New translations en.json (Ukrainian)

* New translations en.yml (German)

* New translations en.yml (Ukrainian)

* New translations en.json (Ukrainian)

* New translations en.yml (Hebrew)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Arabic)

* New translations en.json (Asturian)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations en.json (German)

* New translations en.json (Ido)

* New translations en.json (Welsh)

* New translations en.json (Ido)

* New translations en.json (Welsh)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.yml (German)

* New translations en.yml (Catalan)

* New translations en.json (Catalan)

* New translations en.json (German)

* New translations en.json (Albanian)

* New translations en.json (German)

* New translations en.yml (German)

* New translations en.json (German)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-06 21:53:22 +09:00
Stefano Pigozzi 99d7684dfd
Replace leftover `envelope` icons with `at` icons (#18305) 2022-05-06 00:41:56 +02:00
Sara Golemon 336c23336a
Allow VerifyLinkService to accept backlinks with differing case (#18320) 2022-05-06 00:41:42 +02:00
dependabot[bot] db01df2dda
Bump sidekiq-scheduler from 3.2.0 to 4.0.0 (#18275)
Bumps [sidekiq-scheduler](https://github.com/moove-it/sidekiq-scheduler) from 3.2.0 to 4.0.0.
- [Release notes](https://github.com/moove-it/sidekiq-scheduler/releases)
- [Changelog](https://github.com/moove-it/sidekiq-scheduler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moove-it/sidekiq-scheduler/compare/v3.2.0...v4.0.0)

---
updated-dependencies:
- dependency-name: sidekiq-scheduler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 22:47:05 +09:00
dependabot[bot] 39820a940f
Bump glob from 7.2.0 to 8.0.1 (#18013)
Bumps [glob](https://github.com/isaacs/node-glob) from 7.2.0 to 8.0.1.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.2.0...v8.0.1)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 22:38:02 +09:00
dependabot[bot] 8f4d7f54f8
Bump stoplight from 2.2.1 to 3.0.0 (#17645)
Bumps [stoplight](https://github.com/orgsync/stoplight) from 2.2.1 to 3.0.0.
- [Release notes](https://github.com/orgsync/stoplight/releases)
- [Changelog](https://github.com/bolshakov/stoplight/blob/master/CHANGELOG.md)
- [Commits](https://github.com/orgsync/stoplight/compare/v2.2.1...v3.0.0)

---
updated-dependencies:
- dependency-name: stoplight
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 22:33:19 +09:00
dependabot[bot] 132239008d
Bump redux from 4.1.2 to 4.2.0 (#18087)
Bumps [redux](https://github.com/reduxjs/redux) from 4.1.2 to 4.2.0.
- [Release notes](https://github.com/reduxjs/redux/releases)
- [Changelog](https://github.com/reduxjs/redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/redux/compare/v4.1.2...v4.2.0)

---
updated-dependencies:
- dependency-name: redux
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 22:29:51 +09:00
dependabot[bot] 8a6b796440
Bump axios from 0.26.1 to 0.27.2 (#18270)
Bumps [axios](https://github.com/axios/axios) from 0.26.1 to 0.27.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.26.1...v0.27.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 22:25:40 +09:00
dependabot[bot] 8c644dcbd9
Bump jest from 27.5.1 to 28.0.3 (#18280)
* Bump jest from 27.5.1 to 28.0.3

Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 27.5.1 to 28.0.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.0.3/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump babel-jest from 27.5.1 to 28.0.3

Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.5.1 to 28.0.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.0.3/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Add jest-environment-jsdom

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-04 14:06:49 +09:00
dependabot[bot] c08bc2da61
Bump ws from 8.5.0 to 8.6.0 (#18279)
Bumps [ws](https://github.com/websockets/ws) from 8.5.0 to 8.6.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.5.0...8.6.0)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 13:55:05 +09:00
dependabot[bot] f18c620d4b
Bump brakeman from 5.2.2 to 5.2.3 (#18274)
Bumps [brakeman](https://github.com/presidentbeef/brakeman) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/presidentbeef/brakeman/releases)
- [Changelog](https://github.com/presidentbeef/brakeman/blob/main/CHANGES.md)
- [Commits](https://github.com/presidentbeef/brakeman/compare/v5.2.2...v5.2.3)

---
updated-dependencies:
- dependency-name: brakeman
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 13:49:53 +09:00
dependabot[bot] 881d71e58c
Bump rubocop from 1.27.0 to 1.28.2 (#18084)
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.27.0 to 1.28.2.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.27.0...v1.28.2)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 13:43:02 +09:00
dependabot[bot] 381415bd97
Bump redis from 4.0.6 to 4.1.0 (#18282)
Bumps [redis](https://github.com/redis/node-redis) from 4.0.6 to 4.1.0.
- [Release notes](https://github.com/redis/node-redis/releases)
- [Changelog](https://github.com/redis/node-redis/blob/master/CHANGELOG.md)
- [Commits](https://github.com/redis/node-redis/compare/redis@4.0.6...redis@4.1.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-04 13:42:37 +09:00
rinsuki 6e736f2452
fix: embed.js doesn't expands iframes height (#18301)
also including some refactoring:
- add `// @ts-check`
- use Map to completely avoid prototype pollution
- assign random id to each iframe for reduce chance to brute-force attack, and leak of iframe counts
- check iframe.contentWindow and MessageEvent.source to validate message is coming from correct iframe (it works on latest Chrome/Firefox/Safari but I'm not sure this is allowed by spec)

follow-up of #17420
fix #18299
2022-05-04 03:20:44 +02:00
mayaeh a01580f09f
Update translation strings for direct message (#18300) 2022-05-04 02:40:26 +02:00
Claire 014065913c
Bump version to 3.5.2 (#18295)
* Bump version to 3.5.2

* Change some entries to be more clear

* Add some extra notes

* Fix line wrap

Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2022-05-04 00:57:42 +02:00
Claire 340fa34513
Bump minimum Ruby version (#18294)
Mastodon has been incompatible with Ruby 2.5 for a few releases due to
some dependencies, this just updates the Gemfile description to match
that situation.
2022-05-04 00:26:46 +02:00
Claire e2d1d3b428
Change “Only people I mention” to “Mentioned people only” (#18291) 2022-05-03 12:30:40 +02:00
Eugen Rochko 7e244879fe
Change "Conversations" back to "Direct messages" and add warning in web UI (#18289)
Partially reverts #18146
2022-05-03 09:09:09 +02:00
dependabot[bot] aed1c47cb1
Bump sass from 1.50.1 to 1.51.0 (#18285)
Bumps [sass](https://github.com/sass/dart-sass) from 1.50.1 to 1.51.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.50.1...1.51.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:41:21 +09:00
dependabot[bot] a6508d652b
Bump react-select from 5.3.0 to 5.3.1 (#18273)
Bumps [react-select](https://github.com/JedWatson/react-select) from 5.3.0 to 5.3.1.
- [Release notes](https://github.com/JedWatson/react-select/releases)
- [Changelog](https://github.com/JedWatson/react-select/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/JedWatson/react-select/compare/react-select@5.3.0...react-select@5.3.1)

---
updated-dependencies:
- dependency-name: react-select
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:40:48 +09:00
dependabot[bot] d96000bd31
Bump express from 4.18.0 to 4.18.1 (#18271)
Bumps [express](https://github.com/expressjs/express) from 4.18.0 to 4.18.1.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.0...4.18.1)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:40:18 +09:00
dependabot[bot] 80da658069
Bump @babel/preset-env from 7.16.11 to 7.17.10 (#18281)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.11 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:30:14 +09:00
dependabot[bot] ce2449421c
Bump rails from 6.1.5 to 6.1.5.1 (#18276)
Bumps [rails](https://github.com/rails/rails) from 6.1.5 to 6.1.5.1.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v6.1.5...v6.1.5.1)

---
updated-dependencies:
- dependency-name: rails
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:22:05 +09:00
dependabot[bot] 5bfdc11fb9
Bump babel-loader from 8.2.4 to 8.2.5 (#18096)
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.2.4 to 8.2.5.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.2.4...v8.2.5)

---
updated-dependencies:
- dependency-name: babel-loader
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:20:22 +09:00
dependabot[bot] 3cc0233adc
Bump @babel/plugin-transform-runtime from 7.17.0 to 7.17.10 (#18283)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.17.0 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:19:40 +09:00
dependabot[bot] 9723b768c5
Bump @babel/core from 7.17.9 to 7.17.10 (#18277)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.9 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:19:24 +09:00
dependabot[bot] 5a8a6a1e8c
Bump rspec-rails from 5.1.1 to 5.1.2 (#18092)
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/rspec/rspec-rails/releases)
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:11:42 +09:00
dependabot[bot] 51ce836edb
Bump pghero from 2.8.2 to 2.8.3 (#18278)
Bumps [pghero](https://github.com/ankane/pghero) from 2.8.2 to 2.8.3.
- [Release notes](https://github.com/ankane/pghero/releases)
- [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/pghero/compare/v2.8.2...v2.8.3)

---
updated-dependencies:
- dependency-name: pghero
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:10:45 +09:00
dependabot[bot] b3496583e0
Bump aws-sdk-s3 from 1.113.1 to 1.113.2 (#18269)
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.113.1 to 1.113.2.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 09:55:23 +09:00
Claire 0597e5db68
Fix ArgumentError when processing pinned posts from Friendica (#18260)
Follow-up to #18254
2022-05-02 19:34:39 +02:00
Claire bc19c083ce
Add ability to set approval-based registration through tootctl (#18248)
Fixes #18235

Add `tootctl settings registrations approved` with
optional `--require-reason` switch.
2022-05-02 17:41:34 +02:00
Claire 71d02ffcf3
Fix compatibility with Friendica regarding pinned posts (#18254)
* Fix multiple database queries when fetching pinned posts for remote account

* Fix compatibility with Friendica regarding pinned posts

Fixes #18066

* Add tests
2022-05-02 17:41:01 +02:00
Eugen Rochko 6b7765a73b
New Crowdin updates (#18213)
* New translations activerecord.en.yml (Ido)

* New translations en.json (Ido)

* New translations activerecord.en.yml (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.json (Ido)

* New translations en.yml (Armenian)

* New translations en.json (Armenian)

* New translations en.yml (Russian)

* New translations en.yml (Armenian)

* New translations en.json (Armenian)

* New translations en.yml (Armenian)

* New translations en.json (Japanese)

* New translations en.json (Armenian)

* New translations en.yml (Armenian)

* New translations en.json (Japanese)

* New translations doorkeeper.en.yml (Armenian)

* New translations simple_form.en.yml (Sorani (Kurdish))

* New translations simple_form.en.yml (Sorani (Kurdish))

* New translations en.json (Spanish)

* New translations en.json (Portuguese)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Portuguese)

* New translations devise.en.yml (Chinese Simplified)

* New translations en.json (Portuguese)

* New translations en.yml (Portuguese)

* New translations en.yml (Portuguese)

* New translations en.yml (Polish)

* New translations doorkeeper.en.yml (Japanese)

* New translations activerecord.en.yml (Japanese)

* New translations devise.en.yml (Japanese)

* New translations doorkeeper.en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations en.json (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations en.json (Japanese)

* New translations en.json (Galician)

* New translations en.json (Japanese)

* New translations en.json (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations devise.en.yml (Japanese)

* New translations en.yml (Scottish Gaelic)

* New translations en.json (Scottish Gaelic)

* New translations simple_form.en.yml (Scottish Gaelic)

* New translations activerecord.en.yml (Scottish Gaelic)

* New translations devise.en.yml (Scottish Gaelic)

* New translations doorkeeper.en.yml (Scottish Gaelic)

* New translations en.yml (Danish)

* New translations en.yml (Danish)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Icelandic)

* New translations en.json (Icelandic)

* New translations en.json (Icelandic)

* New translations en.yml (Icelandic)

* New translations simple_form.en.yml (Icelandic)

* New translations en.json (Icelandic)

* New translations en.json (Icelandic)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Icelandic)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Icelandic)

* New translations simple_form.en.yml (Icelandic)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Welsh)

* New translations en.json (Czech)

* New translations en.json (German)

* New translations en.json (Czech)

* New translations en.json (Czech)

* New translations en.json (Czech)

* New translations doorkeeper.en.yml (Ido)

* New translations en.json (Icelandic)

* New translations doorkeeper.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations en.yml (Korean)

* New translations en.yml (Hungarian)

* New translations en.yml (Georgian)

* New translations en.yml (Lithuanian)

* New translations en.yml (Macedonian)

* New translations en.yml (Dutch)

* New translations en.yml (Norwegian)

* New translations en.yml (Punjabi)

* New translations en.yml (Albanian)

* New translations en.yml (Basque)

* New translations en.yml (Serbian (Cyrillic))

* New translations en.yml (Turkish)

* New translations en.yml (Ukrainian)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Urdu (Pakistan))

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Indonesian)

* New translations en.yml (Tamil)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Finnish)

* New translations en.yml (Greek)

* New translations en.yml (Galician)

* New translations en.yml (Slovak)

* New translations en.yml (Swedish)

* New translations en.yml (Arabic)

* New translations en.yml (French)

* New translations en.yml (Spanish)

* New translations en.yml (Catalan)

* New translations en.yml (Hebrew)

* New translations en.yml (Italian)

* New translations en.yml (Slovenian)

* New translations en.yml (German)

* New translations en.yml (Vietnamese)

* New translations en.yml (Thai)

* New translations en.yml (Occitan)

* New translations en.yml (Persian)

* New translations en.yml (Romanian)

* New translations en.yml (Afrikaans)

* New translations en.yml (Bulgarian)

* New translations en.yml (Czech)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Bengali)

* New translations en.yml (Cornish)

* New translations en.yml (Irish)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Silesian)

* New translations en.yml (Taigi)

* New translations en.yml (Ido)

* New translations en.yml (Kabyle)

* New translations en.yml (Sanskrit)

* New translations en.yml (Sardinian)

* New translations en.yml (Corsican)

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Serbian (Latin))

* New translations en.yml (Asturian)

* New translations en.yml (Kannada)

* New translations en.yml (Sinhala)

* New translations en.yml (Marathi)

* New translations en.yml (Malay)

* New translations en.yml (Croatian)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Kazakh)

* New translations en.yml (Estonian)

* New translations en.yml (Latvian)

* New translations en.yml (Hindi)

* New translations en.yml (Telugu)

* New translations en.yml (Breton)

* New translations en.yml (Welsh)

* New translations en.yml (Esperanto)

* New translations en.yml (Uyghur)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Tatar)

* New translations en.yml (Malayalam)

* New translations en.yml (English, United Kingdom)

* New translations en.yml (Chinese Traditional)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Ido)

* New translations en.json (Chinese Simplified)

* New translations doorkeeper.en.yml (Ido)

* New translations en.yml (Korean)

* New translations doorkeeper.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations en.yml (Japanese)

* New translations en.yml (Turkish)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Vietnamese)

* New translations en.yml (Greek)

* New translations en.yml (Catalan)

* New translations en.yml (French)

* New translations en.yml (Spanish)

* New translations en.yml (Polish)

* New translations doorkeeper.en.yml (Persian)

* New translations en.yml (Czech)

* New translations en.yml (Icelandic)

* New translations en.json (Icelandic)

* New translations en.yml (Russian)

* New translations en.yml (Hungarian)

* New translations en.yml (Swedish)

* New translations en.yml (Indonesian)

* New translations en.yml (Swedish)

* New translations en.yml (Welsh)

* New translations en.json (Swedish)

* New translations en.yml (Danish)

* New translations en.yml (Galician)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-05-02 23:19:23 +09:00
Yamagishi Kazutoshi fe6a5b0d5a
Add translatable string for #17431 (#18227)
* Add translatable string for #17431

* Update config/locales/en.yml

Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>

Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2022-05-02 03:39:45 +02:00
Claire 9a3be0ad68
Fix error when looking handle with surrounding spaces (#18225) 2022-05-02 01:00:08 +02:00
Eugen Rochko 33f3818d66
Fix double render error when authorizing interaction (#18203) 2022-05-01 00:56:34 +02:00
Claire 6e4d932da5
Fix possible crash when a post references an invalid media attachment (#18211) 2022-05-01 00:55:26 +02:00
Eugen Rochko 5a48bf1085
Fix error when trying to revoke OAuth token without supplying a token (#18205) 2022-05-01 00:51:32 +02:00
Eugen Rochko 6da648227e
Fix error caused by missing subject in Webfinger response (#18204) 2022-05-01 00:37:46 +02:00
Eugen Rochko ad084ce7db
New Crowdin updates (#18148)
* New translations en.yml (Kazakh)

* New translations en.yml (Estonian)

* New translations en.yml (Latvian)

* New translations en.yml (Hindi)

* New translations en.yml (Malay)

* New translations en.yml (Telugu)

* New translations en.yml (Welsh)

* New translations en.yml (Esperanto)

* New translations en.yml (Uyghur)

* New translations en.yml (Tatar)

* New translations en.yml (Sinhala)

* New translations en.yml (Malayalam)

* New translations en.yml (Breton)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Silesian)

* New translations en.yml (Taigi)

* New translations en.yml (Ido)

* New translations en.json (Asturian)

* New translations en.yml (Kabyle)

* New translations en.yml (Sanskrit)

* New translations en.yml (Sardinian)

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Serbian (Latin))

* New translations en.yml (Asturian)

* New translations en.yml (Corsican)

* New translations en.json (Welsh)

* New translations doorkeeper.en.yml (Armenian)

* New translations en.json (Basque)

* New translations doorkeeper.en.yml (Basque)

* New translations en.json (Finnish)

* New translations doorkeeper.en.yml (Finnish)

* New translations en.json (Hebrew)

* New translations doorkeeper.en.yml (Hebrew)

* New translations en.json (Hungarian)

* New translations doorkeeper.en.yml (Hungarian)

* New translations en.json (Armenian)

* New translations en.json (Italian)

* New translations en.json (Greek)

* New translations doorkeeper.en.yml (Italian)

* New translations en.json (Georgian)

* New translations doorkeeper.en.yml (Georgian)

* New translations en.json (Lithuanian)

* New translations en.json (Macedonian)

* New translations en.json (Dutch)

* New translations doorkeeper.en.yml (Dutch)

* New translations doorkeeper.en.yml (Norwegian)

* New translations doorkeeper.en.yml (Greek)

* New translations doorkeeper.en.yml (German)

* New translations en.json (Galician)

* New translations doorkeeper.en.yml (Romanian)

* New translations doorkeeper.en.yml (Korean)

* New translations en.json (Slovak)

* New translations doorkeeper.en.yml (Scottish Gaelic)

* New translations en.json (Icelandic)

* New translations en.json (Norwegian)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations doorkeeper.en.yml (Danish)

* New translations doorkeeper.en.yml (French)

* New translations en.json (Spanish)

* New translations doorkeeper.en.yml (Spanish)

* New translations en.json (Afrikaans)

* New translations en.json (Bulgarian)

* New translations doorkeeper.en.yml (Bulgarian)

* New translations en.json (Czech)

* New translations doorkeeper.en.yml (Czech)

* New translations en.json (Danish)

* New translations en.json (Punjabi)

* New translations en.json (Sorani (Kurdish))

* New translations en.json (Bengali)

* New translations doorkeeper.en.yml (Indonesian)

* New translations en.json (Persian)

* New translations doorkeeper.en.yml (Persian)

* New translations en.json (Tamil)

* New translations doorkeeper.en.yml (Tamil)

* New translations en.json (Spanish, Argentina)

* New translations doorkeeper.en.yml (Spanish, Argentina)

* New translations en.json (Spanish, Mexico)

* New translations doorkeeper.en.yml (Spanish, Mexico)

* New translations doorkeeper.en.yml (Portuguese, Brazilian)

* New translations en.json (Marathi)

* New translations doorkeeper.en.yml (Marathi)

* New translations en.json (Thai)

* New translations doorkeeper.en.yml (Thai)

* New translations en.json (Croatian)

* New translations doorkeeper.en.yml (Croatian)

* New translations en.json (Norwegian Nynorsk)

* New translations doorkeeper.en.yml (Norwegian Nynorsk)

* New translations en.json (Kazakh)

* New translations doorkeeper.en.yml (Kazakh)

* New translations en.json (Indonesian)

* New translations doorkeeper.en.yml (Icelandic)

* New translations en.json (Polish)

* New translations en.json (Serbian (Cyrillic))

* New translations doorkeeper.en.yml (Polish)

* New translations en.json (Portuguese)

* New translations doorkeeper.en.yml (Portuguese)

* New translations en.json (Russian)

* New translations doorkeeper.en.yml (Russian)

* New translations doorkeeper.en.yml (Slovak)

* New translations en.json (Slovenian)

* New translations doorkeeper.en.yml (Slovenian)

* New translations en.json (Albanian)

* New translations doorkeeper.en.yml (Albanian)

* New translations doorkeeper.en.yml (Serbian (Cyrillic))

* New translations doorkeeper.en.yml (Galician)

* New translations en.json (Swedish)

* New translations doorkeeper.en.yml (Swedish)

* New translations doorkeeper.en.yml (Turkish)

* New translations en.json (Ukrainian)

* New translations doorkeeper.en.yml (Ukrainian)

* New translations doorkeeper.en.yml (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations doorkeeper.en.yml (Chinese Traditional)

* New translations en.json (Urdu (Pakistan))

* New translations en.json (Estonian)

* New translations doorkeeper.en.yml (Estonian)

* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)

* New translations en.json (Kannada)

* New translations en.json (Latvian)

* New translations en.json (Cornish)

* New translations doorkeeper.en.yml (Sinhala)

* New translations en.json (Sinhala)

* New translations doorkeeper.en.yml (Breton)

* New translations en.json (Breton)

* New translations doorkeeper.en.yml (Malayalam)

* New translations en.json (Malayalam)

* New translations doorkeeper.en.yml (Tatar)

* New translations en.json (Tatar)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations doorkeeper.en.yml (Latvian)

* New translations doorkeeper.en.yml (Hindi)

* New translations en.json (Malay)

* New translations en.json (Hindi)

* New translations en.json (Telugu)

* New translations doorkeeper.en.yml (Welsh)

* New translations en.json (Esperanto)

* New translations doorkeeper.en.yml (Esperanto)

* New translations en.json (Uyghur)

* New translations doorkeeper.en.yml (Sardinian)

* New translations en.json (Silesian)

* New translations en.json (Taigi)

* New translations doorkeeper.en.yml (Ido)

* New translations en.json (Ido)

* New translations doorkeeper.en.yml (Kabyle)

* New translations en.json (Kabyle)

* New translations en.json (Sanskrit)

* New translations doorkeeper.en.yml (Serbian (Latin))

* New translations en.json (Sardinian)

* New translations doorkeeper.en.yml (Corsican)

* New translations en.json (Corsican)

* New translations doorkeeper.en.yml (Sorani (Kurdish))

* New translations doorkeeper.en.yml (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Serbian (Latin))

* New translations doorkeeper.en.yml (Occitan)

* New translations en.json (Occitan)

* New translations doorkeeper.en.yml (Asturian)

* New translations en.json (Standard Moroccan Tamazight)

* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)

* New translations en.json (Danish)

* New translations en.json (Danish)

* New translations en.json (Icelandic)

* New translations en.json (Korean)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Korean)

* New translations en.json (Chinese Traditional)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Catalan)

* New translations en.json (Catalan)

* New translations en.json (Vietnamese)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Japanese)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

* New translations en.json (Japanese)

* New translations en.yml (Japanese)

* Restore en locales

* Run `bundle exec i18n-tasks normalize`

* New translations en.json (Greek)

* New translations en.json (Chinese Traditional)

* New translations en.json (Greek)

* New translations en.json (Chinese Traditional)

* New translations en.json (Galician)

* New translations en.json (Chinese Traditional)

* New translations en.json (Russian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Afrikaans)

* New translations en.json (Russian)

* New translations en.json (Afrikaans)

* New translations en.yml (Swedish)

* New translations en.json (Swedish)

* New translations en.json (Welsh)

* New translations en.json (Dutch)

* New translations en.json (Turkish)

* New translations en.json (Turkish)

* New translations en.json (Scottish Gaelic)

* New translations en.json (Catalan)

* New translations en.json (Icelandic)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Thai)

* New translations en.json (Hungarian)

* New translations en.json (German)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (German)

* New translations en.json (Polish)

* New translations en.json (Polish)

* New translations en.json (Indonesian)

* New translations en.json (Tatar)

* New translations en.json (Tatar)

* New translations en.json (Turkish)

* New translations en.json (Turkish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations en.yml (Thai)

* New translations en.yml (Arabic)

* New translations en.json (Arabic)

* New translations en.json (Czech)

* New translations en.json (Italian)

* New translations en.json (Italian)

* New translations en.json (Ukrainian)

* New translations en.yml (Ukrainian)

* New translations en.json (Ukrainian)

* New translations en.json (Japanese)

* New translations en.json (Latvian)

* New translations en.json (Danish)

* New translations en.yml (Danish)

* New translations en.json (Albanian)

* New translations en.yml (Albanian)

* New translations en.json (Albanian)

* New translations doorkeeper.en.yml (Albanian)

* New translations simple_form.en.yml (Albanian)

* New translations activerecord.en.yml (Albanian)

* New translations devise.en.yml (Albanian)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-04-30 20:11:52 +09:00
Eugen Rochko f6d35ed57d
Remove IP matching from e-mail domain blocks (#18190)
Clear out e-mail domain blocks created from automatically resolved DNS records
2022-04-29 23:27:03 +02:00
Eugen Rochko 7b0fe4aef9
Fix opening and closing Redis connections instead of using a pool (#18171)
* Fix opening and closing Redis connections instead of using a pool

* Fix Redis connections not being returned to the pool in CLI commands
2022-04-29 22:43:07 +02:00
Eugen Rochko 6476f7e4da
Change trending statuses to only show one status from each account (#18181)
Calculate trends in temporary sets to avoid having to manage items
that go below the decay threshold while not having any moments
where a half-processed set is accessible to end-users
2022-04-29 22:42:42 +02:00
Claire 5c691430e5
Fix error on attempting to delete an account moderation note (#18196)
Fixes #18193
2022-04-29 20:25:31 +02:00
Gaelan Steele 74e20f22cd
Fix light-mode emoji borders. (#18131) 2022-04-29 19:23:03 +02:00
Eugen Rochko 6726d2933a
Change half-life of trending status scores from 6 hours to 2 hours (#18182) 2022-04-29 11:46:59 +02:00
Claire e7f0c9f7da
Pre-fill domain block/allow domain from search filter (#18172) 2022-04-29 00:24:44 +02:00
Eugen Rochko be0bc9acbf
Change "Direct" status visibility to "Only people I mention" in web UI (#18146)
- Change name of conversations column in web UI
- Change hotkey for opening conversations column from `g d` to `g c` in web UI
- Remove shortcuts for creating direct-visibility statuses from web UI
2022-04-29 00:24:31 +02:00
Eugen Rochko a8e27ac4d1
Fix being able to scroll away from the loading bar in web UI (#18170) 2022-04-29 00:15:27 +02:00
Claire 66a63d79ea
Fix 500 error when a bookmark or favorite has been reported and deleted (#18174) 2022-04-28 23:34:58 +02:00
Claire eed5a4bf9c
Fix empty “Server rules violation” report option (#18165) 2022-04-28 21:29:29 +02:00
Claire 84d991988e
Fix temporary network/remote server error prevent from interactions with remote accounts (#18161)
* Fix temporary network/remote server error prevent from interactions with remote accounts

* Fix and add tests
2022-04-28 20:19:10 +02:00
Claire 8284110c55
Fix stoplight not using REDIS_NAMESPACE (#18160) 2022-04-28 18:11:31 +02:00
Eugen Rochko 3917353645
Fix single Redis connection being used across all threads (#18135)
* Fix single Redis connection being used across all Sidekiq threads

* Fix tests
2022-04-28 17:47:34 +02:00
Chris Dzombak 9bf04db23a
Fix incorrect link in "new trending tags" email (#18156)
Closes #18129
2022-04-28 17:15:29 +02:00
Claire 9b4024a389
Add some missing indexes on foreign keys (#18157) 2022-04-28 17:15:11 +02:00
Eugen Rochko d55154819e
New Crowdin updates (#18074)
* New translations en.yml (German)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations simple_form.en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations simple_form.en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations en.json (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations simple_form.en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations simple_form.en.yml (Vietnamese)
[ci skip]

* New translations devise.en.yml (Vietnamese)
[ci skip]

* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.json (Scottish Gaelic)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.yml (Irish)
[ci skip]

* New translations en.yml (Irish)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations activerecord.en.yml (Catalan)
[ci skip]

* New translations devise.en.yml (Catalan)
[ci skip]

* New translations devise.en.yml (Catalan)
[ci skip]

* New translations devise.en.yml (Catalan)
[ci skip]

* New translations doorkeeper.en.yml (Catalan)
[ci skip]

* New translations devise.en.yml (Catalan)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (Hebrew)
[ci skip]

* New translations devise.en.yml (Catalan)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations devise.en.yml (Catalan)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations devise.en.yml (Catalan)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.yml (Welsh)
[ci skip]

* New translations simple_form.en.yml (Welsh)
[ci skip]

* New translations en.json (Welsh)
[ci skip]

* New translations en.json (Korean)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations en.json (Irish)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations en.json (Vietnamese)
[ci skip]

* New translations simple_form.en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.json (Turkish)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.json (German)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.json (Korean)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.json (Korean)
[ci skip]

* New translations simple_form.en.yml (Korean)
[ci skip]

* New translations doorkeeper.en.yml (Korean)
[ci skip]

* New translations en.json (Slovak)
[ci skip]

* New translations en.yml (Scottish Gaelic)
[ci skip]

* New translations en.json (Scottish Gaelic)
[ci skip]

* New translations simple_form.en.yml (Scottish Gaelic)
[ci skip]

* New translations activerecord.en.yml (Scottish Gaelic)
[ci skip]

* New translations devise.en.yml (Scottish Gaelic)
[ci skip]

* New translations doorkeeper.en.yml (Scottish Gaelic)
[ci skip]

* New translations en.json (Korean)
[ci skip]

* New translations en.json (Icelandic)
[ci skip]

* New translations en.json (Icelandic)
[ci skip]

* New translations en.json (Icelandic)
[ci skip]

* New translations en.json (Sorani (Kurdish))
[ci skip]

* New translations en.json (Sorani (Kurdish))
[ci skip]

* New translations en.json (Sorani (Kurdish))
[ci skip]

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-04-28 14:34:28 +09:00
dependabot[bot] bf75fba794
Bump sass from 1.50.0 to 1.50.1 (#18089)
Bumps [sass](https://github.com/sass/dart-sass) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.50.0...1.50.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-27 09:17:44 +09:00
dependabot[bot] bbe97548c2
Bump npmlog from 6.0.1 to 6.0.2 (#18086)
Bumps [npmlog](https://github.com/npm/npmlog) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/npmlog/releases)
- [Changelog](https://github.com/npm/npmlog/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/npmlog/compare/v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: npmlog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-27 09:17:03 +09:00
dependabot[bot] b5d2c91d4a
Bump express from 4.17.3 to 4.18.0 (#18088)
Bumps [express](https://github.com/expressjs/express) from 4.17.3 to 4.18.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.17.3...4.18.0)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-27 09:16:18 +09:00
dependabot[bot] 4bd82e15fb
Bump aws-sdk-s3 from 1.113.0 to 1.113.1 (#18094)
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.113.0 to 1.113.1.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-27 09:13:52 +09:00
dependabot[bot] 7598e0cd1f
Bump sidekiq-unique-jobs from 7.1.19 to 7.1.21 (#18085)
Bumps [sidekiq-unique-jobs](https://github.com/mhenrixon/sidekiq-unique-jobs) from 7.1.19 to 7.1.21.
- [Release notes](https://github.com/mhenrixon/sidekiq-unique-jobs/releases)
- [Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.1.19...v7.1.21)

---
updated-dependencies:
- dependency-name: sidekiq-unique-jobs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-27 09:12:55 +09:00
Eugen Rochko b93e2ae0a4
Fix n+1 query on feed merge and populate operations (#18111) 2022-04-26 22:06:31 +02:00
Claire b9197486e5
Fix UnmergeWorker being exceptionally slow in some conditions (#18110) 2022-04-26 21:48:36 +02:00
Claire 0360135d4d
Fix PeerTube videos appearing with an erroneous “Edited at” marker (#18100)
* Fix PeerTube videos appearing with an erroneous “Edited at” marker

PeerTube videos have an `updated` field equal to `published`.
When processing an incoming activity that has the same value for `updated` and
`published`, assume this doesn't represent an actual edit.

* Please CodeClimate
2022-04-26 21:25:26 +02:00
Claire 33cd80d69c
Fix instance actor being incorrectly created when running migrations (#18109)
* Add migration test about instance actor key

* Fix old migration

* Work around incorrect database state
2022-04-26 21:22:09 +02:00
Eugen Rochko f47a9ddc9f
New Crowdin updates (#18062)
* New translations en.yml (Korean)

* New translations en.yml (Portuguese)

* New translations en.yml (Hungarian)

* New translations en.yml (Armenian)

* New translations en.yml (Georgian)

* New translations en.yml (Lithuanian)

* New translations en.yml (Macedonian)

* New translations en.yml (Dutch)

* New translations en.yml (Norwegian)

* New translations en.yml (Punjabi)

* New translations en.yml (Polish)

* New translations en.yml (Albanian)

* New translations en.yml (Basque)

* New translations en.yml (Serbian (Cyrillic))

* New translations en.yml (Turkish)

* New translations en.yml (Ukrainian)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Urdu (Pakistan))

* New translations en.yml (Icelandic)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Indonesian)

* New translations en.yml (Tamil)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Finnish)

* New translations en.yml (Greek)

* New translations en.yml (Galician)

* New translations en.yml (Slovak)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Swedish)

* New translations en.yml (Arabic)

* New translations en.yml (French)

* New translations en.yml (Spanish)

* New translations en.yml (Catalan)

* New translations en.yml (Hebrew)

* New translations en.yml (Italian)

* New translations en.yml (Japanese)

* New translations en.yml (Russian)

* New translations en.yml (Slovenian)

* New translations en.yml (German)

* New translations en.yml (Vietnamese)

* New translations en.yml (Thai)

* New translations en.yml (Scottish Gaelic)

* New translations en.yml (Occitan)

* New translations en.yml (Persian)

* New translations en.yml (Romanian)

* New translations en.yml (Afrikaans)

* New translations en.yml (Bulgarian)

* New translations en.yml (Czech)

* New translations en.yml (Danish)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Bengali)

* New translations en.yml (Sinhala)

* New translations en.yml (Silesian)

* New translations en.yml (Taigi)

* New translations en.yml (Ido)

* New translations en.yml (Kabyle)

* New translations en.yml (Sanskrit)

* New translations en.yml (Sardinian)

* New translations en.yml (Corsican)

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Serbian (Latin))

* New translations en.yml (Asturian)

* New translations en.yml (Kannada)

* New translations en.yml (Cornish)

* New translations en.yml (Breton)

* New translations en.yml (Marathi)

* New translations en.yml (Malayalam)

* New translations en.yml (Tatar)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Uyghur)

* New translations en.yml (Esperanto)

* New translations en.yml (Welsh)

* New translations en.yml (Telugu)

* New translations en.yml (Malay)

* New translations en.yml (Hindi)

* New translations en.yml (Latvian)

* New translations en.yml (Estonian)

* New translations en.yml (Kazakh)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Croatian)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Catalan)

* New translations en.yml (Japanese)

* New translations en.json (Catalan)

* New translations en.yml (Greek)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Turkish)

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Latvian)

* New translations en.yml (Czech)

* New translations en.yml (Russian)

* New translations en.yml (Czech)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Korean)

* New translations en.yml (Vietnamese)

* New translations en.yml (Catalan)

* New translations en.yml (French)

* New translations en.yml (Spanish)

* New translations en.yml (Galician)

* New translations en.yml (Icelandic)

* New translations en.yml (Italian)

* New translations en.yml (Hungarian)

* New translations en.yml (Thai)

* New translations en.json (Irish)

* New translations en.yml (Irish)

* New translations simple_form.en.yml (Irish)

* New translations activerecord.en.yml (Irish)

* New translations devise.en.yml (Irish)

* New translations doorkeeper.en.yml (Irish)

* New translations simple_form.en.yml (Turkish)

* New translations en.yml (Vietnamese)

* New translations en.yml (Vietnamese)

* New translations en.yml (Indonesian)

* New translations en.yml (Ukrainian)

* New translations en.yml (Thai)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.json (Irish)

* New translations en.yml (Vietnamese)

* New translations en.yml (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.yml (Arabic)

* New translations en.json (Arabic)

* New translations doorkeeper.en.yml (Arabic)

* New translations en.yml (Turkish)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-04-24 06:33:26 +09:00
Claire 8ffa96b059
Fix web push notifications containing HTML entities (#18071) 2022-04-23 21:47:43 +02:00
Jeong Arm ea38327816
Let votes statuses are also searchable (#18070) 2022-04-23 21:47:27 +02:00
Yamagishi Kazutoshi 4884e0ca41
Add missing locale (#18061) 2022-04-21 20:26:10 +02:00
Eugen Rochko ea0633e131
New Crowdin updates (#18032)
* New translations en.json (Vietnamese)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Japanese)

* New translations en.yml (French)

* New translations en.json (Asturian)

* New translations en.yml (Asturian)

* New translations en.json (Asturian)

* New translations en.yml (Asturian)

* New translations simple_form.en.yml (Asturian)

* New translations simple_form.en.yml (Asturian)

* New translations en.yml (Turkish)

* New translations en.yml (German)

* New translations simple_form.en.yml (German)

* New translations en.json (Vietnamese)

* New translations en.json (Turkish)

* New translations simple_form.en.yml (Turkish)

* New translations en.yml (Korean)

* New translations en.json (Korean)

* New translations en.json (Turkish)

* New translations en.json (Turkish)

* New translations en.yml (Turkish)

* New translations en.json (Turkish)

* New translations simple_form.en.yml (Turkish)

* New translations devise.en.yml (Turkish)

* New translations en.yml (Catalan)

* New translations en.json (Catalan)

* New translations en.yml (German)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations doorkeeper.en.yml (Japanese)

* New translations en.yml (French)

* New translations en.json (Japanese)

* New translations en.yml (Japanese)

* New translations doorkeeper.en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Catalan)

* New translations en.yml (Catalan)

* New translations en.json (Catalan)

* New translations en.yml (French)

* New translations en.yml (Catalan)

* New translations en.yml (Vietnamese)

* New translations simple_form.en.yml (Catalan)

* New translations en.json (Vietnamese)

* New translations doorkeeper.en.yml (Catalan)

* New translations en.yml (Catalan)

* New translations en.json (Catalan)

* New translations simple_form.en.yml (Catalan)

* New translations simple_form.en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations en.yml (Portuguese)

* New translations en.yml (Hungarian)

* New translations en.yml (Armenian)

* New translations en.yml (Georgian)

* New translations en.yml (Lithuanian)

* New translations en.yml (Macedonian)

* New translations en.yml (Dutch)

* New translations en.yml (Norwegian)

* New translations en.yml (Punjabi)

* New translations en.yml (Polish)

* New translations en.yml (Albanian)

* New translations en.yml (Basque)

* New translations en.yml (Serbian (Cyrillic))

* New translations en.yml (Ukrainian)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Urdu (Pakistan))

* New translations en.yml (Icelandic)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Indonesian)

* New translations en.yml (Tamil)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Finnish)

* New translations en.yml (Greek)

* New translations en.yml (Galician)

* New translations en.yml (Slovak)

* New translations en.yml (Swedish)

* New translations en.yml (Arabic)

* New translations en.yml (Spanish)

* New translations en.yml (Hebrew)

* New translations en.yml (Italian)

* New translations en.yml (Japanese)

* New translations en.yml (Russian)

* New translations en.yml (Slovenian)

* New translations en.yml (Thai)

* New translations en.yml (Persian)

* New translations en.yml (Romanian)

* New translations en.yml (Afrikaans)

* New translations en.yml (Bulgarian)

* New translations en.yml (Czech)

* New translations en.yml (Danish)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Scottish Gaelic)

* New translations en.yml (Occitan)

* New translations en.yml (Bengali)

* New translations en.yml (Malay)

* New translations en.yml (Marathi)

* New translations en.yml (Uyghur)

* New translations en.yml (Esperanto)

* New translations en.yml (Telugu)

* New translations en.yml (Welsh)

* New translations en.yml (Hindi)

* New translations en.yml (Latvian)

* New translations en.yml (Estonian)

* New translations en.yml (Kazakh)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Croatian)

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Silesian)

* New translations en.yml (Taigi)

* New translations en.yml (Ido)

* New translations en.yml (Kabyle)

* New translations en.yml (Sanskrit)

* New translations en.yml (Sardinian)

* New translations en.yml (Corsican)

* New translations en.yml (Breton)

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Serbian (Latin))

* New translations en.yml (Kannada)

* New translations en.yml (Cornish)

* New translations en.yml (Sinhala)

* New translations en.yml (Malayalam)

* New translations en.yml (Tatar)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Standard Moroccan Tamazight)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-04-22 03:21:08 +09:00
dependabot[bot] 2051786c9e
Bump @testing-library/react from 12.1.4 to 12.1.5 (#18054)
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 12.1.4 to 12.1.5.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v12.1.4...v12.1.5)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-22 02:33:45 +09:00
dependabot[bot] 36f0eac09c
Bump rack-attack from 6.6.0 to 6.6.1 (#18053)
Bumps [rack-attack](https://github.com/rack/rack-attack) from 6.6.0 to 6.6.1.
- [Release notes](https://github.com/rack/rack-attack/releases)
- [Changelog](https://github.com/rack/rack-attack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rack/rack-attack/compare/v6.6.0...v6.6.1)

---
updated-dependencies:
- dependency-name: rack-attack
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-22 02:33:26 +09:00
dependabot[bot] 64dde6541b
Bump sidekiq-scheduler from 3.1.1 to 3.2.0 (#18052)
Bumps [sidekiq-scheduler](https://github.com/moove-it/sidekiq-scheduler) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/moove-it/sidekiq-scheduler/releases)
- [Changelog](https://github.com/moove-it/sidekiq-scheduler/blob/v3.2.0/CHANGELOG.md)
- [Commits](https://github.com/moove-it/sidekiq-scheduler/compare/v3.1.1...v3.2.0)

---
updated-dependencies:
- dependency-name: sidekiq-scheduler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-22 02:33:04 +09:00
Yamagishi Kazutoshi 5781d1db84
Fix parsing `TRUSTED_PROXY_IP` (#18051) 2022-04-19 08:11:58 +01:00
dependabot[bot] 50a088fd77
Bump async from 2.6.3 to 2.6.4 (#18040)
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-16 15:40:26 +09:00
dependabot[bot] a294981c59
Bump rubocop from 1.26.1 to 1.27.0 (#18019)
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.26.1 to 1.27.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.26.1...v1.27.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-16 15:28:04 +09:00
dependabot[bot] f1b8150db4
Bump react-select from 5.2.2 to 5.3.0 (#18010)
Bumps [react-select](https://github.com/JedWatson/react-select) from 5.2.2 to 5.3.0.
- [Release notes](https://github.com/JedWatson/react-select/releases)
- [Changelog](https://github.com/JedWatson/react-select/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/JedWatson/react-select/compare/react-select@5.2.2...react-select@5.3.0)

---
updated-dependencies:
- dependency-name: react-select
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-16 15:27:43 +09:00
dependabot[bot] a3c8b02258
Bump sass from 1.49.11 to 1.50.0 (#18016)
Bumps [sass](https://github.com/sass/dart-sass) from 1.49.11 to 1.50.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.49.11...1.50.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-16 15:27:17 +09:00
dependabot[bot] c2fda997d1
Bump bootsnap from 1.10.3 to 1.11.1 (#17778)
Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.10.3 to 1.11.1.
- [Release notes](https://github.com/Shopify/bootsnap/releases)
- [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Shopify/bootsnap/compare/v1.10.3...v1.11.1)

---
updated-dependencies:
- dependency-name: bootsnap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 21:33:11 +09:00
dependabot[bot] 822a7fecc6
Bump eslint-plugin-import from 2.25.4 to 2.26.0 (#18011)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.25.4 to 2.26.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.25.4...v2.26.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 21:25:13 +09:00
dependabot[bot] 12be6a071f
Bump @testing-library/jest-dom from 5.16.3 to 5.16.4 (#18022)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.16.3 to 5.16.4.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.16.3...v5.16.4)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 21:22:07 +09:00
dependabot[bot] 50c20546a4
Bump brakeman from 5.2.1 to 5.2.2 (#18021)
Bumps [brakeman](https://github.com/presidentbeef/brakeman) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/presidentbeef/brakeman/releases)
- [Changelog](https://github.com/presidentbeef/brakeman/blob/main/CHANGES.md)
- [Commits](https://github.com/presidentbeef/brakeman/compare/v5.2.1...v5.2.2)

---
updated-dependencies:
- dependency-name: brakeman
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 21:21:47 +09:00
dependabot[bot] 82d91dfce2
Bump sidekiq-unique-jobs from 7.1.16 to 7.1.19 (#18018)
Bumps [sidekiq-unique-jobs](https://github.com/mhenrixon/sidekiq-unique-jobs) from 7.1.16 to 7.1.19.
- [Release notes](https://github.com/mhenrixon/sidekiq-unique-jobs/releases)
- [Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.1.16...v7.1.19)

---
updated-dependencies:
- dependency-name: sidekiq-unique-jobs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 21:21:05 +09:00
dependabot[bot] b0fe837069
Bump @babel/runtime from 7.17.8 to 7.17.9 (#18012)
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.17.8 to 7.17.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.9/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 21:20:27 +09:00
dependabot[bot] 072f1e4898
Bump @babel/plugin-proposal-decorators from 7.17.8 to 7.17.9 (#18020)
Bumps [@babel/plugin-proposal-decorators](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-decorators) from 7.17.8 to 7.17.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.9/packages/babel-plugin-proposal-decorators)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-decorators"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 21:20:01 +09:00
dependabot[bot] 9b7387d917
Bump i18n-tasks from 1.0.8 to 1.0.9 (#18014) 2022-04-14 19:31:20 +09:00
dependabot[bot] ab54d91fe3
Bump @babel/core from 7.17.8 to 7.17.9 (#18015) 2022-04-14 19:30:54 +09:00
dependabot[bot] daa8b9e0c1
Bump yargs from 17.4.0 to 17.4.1 (#18017) 2022-04-14 19:29:52 +09:00
Eugen Rochko 07994cf4f6
New Crowdin updates (#17995)
* New translations en.json (Catalan)

* New translations en.yml (Persian)

* New translations en.yml (Romanian)

* New translations en.yml (Afrikaans)

* New translations en.yml (Bulgarian)

* New translations en.yml (Czech)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Sanskrit)

* New translations en.yml (Asturian)

* New translations en.yml (Serbian (Latin))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Corsican)

* New translations en.yml (Sardinian)

* New translations en.yml (Kabyle)

* New translations en.yml (Cornish)

* New translations en.yml (Ido)

* New translations en.yml (Taigi)

* New translations en.yml (Silesian)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.json (Czech)

* New translations en.json (Hungarian)

* New translations en.yml (Kannada)

* New translations en.yml (Sinhala)

* New translations en.yml (Bengali)

* New translations en.yml (Hindi)

* New translations en.yml (Marathi)

* New translations en.yml (Croatian)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Kazakh)

* New translations en.yml (Estonian)

* New translations en.yml (Latvian)

* New translations en.yml (Malay)

* New translations en.yml (Breton)

* New translations en.yml (Telugu)

* New translations en.yml (Welsh)

* New translations en.yml (Esperanto)

* New translations en.yml (Uyghur)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Tatar)

* New translations en.yml (Malayalam)

* New translations en.json (Icelandic)

* New translations en.json (Vietnamese)

* New translations en.yml (Korean)

* New translations en.yml (Catalan)

* New translations en.yml (Czech)

* New translations en.yml (Icelandic)

* New translations en.json (Korean)

* New translations en.json (Polish)

* New translations en.yml (Albanian)

* New translations en.json (Albanian)

* New translations en.yml (Vietnamese)

* New translations en.yml (Chinese Traditional)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Russian)

* New translations en.yml (Russian)

* New translations en.json (Russian)

* New translations en.json (Latvian)

* New translations en.yml (Spanish, Argentina)

* New translations en.json (Spanish, Argentina)

* New translations en.yml (Danish)

* New translations en.yml (Latvian)

* New translations en.yml (Spanish)

* New translations en.json (Spanish)

* New translations simple_form.en.yml (Catalan)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Portuguese)

* New translations simple_form.en.yml (Russian)

* New translations simple_form.en.yml (Slovak)

* New translations simple_form.en.yml (Albanian)

* New translations simple_form.en.yml (Serbian (Cyrillic))

* New translations simple_form.en.yml (Swedish)

* New translations simple_form.en.yml (Turkish)

* New translations simple_form.en.yml (Ukrainian)

* New translations simple_form.en.yml (Dutch)

* New translations simple_form.en.yml (Vietnamese)

* New translations simple_form.en.yml (Galician)

* New translations simple_form.en.yml (Icelandic)

* New translations simple_form.en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Indonesian)

* New translations simple_form.en.yml (Persian)

* New translations simple_form.en.yml (Tamil)

* New translations simple_form.en.yml (Spanish, Argentina)

* New translations simple_form.en.yml (Spanish, Mexico)

* New translations simple_form.en.yml (Bengali)

* New translations simple_form.en.yml (Norwegian)

* New translations simple_form.en.yml (Slovenian)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations simple_form.en.yml (Thai)

* New translations simple_form.en.yml (Polish)

* New translations simple_form.en.yml (Romanian)

* New translations simple_form.en.yml (French)

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Arabic)

* New translations simple_form.en.yml (Bulgarian)

* New translations simple_form.en.yml (Czech)

* New translations simple_form.en.yml (German)

* New translations simple_form.en.yml (Greek)

* New translations simple_form.en.yml (Basque)

* New translations simple_form.en.yml (Finnish)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Hungarian)

* New translations simple_form.en.yml (Armenian)

* New translations simple_form.en.yml (Italian)

* New translations simple_form.en.yml (Japanese)

* New translations simple_form.en.yml (Georgian)

* New translations simple_form.en.yml (Korean)

* New translations simple_form.en.yml (Croatian)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Kabyle)

* New translations simple_form.en.yml (Sardinian)

* New translations simple_form.en.yml (Corsican)

* New translations simple_form.en.yml (Sorani (Kurdish))

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Serbian (Latin))

* New translations simple_form.en.yml (Occitan)

* New translations simple_form.en.yml (Asturian)

* New translations simple_form.en.yml (Scottish Gaelic)

* New translations simple_form.en.yml (Norwegian Nynorsk)

* New translations simple_form.en.yml (Sinhala)

* New translations simple_form.en.yml (Breton)

* New translations simple_form.en.yml (Malayalam)

* New translations simple_form.en.yml (Tatar)

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)

* New translations simple_form.en.yml (Esperanto)

* New translations simple_form.en.yml (Welsh)

* New translations simple_form.en.yml (Latvian)

* New translations simple_form.en.yml (Estonian)

* New translations simple_form.en.yml (Kazakh)

* New translations simple_form.en.yml (Standard Moroccan Tamazight)

* New translations simple_form.en.yml (Czech)

* New translations simple_form.en.yml (Latvian)

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Czech)

* New translations simple_form.en.yml (Korean)

* New translations simple_form.en.yml (Russian)

* New translations simple_form.en.yml (Spanish, Argentina)

* New translations simple_form.en.yml (Polish)

* New translations en.json (Swedish)

* New translations en.yml (Italian)

* New translations en.json (Italian)

* New translations simple_form.en.yml (Italian)

* New translations simple_form.en.yml (Catalan)

* New translations en.yml (Portuguese)

* New translations en.json (Portuguese)

* New translations en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Portuguese)

* New translations simple_form.en.yml (Russian)

* New translations en.json (French)

* New translations simple_form.en.yml (French)

* New translations en.json (Polish)

* New translations en.json (Polish)

* New translations en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Arabic)

* New translations en.yml (Arabic)

* New translations simple_form.en.yml (Arabic)

* New translations doorkeeper.en.yml (Arabic)

* New translations en.yml (Arabic)

* New translations doorkeeper.en.yml (Arabic)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Turkish)

* New translations en.json (Turkish)

* New translations simple_form.en.yml (Turkish)

* New translations en.yml (Czech)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Greek)

* New translations en.json (Greek)

* New translations simple_form.en.yml (Greek)

* New translations simple_form.en.yml (Icelandic)

* New translations en.yml (Czech)

* New translations en.yml (Ukrainian)

* New translations en.yml (Ukrainian)

* New translations en.json (Ukrainian)

* New translations simple_form.en.yml (Ukrainian)

* New translations en.yml (Ukrainian)

* New translations en.json (Ukrainian)

* New translations doorkeeper.en.yml (Ukrainian)

* New translations simple_form.en.yml (Danish)

* New translations en.yml (Galician)

* New translations en.json (Galician)

* New translations simple_form.en.yml (Galician)

* New translations simple_form.en.yml (Vietnamese)

* New translations en.yml (German)

* New translations en.json (German)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.json (French)

* New translations en.yml (Indonesian)

* New translations en.json (Indonesian)

* New translations en.yml (Indonesian)

* New translations simple_form.en.yml (Indonesian)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations simple_form.en.yml (Thai)

* New translations simple_form.en.yml (Thai)

* New translations en.yml (Armenian)

* New translations en.json (Armenian)

* New translations en.yml (Italian)

* New translations en.json (Italian)

* New translations en.yml (Catalan)

* New translations en.json (Catalan)

* New translations en.yml (Spanish, Argentina)

* New translations en.json (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Hungarian)

* New translations en.yml (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Polish)

* New translations en.json (Polish)

* New translations en.json (Polish)

* New translations en.json (Polish)

* New translations doorkeeper.en.yml (Polish)

* New translations doorkeeper.en.yml (Polish)

* New translations en.yml (Polish)

* New translations en.yml (Polish)

* New translations en.yml (Polish)

* New translations en.yml (Polish)

* New translations simple_form.en.yml (Polish)

* New translations en.json (Polish)

* New translations en.json (Polish)

* New translations en.json (Catalan)

* New translations en.json (Vietnamese)

* New translations en.yml (Vietnamese)

* New translations en.json (Vietnamese)

* New translations en.json (Vietnamese)

* New translations en.yml (Vietnamese)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-04-14 02:52:53 +09:00
Jeong Arm 1de748bf5e
Fix FetchFeaturedCollectionService (#18030) 2022-04-13 13:25:42 +02:00
dependabot[bot] 85b34a8d62
Bump nokogiri from 1.13.3 to 1.13.4 (#18025)
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.3 to 1.13.4.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.13.4/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.3...v1.13.4)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 21:20:40 +09:00
Alexandra Catalina 331cca4015
chore(deps): update tootsuite/mastodon docker tag to v3.5.1 (#18023)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-12 03:26:50 +02:00
dogelover911 4c9949560d
FeedManager: skip account when target_account's last status is too old (#18009)
Co-authored-by: dogelover911 <dogelover911@localhost>
2022-04-11 21:17:03 +02:00
Claire dc50347247
Fix crash in alias settings page (#18004) 2022-04-09 20:11:06 +02:00
484 changed files with 15432 additions and 6581 deletions

7
.browserslistrc Normal file
View File

@ -0,0 +1,7 @@
[production]
defaults
not IE 11
not dead
[development]
supports es6-module

View File

@ -11,7 +11,8 @@
"extensions": [
"EditorConfig.EditorConfig",
"dbaeumer.vscode-eslint",
"rebornix.Ruby"
"rebornix.Ruby",
"webben.browserslist"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.

View File

@ -3,6 +3,105 @@ Changelog
All notable changes to this project will be documented in this file.
## [3.5.3] - 2022-05-26
### Added
- **Add language dropdown to compose form in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/18420), [ykzts](https://github.com/mastodon/mastodon/pull/18460))
- **Add warning for limited accounts in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/18344))
- Add `limited` attribute to accounts in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/18344))
### Changed
- **Change RSS feeds** ([Gargron](https://github.com/mastodon/mastodon/pull/18356), [tribela](https://github.com/mastodon/mastodon/pull/18406))
- Titles are now date and time of post
- Bodies now render all content faithfully, including polls and emojis
- All media attachments are included with Media RSS
- Change "dangerous" to "sensitive" in privacy policy and web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18515))
- Change unconfirmed accounts to not be visible in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17530))
- Change `tootctl search deploy` to improve performance ([Gargron](https://github.com/mastodon/mastodon/pull/18463), [Gargron](https://github.com/mastodon/mastodon/pull/18514))
- Change search indexing to use batches to minimize resource usage ([Gargron](https://github.com/mastodon/mastodon/pull/18451))
### Fixed
- Fix follower and other counters being able to go negative ([Gargron](https://github.com/mastodon/mastodon/pull/18517))
- Fix unnecessary query on when creating a status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17901))
- Fix warning an account outside of a report closing all reports for that account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18387))
- Fix error when resolving a link that redirects to a local post ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18314))
- Fix preferred posting language returning unusable value in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/18428))
- Fix race condition error when external status is reblogged ([ykzts](https://github.com/mastodon/mastodon/pull/18424))
- Fix missing string for appeal validation error ([Gargron](https://github.com/mastodon/mastodon/pull/18410))
- Fix block/mute lists showing a follow button in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18364))
- Fix Redis configuration not being changed by `mastodon:setup` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18383))
- Fix streaming notifications not using quick filter logic in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18316))
- Fix ambiguous wording on appeal actions in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18328))
- Fix floating action button obscuring last element in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18332))
- Fix account warnings not being recorded in audit log ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18338))
- Fix leftover icons for direct visibility statuses ([Steffo99](https://github.com/mastodon/mastodon/pull/18305))
- Fix link verification requiring case sensitivity on links ([sgolemon](https://github.com/mastodon/mastodon/pull/18320))
- Fix embeds not setting their height correctly ([rinsuki](https://github.com/mastodon/mastodon/pull/18301))
### Security
- Fix concurrent unfollowing decrementing follower count more than once ([Gargron](https://github.com/mastodon/mastodon/pull/18527))
- Fix being able to appeal a strike unlimited times ([Gargron](https://github.com/mastodon/mastodon/pull/18529))
- Fix being able to report otherwise inaccessible statuses ([Gargron](https://github.com/mastodon/mastodon/pull/18528))
- Fix empty votes arbitrarily increasing voters count in polls ([Gargron](https://github.com/mastodon/mastodon/pull/18526))
- Fix moderator identity leak when approving appeal of sensitive marked statuses ([Gargron](https://github.com/mastodon/mastodon/pull/18525))
- Fix suspended users being able to access APIs that don't require a user ([Gargron](https://github.com/mastodon/mastodon/pull/18524))
- Fix confirmation redirect to app without `Location` header ([Gargron](https://github.com/mastodon/mastodon/pull/18523))
## [3.5.2] - 2022-05-04
### Added
- Add warning on direct messages screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18289))
- We already had a warning when composing a direct message, it has now been reworded to be more clear
- Same warning is now displayed when viewing sent and received direct messages
- Add ability to set approval-based registration through tootctl ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18248))
- Add pre-filling of domain from search filter in domain allow/block admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18172))
## Changed
- Change name of “Direct” visibility to “Mentioned people only” in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18146), [Gargron](https://github.com/mastodon/mastodon/pull/18289), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18291))
- Change trending posts to only show one post from each account ([Gargron](https://github.com/mastodon/mastodon/pull/18181))
- Change half-life of trending posts from 6 hours to 2 hours ([Gargron](https://github.com/mastodon/mastodon/pull/18182))
- Change full-text search feature to also include polls you have voted in ([tribela](https://github.com/mastodon/mastodon/pull/18070))
- Change Redis from using one connection per process, to using a connection pool ([Gargron](https://github.com/mastodon/mastodon/pull/18135), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18160), [Gargron](https://github.com/mastodon/mastodon/pull/18171))
- Different threads no longer have to wait on a mutex over a single connection
- However, this does increase the number of Redis connections by a fair amount
- We are planning to optimize Redis use so that the pool can be made smaller in the future
## Removed
- Remove IP matching from e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/18190))
- The IPs of the blocked e-mail domain or its MX records are no longer checked
- Previously it was too easy to block e-mail providers by mistake
## Fixed
- Fix compatibility with Friendica's pinned posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18254), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18260))
- Fix error when looking up handle with surrounding spaces in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18225))
- Fix double render error when authorizing interaction ([Gargron](https://github.com/mastodon/mastodon/pull/18203))
- Fix error when a post references an invalid media attachment ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18211))
- Fix error when trying to revoke OAuth token without supplying a token ([Gargron](https://github.com/mastodon/mastodon/pull/18205))
- Fix error caused by missing subject in Webfinger response ([Gargron](https://github.com/mastodon/mastodon/pull/18204))
- Fix error on attempting to delete an account moderation note ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18196))
- Fix light-mode emoji borders in web UI ([Gaelan](https://github.com/mastodon/mastodon/pull/18131))
- Fix being able to scroll away from the loading bar in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18170))
- Fix error when a bookmark or favorite has been reported and deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18174))
- Fix being offered empty “Server rules violation” report option in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18165))
- Fix temporary network errors preventing from authorizing interactions with remote accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18161))
- Fix incorrect link in "new trending tags" email ([cdzombak](https://github.com/mastodon/mastodon/pull/18156))
- Fix missing indexes on some foreign keys ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18157))
- Fix n+1 query on feed merge and populate operations ([Gargron](https://github.com/mastodon/mastodon/pull/18111))
- Fix feed unmerge worker being exceptionally slow in some conditions ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18110))
- Fix PeerTube videos appearing with an erroneous “Edited at” marker ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18100))
- Fix instance actor being created incorrectly when running through migrations ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18109))
- Fix web push notifications containing HTML entities ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18071))
- Fix inconsistent parsing of `TRUSTED_PROXY_IP` ([ykzts](https://github.com/mastodon/mastodon/pull/18051))
- Fix error when fetching pinned posts ([tribela](https://github.com/mastodon/mastodon/pull/18030))
- Fix wrong optimization in feed populate operation ([dogelover911](https://github.com/mastodon/mastodon/pull/18009))
- Fix error in alias settings page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18004))
## [3.5.1] - 2022-04-08
### Added

20
Gemfile
View File

@ -1,13 +1,13 @@
# frozen_string_literal: true
source 'https://rubygems.org'
ruby '>= 2.5.0', '< 3.1.0'
ruby '>= 2.6.0', '< 3.1.0'
gem 'pkg-config', '~> 1.4'
gem 'rexml', '~> 3.2'
gem 'puma', '~> 5.6'
gem 'rails', '~> 6.1.5'
gem 'rails', '~> 6.1.6'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.2'
gem 'rack', '~> 2.2.3'
@ -18,7 +18,7 @@ gem 'makara', '~> 0.5'
gem 'pghero', '~> 2.8'
gem 'dotenv-rails', '~> 2.7'
gem 'aws-sdk-s3', '~> 1.113', require: false
gem 'aws-sdk-s3', '~> 1.114', require: false
gem 'fog-core', '<= 2.1.0'
gem 'fog-openstack', '~> 0.3', require: false
gem 'kt-paperclip', '~> 7.1'
@ -26,7 +26,7 @@ gem 'blurhash', '~> 0.1'
gem 'active_model_serializers', '~> 0.10'
gem 'addressable', '~> 2.8'
gem 'bootsnap', '~> 1.10.3', require: false
gem 'bootsnap', '~> 1.11.1', require: false
gem 'browser'
gem 'charlock_holmes', '~> 0.7.7'
gem 'chewy', '~> 7.2'
@ -79,13 +79,13 @@ gem 'ruby-progressbar', '~> 1.11'
gem 'sanitize', '~> 6.0'
gem 'scenic', '~> 1.6'
gem 'sidekiq', '~> 6.4'
gem 'sidekiq-scheduler', '~> 3.1'
gem 'sidekiq-scheduler', '~> 4.0'
gem 'sidekiq-unique-jobs', '~> 7.1'
gem 'sidekiq-bulk', '~>0.2.0'
gem 'sidekiq-bulk', '~> 0.2.0'
gem 'simple-navigation', '~> 4.3'
gem 'simple_form', '~> 5.1'
gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie'
gem 'stoplight', '~> 2.2.1'
gem 'stoplight', '~> 3.0.0'
gem 'strong_migrations', '~> 0.7'
gem 'tty-prompt', '~> 0.23', require: false
gem 'twitter-text', '~> 3.1.0'
@ -112,9 +112,9 @@ group :production, :test do
end
group :test do
gem 'capybara', '~> 3.36'
gem 'capybara', '~> 3.37'
gem 'climate_control', '~> 0.2'
gem 'faker', '~> 2.20'
gem 'faker', '~> 2.21'
gem 'microformats', '~> 4.2'
gem 'rails-controller-testing', '~> 1.0'
gem 'rspec-sidekiq', '~> 3.1'
@ -132,7 +132,7 @@ group :development do
gem 'letter_opener', '~> 1.8'
gem 'letter_opener_web', '~> 2.0'
gem 'memory_profiler'
gem 'rubocop', '~> 1.26', require: false
gem 'rubocop', '~> 1.29', require: false
gem 'rubocop-rails', '~> 2.14', require: false
gem 'brakeman', '~> 5.2', require: false
gem 'bundler-audit', '~> 0.9', require: false

View File

@ -1,40 +1,40 @@
GEM
remote: https://rubygems.org/
specs:
actioncable (6.1.5)
actionpack (= 6.1.5)
activesupport (= 6.1.5)
actioncable (6.1.6)
actionpack (= 6.1.6)
activesupport (= 6.1.6)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (6.1.5)
actionpack (= 6.1.5)
activejob (= 6.1.5)
activerecord (= 6.1.5)
activestorage (= 6.1.5)
activesupport (= 6.1.5)
actionmailbox (6.1.6)
actionpack (= 6.1.6)
activejob (= 6.1.6)
activerecord (= 6.1.6)
activestorage (= 6.1.6)
activesupport (= 6.1.6)
mail (>= 2.7.1)
actionmailer (6.1.5)
actionpack (= 6.1.5)
actionview (= 6.1.5)
activejob (= 6.1.5)
activesupport (= 6.1.5)
actionmailer (6.1.6)
actionpack (= 6.1.6)
actionview (= 6.1.6)
activejob (= 6.1.6)
activesupport (= 6.1.6)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (6.1.5)
actionview (= 6.1.5)
activesupport (= 6.1.5)
actionpack (6.1.6)
actionview (= 6.1.6)
activesupport (= 6.1.6)
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.5)
actionpack (= 6.1.5)
activerecord (= 6.1.5)
activestorage (= 6.1.5)
activesupport (= 6.1.5)
actiontext (6.1.6)
actionpack (= 6.1.6)
activerecord (= 6.1.6)
activestorage (= 6.1.6)
activesupport (= 6.1.6)
nokogiri (>= 1.8.5)
actionview (6.1.5)
activesupport (= 6.1.5)
actionview (6.1.6)
activesupport (= 6.1.6)
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.5)
activesupport (= 6.1.5)
activejob (6.1.6)
activesupport (= 6.1.6)
globalid (>= 0.3.6)
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)
activemodel (6.1.6)
activesupport (= 6.1.6)
activerecord (6.1.6)
activemodel (= 6.1.6)
activesupport (= 6.1.6)
activestorage (6.1.6)
actionpack (= 6.1.6)
activejob (= 6.1.6)
activerecord (= 6.1.6)
activesupport (= 6.1.6)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (6.1.5)
activesupport (6.1.6)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@ -81,20 +81,20 @@ GEM
attr_required (1.0.1)
awrence (1.1.1)
aws-eventstream (1.2.0)
aws-partitions (1.558.0)
aws-sdk-core (3.127.0)
aws-partitions (1.587.0)
aws-sdk-core (3.130.2)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.55.0)
aws-sdk-kms (1.56.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.113.0)
aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.4.0)
aws-sigv4 (1.5.0)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.17)
better_errors (2.9.1)
@ -114,9 +114,9 @@ GEM
debug_inspector (>= 0.0.1)
blurhash (0.1.6)
ffi (~> 1.14)
bootsnap (1.10.3)
bootsnap (1.11.1)
msgpack (~> 1.2)
brakeman (5.2.1)
brakeman (5.2.3)
browser (4.2.0)
brpoplpush-redis_script (0.1.2)
concurrent-ruby (~> 1.0, >= 1.0.5)
@ -144,7 +144,7 @@ GEM
sshkit (~> 1.3)
capistrano-yarn (2.0.2)
capistrano (~> 3.0)
capybara (3.36.0)
capybara (3.37.1)
addressable
matrix
mini_mime (>= 0.1.3)
@ -203,7 +203,6 @@ GEM
dotenv-rails (2.7.6)
dotenv (= 2.7.6)
railties (>= 3.2)
e2mmap (0.1.0)
ed25519 (1.3.0)
elasticsearch (7.13.3)
elasticsearch-api (= 7.13.3)
@ -216,11 +215,11 @@ GEM
multi_json
encryptor (3.0.0)
erubi (1.10.0)
et-orbi (1.2.6)
et-orbi (1.2.7)
tzinfo
excon (0.76.0)
fabrication (2.28.0)
faker (2.20.0)
faker (2.21.0)
i18n (>= 1.8.11, < 2)
faraday (1.9.3)
faraday-em_http (~> 1.0)
@ -264,8 +263,8 @@ GEM
fog-json (>= 1.0)
ipaddress (>= 0.8)
formatador (0.2.5)
fugit (1.5.2)
et-orbi (~> 1.1, >= 1.1.8)
fugit (1.5.3)
et-orbi (~> 1, >= 1.2.7)
raabro (~> 1.4)
fuubar (2.5.1)
rspec-core (~> 3.0)
@ -307,7 +306,7 @@ GEM
rainbow (>= 2.0.0)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
i18n-tasks (1.0.8)
i18n-tasks (1.0.10)
activesupport (>= 4.0.2)
ast (>= 2.1.0)
better_html (~> 1.0)
@ -320,7 +319,7 @@ GEM
terminal-table (>= 1.5.1)
idn-ruby (0.1.4)
ipaddress (0.8.3)
jmespath (1.6.0)
jmespath (1.6.1)
json (2.5.1)
json-canonicalization (0.3.0)
json-jwt (1.13.0)
@ -375,7 +374,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.16.0)
loofah (2.18.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
@ -397,7 +396,7 @@ GEM
mini_mime (1.1.2)
mini_portile2 (2.8.0)
minitest (5.15.0)
msgpack (1.4.4)
msgpack (1.5.1)
multi_json (1.15.0)
multipart-post (2.1.1)
net-ldap (0.17.0)
@ -405,7 +404,7 @@ GEM
net-ssh (>= 2.6.5, < 7.0.0)
net-ssh (6.1.0)
nio4r (2.5.8)
nokogiri (1.13.3)
nokogiri (1.13.6)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nsa (0.2.8)
@ -442,13 +441,13 @@ GEM
orm_adapter (0.5.0)
ox (2.14.11)
parallel (1.22.1)
parser (3.1.1.0)
parser (3.1.2.0)
ast (~> 2.4.1)
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.3.5)
pghero (2.8.2)
pghero (2.8.3)
activerecord (>= 5)
pkg-config (1.4.7)
posix-spawn (0.3.15)
@ -468,7 +467,7 @@ GEM
pry (~> 0.13.0)
pry-rails (0.3.9)
pry (>= 0.10.4)
public_suffix (4.0.6)
public_suffix (4.0.7)
puma (5.6.4)
nio4r (~> 2.0)
pundit (2.2.0)
@ -476,7 +475,7 @@ GEM
raabro (1.4.0)
racc (1.6.0)
rack (2.2.3)
rack-attack (6.6.0)
rack-attack (6.6.1)
rack (>= 1.0, < 3)
rack-cors (1.1.1)
rack (>= 2.0.0)
@ -490,20 +489,20 @@ GEM
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
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)
rails (6.1.6)
actioncable (= 6.1.6)
actionmailbox (= 6.1.6)
actionmailer (= 6.1.6)
actionpack (= 6.1.6)
actiontext (= 6.1.6)
actionview (= 6.1.6)
activejob (= 6.1.6)
activemodel (= 6.1.6)
activerecord (= 6.1.6)
activestorage (= 6.1.6)
activesupport (= 6.1.6)
bundler (>= 1.15.0)
railties (= 6.1.5)
railties (= 6.1.6)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
@ -519,9 +518,9 @@ GEM
railties (>= 6.0.0, < 7)
rails-settings-cached (0.6.6)
rails (>= 4.2.0)
railties (6.1.5)
actionpack (= 6.1.5)
activesupport (= 6.1.5)
railties (6.1.6)
actionpack (= 6.1.6)
activesupport (= 6.1.6)
method_source
rake (>= 12.2)
thor (~> 1.0)
@ -534,7 +533,7 @@ GEM
redis (4.5.1)
redis-namespace (1.8.2)
redis (>= 3.0.4)
regexp_parser (2.2.1)
regexp_parser (2.4.0)
request_store (1.5.1)
rack (>= 1.4)
responders (3.0.1)
@ -552,10 +551,10 @@ GEM
rspec-expectations (3.11.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-mocks (3.11.0)
rspec-mocks (3.11.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-rails (5.1.1)
rspec-rails (5.1.2)
actionpack (>= 5.2)
activesupport (>= 5.2)
railties (>= 5.2)
@ -569,16 +568,16 @@ GEM
rspec-support (3.11.0)
rspec_junit_formatter (0.5.1)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.26.1)
rubocop (1.29.1)
parallel (~> 1.10)
parser (>= 3.1.0.0)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml
rubocop-ast (>= 1.16.0, < 2.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.17.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.16.0)
rubocop-ast (1.18.0)
parser (>= 3.1.1.0)
rubocop-rails (2.14.2)
activesupport (>= 4.2.0)
@ -601,20 +600,18 @@ GEM
railties (>= 4.0.0)
securecompare (1.0.0)
semantic_range (3.0.0)
sidekiq (6.4.1)
sidekiq (6.4.2)
connection_pool (>= 2.2.2)
rack (~> 2.0)
redis (>= 4.2.0)
sidekiq-bulk (0.2.0)
sidekiq
sidekiq-scheduler (3.1.1)
e2mmap
redis (>= 3, < 5)
sidekiq-scheduler (4.0.0)
redis (>= 4.2.0)
rufus-scheduler (~> 3.2)
sidekiq (>= 3)
thwait
sidekiq (>= 4)
tilt (>= 1.4.0)
sidekiq-unique-jobs (7.1.16)
sidekiq-unique-jobs (7.1.22)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
concurrent-ruby (~> 1.0, >= 1.0.5)
sidekiq (>= 5.0, < 8.0)
@ -643,7 +640,7 @@ GEM
net-ssh (>= 2.8.0)
stackprof (0.2.19)
statsd-ruby (1.5.0)
stoplight (2.2.1)
stoplight (3.0.0)
strong_migrations (0.7.9)
activerecord (>= 5)
swd (1.3.0)
@ -656,8 +653,6 @@ GEM
terrapin (0.6.0)
climate_control (>= 0.0.3, < 1.0)
thor (1.2.1)
thwait (0.2.0)
e2mmap
tilt (2.0.10)
tpm-key_attestation (0.9.0)
bindata (~> 2.4)
@ -734,11 +729,11 @@ DEPENDENCIES
active_record_query_trace (~> 1.8)
addressable (~> 2.8)
annotate (~> 3.2)
aws-sdk-s3 (~> 1.113)
aws-sdk-s3 (~> 1.114)
better_errors (~> 2.9)
binding_of_caller (~> 1.0)
blurhash (~> 0.1)
bootsnap (~> 1.10.3)
bootsnap (~> 1.11.1)
brakeman (~> 5.2)
browser
bullet (~> 7.0)
@ -747,7 +742,7 @@ DEPENDENCIES
capistrano-rails (~> 1.6)
capistrano-rbenv (~> 2.2)
capistrano-yarn (~> 2.0)
capybara (~> 3.36)
capybara (~> 3.37)
charlock_holmes (~> 0.7.7)
chewy (~> 7.2)
climate_control (~> 0.2)
@ -762,7 +757,7 @@ DEPENDENCIES
dotenv-rails (~> 2.7)
ed25519 (~> 1.3)
fabrication (~> 2.28)
faker (~> 2.20)
faker (~> 2.21)
fast_blank (~> 1.0)
fastimage
fog-core (<= 2.1.0)
@ -813,7 +808,7 @@ DEPENDENCIES
rack (~> 2.2.3)
rack-attack (~> 6.6)
rack-cors (~> 1.1)
rails (~> 6.1.5)
rails (~> 6.1.6)
rails-controller-testing (~> 1.0)
rails-i18n (~> 6.0)
rails-settings-cached (~> 0.6)
@ -825,14 +820,14 @@ DEPENDENCIES
rspec-rails (~> 5.1)
rspec-sidekiq (~> 3.1)
rspec_junit_formatter (~> 0.5)
rubocop (~> 1.26)
rubocop (~> 1.29)
rubocop-rails (~> 2.14)
ruby-progressbar (~> 1.11)
sanitize (~> 6.0)
scenic (~> 1.6)
sidekiq (~> 6.4)
sidekiq-bulk (~> 0.2.0)
sidekiq-scheduler (~> 3.1)
sidekiq-scheduler (~> 4.0)
sidekiq-unique-jobs (~> 7.1)
simple-navigation (~> 4.3)
simple_form (~> 5.1)
@ -840,7 +835,7 @@ DEPENDENCIES
sprockets (~> 3.7.2)
sprockets-rails (~> 3.4)
stackprof
stoplight (~> 2.2.1)
stoplight (~> 3.0.0)
strong_migrations (~> 0.7)
thor (~> 1.2)
tty-prompt (~> 0.23)

View File

@ -14,7 +14,7 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
| ------- | ------------------ |
| 3.5.x | Yes |
| 3.4.x | Yes |
| 3.3.x | Yes |
| 3.3.x | No |
| < 3.3 | No |
[bug-bounty]: https://app.intigriti.com/programs/mastodon/mastodonio/detail

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
class AccountsIndex < Chewy::Index
settings index: { refresh_interval: '5m' }, analysis: {
settings index: { refresh_interval: '30s' }, analysis: {
analyzer: {
content: {
tokenizer: 'whitespace',
@ -23,7 +23,7 @@ class AccountsIndex < Chewy::Index
},
}
index_scope ::Account.searchable.includes(:account_stat), delete_if: ->(account) { account.destroyed? || !account.searchable? }
index_scope ::Account.searchable.includes(:account_stat)
root date_detection: false do
field :id, type: 'long'
@ -36,8 +36,8 @@ class AccountsIndex < Chewy::Index
field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'content'
end
field :following_count, type: 'long', value: ->(account) { account.following.local.count }
field :followers_count, type: 'long', value: ->(account) { account.followers.local.count }
field :following_count, type: 'long', value: ->(account) { account.following_count }
field :followers_count, type: 'long', value: ->(account) { account.followers_count }
field :last_status_at, type: 'date', value: ->(account) { account.last_status_at || account.created_at }
end
end

View File

@ -3,7 +3,7 @@
class StatusesIndex < Chewy::Index
include FormattingHelper
settings index: { refresh_interval: '15m' }, analysis: {
settings index: { refresh_interval: '30s' }, analysis: {
filter: {
english_stop: {
type: 'stop',
@ -33,6 +33,8 @@ class StatusesIndex < Chewy::Index
},
}
# We do not use delete_if option here because it would call a method that we
# expect to be called with crutches without crutches, causing n+1 queries
index_scope ::Status.unscoped.kept.without_reblogs.includes(:media_attachments, :preloadable_poll)
crutch :mentions do |collection|
@ -55,6 +57,11 @@ class StatusesIndex < Chewy::Index
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end
crutch :votes do |collection|
data = ::PollVote.joins(:poll).where(poll: { status_id: collection.map(&:id) }).where(account: Account.local).pluck(:status_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end
root date_detection: false do
field :id, type: 'long'
field :account_id, type: 'long'

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
class TagsIndex < Chewy::Index
settings index: { refresh_interval: '15m' }, analysis: {
settings index: { refresh_interval: '30s' }, analysis: {
analyzer: {
content: {
tokenizer: 'keyword',
@ -23,7 +23,11 @@ class TagsIndex < Chewy::Index
},
}
index_scope ::Tag.listable, delete_if: ->(tag) { tag.destroyed? || !tag.listable? }
index_scope ::Tag.listable
crutch :time_period do
7.days.ago.to_date..0.days.ago.to_date
end
root date_detection: false do
field :name, type: 'text', analyzer: 'content' do
@ -31,7 +35,7 @@ class TagsIndex < Chewy::Index
end
field :reviewed, type: 'boolean', value: ->(tag) { tag.reviewed? }
field :usage, type: 'long', value: ->(tag) { tag.history.reduce(0) { |total, day| total + day.accounts } }
field :usage, type: 'long', value: ->(tag, crutches) { tag.history.aggregate(crutches.time_period).accounts }
field :last_status_at, type: 'date', value: ->(tag) { tag.last_status_at || tag.created_at }
end
end

View File

@ -44,7 +44,6 @@ class AccountsController < ApplicationController
limit = params[:limit].present? ? [params[:limit].to_i, PAGE_SIZE_MAX].min : PAGE_SIZE
@statuses = filtered_statuses.without_reblogs.limit(limit)
@statuses = cache_collection(@statuses, Status)
render xml: RSS::AccountSerializer.render(@account, @statuses, params[:tag])
end
format.json do

View File

@ -2,6 +2,7 @@
class ActivityPub::BaseController < Api::BaseController
skip_before_action :require_authenticated_user!
skip_before_action :require_not_suspended!
skip_around_action :set_locale
private

View File

@ -2,6 +2,8 @@
module Admin
class DashboardController < BaseController
include Redisable
def index
@system_checks = Admin::SystemCheck.perform
@time_period = (29.days.ago.to_date...Time.now.utc.to_date)
@ -15,10 +17,10 @@ module Admin
def redis_info
@redis_info ||= begin
if Redis.current.is_a?(Redis::Namespace)
Redis.current.redis.info
if redis.is_a?(Redis::Namespace)
redis.redis.info
else
Redis.current.info
redis.info
end
end
end

View File

@ -11,6 +11,7 @@ class Api::BaseController < ApplicationController
skip_before_action :require_functional!, unless: :whitelist_mode?
before_action :require_authenticated_user!, if: :disallow_unauthenticated_api_access?
before_action :require_not_suspended!
before_action :set_cache_headers
protect_from_forgery with: :null_session
@ -97,6 +98,10 @@ class Api::BaseController < ApplicationController
render json: { error: 'This method requires an authenticated user' }, status: 401 unless current_user
end
def require_not_suspended!
render json: { error: 'Your login is currently disabled' }, status: 403 if current_user&.account&.suspended?
end
def require_user!
if !current_user
render json: { error: 'This method requires an authenticated user' }, status: 422

View File

@ -12,5 +12,7 @@ class Api::V1::Accounts::LookupController < Api::BaseController
def set_account
@account = ResolveAccountService.new.call(params[:acct], skip_webfinger: true) || raise(ActiveRecord::RecordNotFound)
rescue Addressable::URI::InvalidURIError
raise(ActiveRecord::RecordNotFound)
end
end

View File

@ -9,6 +9,8 @@ class Api::V1::AccountsController < Api::BaseController
before_action :require_user!, except: [:show, :create]
before_action :set_account, except: [:create]
before_action :check_account_approval, except: [:create]
before_action :check_account_confirmation, except: [:create]
before_action :check_enabled_registrations, only: [:create]
skip_before_action :require_authenticated_user!, only: :create
@ -74,6 +76,14 @@ class Api::V1::AccountsController < Api::BaseController
@account = Account.find(params[:id])
end
def check_account_approval
raise(ActiveRecord::RecordNotFound) if @account.local? && @account.user_pending?
end
def check_account_confirmation
raise(ActiveRecord::RecordNotFound) if @account.local? && !@account.user_confirmed?
end
def relationships(**options)
AccountRelationshipsPresenter.new([@account.id], current_user.account_id, **options)
end

View File

@ -21,7 +21,7 @@ class Api::V1::BookmarksController < Api::BaseController
end
def results
@_results ||= account_bookmarks.eager_load(:status).to_a_paginated_by_id(
@_results ||= account_bookmarks.joins(:status).eager_load(:status).to_a_paginated_by_id(
limit_param(DEFAULT_STATUSES_LIMIT),
params_slice(:max_id, :since_id, :min_id)
)

View File

@ -21,7 +21,7 @@ class Api::V1::FavouritesController < Api::BaseController
end
def results
@_results ||= account_favourites.eager_load(:status).to_a_paginated_by_id(
@_results ||= account_favourites.joins(:status).eager_load(:status).to_a_paginated_by_id(
limit_param(DEFAULT_STATUSES_LIMIT),
params_slice(:max_id, :since_id, :min_id)
)

View File

@ -40,7 +40,7 @@ class Auth::ConfirmationsController < Devise::ConfirmationsController
def after_confirmation_path_for(_resource_name, user)
if user.created_by_application && truthy_param?(:redirect_to_app)
user.created_by_application.redirect_uri
user.created_by_application.confirmation_redirect_uri
else
super
end

View File

@ -13,7 +13,7 @@ class AuthorizeInteractionsController < ApplicationController
if @resource.is_a?(Account)
render :show
elsif @resource.is_a?(Status)
redirect_to web_url("statuses/#{@resource.id}")
redirect_to web_url("@#{@resource.account.pretty_acct}/#{@resource.id}")
else
render :error
end
@ -25,15 +25,17 @@ class AuthorizeInteractionsController < ApplicationController
else
render :error
end
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound
render :error
end
private
def set_resource
@resource = located_resource || render(:error)
@resource = located_resource
authorize(@resource, :show?) if @resource.is_a?(Status)
rescue Mastodon::NotPermittedError
not_found
end
def located_resource

View File

@ -21,7 +21,10 @@ class FollowingAccountsController < ApplicationController
end
format.json do
raise Mastodon::NotPermittedError if page_requested? && @account.hide_collections?
if page_requested? && @account.hide_collections?
forbidden
next
end
expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode?)

View File

@ -3,6 +3,8 @@
class MediaProxyController < ApplicationController
include RoutingHelper
include Authorization
include Redisable
include Lockable
skip_before_action :store_current_location
skip_before_action :require_functional!
@ -15,14 +17,10 @@ class MediaProxyController < ApplicationController
rescue_from HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError, with: :internal_server_error
def show
RedisLock.acquire(lock_options) do |lock|
if lock.acquired?
@media_attachment = MediaAttachment.remote.attached.find(params[:id])
authorize @media_attachment.status, :show?
redownload! if @media_attachment.needs_redownload? && !reject_media?
else
raise Mastodon::RaceConditionError
end
with_lock("media_download:#{params[:id]}") do
@media_attachment = MediaAttachment.remote.attached.find(params[:id])
authorize @media_attachment.status, :show?
redownload! if @media_attachment.needs_redownload? && !reject_media?
end
redirect_to full_asset_url(@media_attachment.file.url(version))
@ -44,10 +42,6 @@ class MediaProxyController < ApplicationController
end
end
def lock_options
{ redis: Redis.current, key: "media_download:#{params[:id]}", autorelease: 15.minutes.seconds }
end
def reject_media?
DomainBlock.reject_media?(@media_attachment.account.domain)
end

View File

@ -2,7 +2,8 @@
class Oauth::TokensController < Doorkeeper::TokensController
def revoke
unsubscribe_for_token if authorized? && token.accessible?
unsubscribe_for_token if token.present? && authorized? && token.accessible?
super
end

View File

@ -2,6 +2,8 @@
class Settings::ExportsController < Settings::BaseController
include Authorization
include Redisable
include Lockable
skip_before_action :require_functional!
@ -13,21 +15,13 @@ class Settings::ExportsController < Settings::BaseController
def create
backup = nil
RedisLock.acquire(lock_options) do |lock|
if lock.acquired?
authorize :backup, :create?
backup = current_user.backups.create!
else
raise Mastodon::RaceConditionError
end
with_lock("backup:#{current_user.id}") do
authorize :backup, :create?
backup = current_user.backups.create!
end
BackupWorker.perform_async(backup.id)
redirect_to settings_export_path
end
def lock_options
{ redis: Redis.current, key: "backup:#{current_user.id}" }
end
end

View File

@ -26,7 +26,6 @@ class TagsController < ApplicationController
format.rss do
expires_in 0, public: true
render xml: RSS::TagSerializer.render(@tag, @statuses)
end
format.json do

View File

@ -132,7 +132,7 @@ module ApplicationHelper
elsif status.private_visibility? || status.limited_visibility?
fa_icon('lock', title: I18n.t('statuses.visibilities.private'))
elsif status.direct_visibility?
fa_icon('envelope', title: I18n.t('statuses.visibilities.direct'))
fa_icon('at', title: I18n.t('statuses.visibilities.direct'))
end
end
@ -243,7 +243,7 @@ module ApplicationHelper
end.values
end
def prerender_custom_emojis(html, custom_emojis)
EmojiFormatter.new(html, custom_emojis, animate: prefers_autoplay?).to_s
def prerender_custom_emojis(html, custom_emojis, other_options = {})
EmojiFormatter.new(html, custom_emojis, other_options.merge(animate: prefers_autoplay?)).to_s
end
end

View File

@ -18,6 +18,32 @@ module FormattingHelper
html_aware_format(status.text, status.local?, preloaded_accounts: [status.account] + (status.respond_to?(:active_mentions) ? status.active_mentions.map(&:account) : []))
end
def rss_status_content_format(status)
html = status_content_format(status)
before_html = begin
if status.spoiler_text?
"<p><strong>#{I18n.t('rss.content_warning', locale: available_locale_or_nil(status.language) || I18n.default_locale)}</strong> #{h(status.spoiler_text)}</p><hr />"
else
''
end
end.html_safe # rubocop:disable Rails/OutputSafety
after_html = begin
if status.preloadable_poll
"<p>#{status.preloadable_poll.options.map { |o| "<input type=#{status.preloadable_poll.multiple? ? 'checkbox' : 'radio'} disabled /> #{h(o)}" }.join('<br />')}</p>"
else
''
end
end.html_safe # rubocop:disable Rails/OutputSafety
prerender_custom_emojis(
safe_join([before_html, html, after_html]),
status.emojis,
style: 'width: 1.1em; height: 1.1em; object-fit: contain; vertical-align: middle; margin: -.2ex .15em .2ex'
).to_str
end
def account_bio_format(account)
html_aware_format(account.note, account.local?)
end

View File

@ -254,4 +254,8 @@ module LanguagesHelper
def valid_locale?(locale)
locale.present? && SUPPORTED_LOCALES.key?(locale.to_sym)
end
def available_locale_or_nil(locale_name)
locale_name.to_sym if locale_name.present? && I18n.available_locales.include?(locale_name.to_sym)
end
end

View File

@ -101,7 +101,7 @@ module StatusesHelper
when 'private'
fa_icon 'lock fw'
when 'direct'
fa_icon 'envelope fw'
fa_icon 'at fw'
end
end

View File

@ -77,6 +77,8 @@ export const FOLLOW_REQUEST_REJECT_REQUEST = 'FOLLOW_REQUEST_REJECT_REQUEST';
export const FOLLOW_REQUEST_REJECT_SUCCESS = 'FOLLOW_REQUEST_REJECT_SUCCESS';
export const FOLLOW_REQUEST_REJECT_FAIL = 'FOLLOW_REQUEST_REJECT_FAIL';
export const ACCOUNT_REVEAL = 'ACCOUNT_REVEAL';
export function fetchAccount(id) {
return (dispatch, getState) => {
dispatch(fetchRelationships([id]));
@ -780,3 +782,8 @@ export function unpinAccountFail(error) {
error,
};
};
export const revealAccount = id => ({
type: ACCOUNT_REVEAL,
id,
});

View File

@ -45,12 +45,12 @@ export const COMPOSE_TAG_HISTORY_UPDATE = 'COMPOSE_TAG_HISTORY_UPDATE';
export const COMPOSE_MOUNT = 'COMPOSE_MOUNT';
export const COMPOSE_UNMOUNT = 'COMPOSE_UNMOUNT';
export const COMPOSE_SENSITIVITY_CHANGE = 'COMPOSE_SENSITIVITY_CHANGE';
export const COMPOSE_SPOILERNESS_CHANGE = 'COMPOSE_SPOILERNESS_CHANGE';
export const COMPOSE_SENSITIVITY_CHANGE = 'COMPOSE_SENSITIVITY_CHANGE';
export const COMPOSE_SPOILERNESS_CHANGE = 'COMPOSE_SPOILERNESS_CHANGE';
export const COMPOSE_SPOILER_TEXT_CHANGE = 'COMPOSE_SPOILER_TEXT_CHANGE';
export const COMPOSE_VISIBILITY_CHANGE = 'COMPOSE_VISIBILITY_CHANGE';
export const COMPOSE_LISTABILITY_CHANGE = 'COMPOSE_LISTABILITY_CHANGE';
export const COMPOSE_COMPOSING_CHANGE = 'COMPOSE_COMPOSING_CHANGE';
export const COMPOSE_VISIBILITY_CHANGE = 'COMPOSE_VISIBILITY_CHANGE';
export const COMPOSE_COMPOSING_CHANGE = 'COMPOSE_COMPOSING_CHANGE';
export const COMPOSE_LANGUAGE_CHANGE = 'COMPOSE_LANGUAGE_CHANGE';
export const COMPOSE_EMOJI_INSERT = 'COMPOSE_EMOJI_INSERT';
@ -169,6 +169,7 @@ export function submitCompose(routerHistory) {
spoiler_text: getState().getIn(['compose', 'spoiler']) ? getState().getIn(['compose', 'spoiler_text'], '') : '',
visibility: getState().getIn(['compose', 'privacy']),
poll: getState().getIn(['compose', 'poll'], null),
language: getState().getIn(['compose', 'language']),
},
headers: {
'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']),
@ -635,6 +636,11 @@ export function changeComposeSensitivity() {
};
};
export const changeComposeLanguage = language => ({
type: COMPOSE_LANGUAGE_CHANGE,
language,
});
export function changeComposeSpoilerness() {
return {
type: COMPOSE_SPOILERNESS_CHANGE,

View File

@ -0,0 +1,12 @@
import { saveSettings } from './settings';
export const LANGUAGE_USE = 'LANGUAGE_USE';
export const useLanguage = language => dispatch => {
dispatch({
type: LANGUAGE_USE,
language,
});
dispatch(saveSettings());
};

View File

@ -58,7 +58,8 @@ export const loadPending = () => ({
export function updateNotifications(notification, intlMessages, intlLocale) {
return (dispatch, getState) => {
const showInColumn = getState().getIn(['settings', 'notifications', 'shows', notification.type], true);
const activeFilter = getState().getIn(['settings', 'notifications', 'quickFilter', 'active']);
const showInColumn = activeFilter === 'all' ? getState().getIn(['settings', 'notifications', 'shows', notification.type], true) : activeFilter === notification.type;
const showAlert = getState().getIn(['settings', 'notifications', 'alerts', notification.type], true);
const playSound = getState().getIn(['settings', 'notifications', 'sounds', notification.type], true);
const filters = getFiltersRegex(getState(), { contextType: 'notifications' });

View File

@ -18,6 +18,8 @@ const messages = defineMessages({
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
mute_notifications: { id: 'account.mute_notifications', defaultMessage: 'Mute notifications from @{name}' },
unmute_notifications: { id: 'account.unmute_notifications', defaultMessage: 'Unmute notifications from @{name}' },
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
});
export default @injectIntl
@ -33,6 +35,7 @@ class Account extends ImmutablePureComponent {
hidden: PropTypes.bool,
actionIcon: PropTypes.string,
actionTitle: PropTypes.string,
defaultAction: PropTypes.string,
onActionClick: PropTypes.func,
};
@ -61,7 +64,7 @@ class Account extends ImmutablePureComponent {
}
render () {
const { account, intl, hidden, onActionClick, actionIcon, actionTitle } = this.props;
const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction } = this.props;
if (!account) {
return <div />;
@ -105,6 +108,10 @@ class Account extends ImmutablePureComponent {
{hidingNotificationsButton}
</Fragment>
);
} else if (defaultAction === 'mute') {
buttons = <IconButton icon='volume-off' title={intl.formatMessage(messages.mute, { name: account.get('username') })} onClick={this.handleMute} />;
} else if (defaultAction === 'block') {
buttons = <IconButton icon='lock' title={intl.formatMessage(messages.block, { name: account.get('username') })} onClick={this.handleBlock} />;
} else if (!account.get('moved') || following) {
buttons = <IconButton icon={following ? 'user-times' : 'user-plus'} title={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={this.handleFollow} active={following} />;
}

View File

@ -2,11 +2,12 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { autoPlayGif } from '../initial_state';
import classNames from 'classnames';
export default class Avatar extends React.PureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
account: ImmutablePropTypes.map,
size: PropTypes.number.isRequired,
style: PropTypes.object,
inline: PropTypes.bool,
@ -37,15 +38,6 @@ export default class Avatar extends React.PureComponent {
const { account, size, animate, inline } = this.props;
const { hovering } = this.state;
const src = account.get('avatar');
const staticSrc = account.get('avatar_static');
let className = 'account__avatar';
if (inline) {
className = className + ' account__avatar-inline';
}
const style = {
...this.props.style,
width: `${size}px`,
@ -53,15 +45,21 @@ export default class Avatar extends React.PureComponent {
backgroundSize: `${size}px ${size}px`,
};
if (hovering || animate) {
style.backgroundImage = `url(${src})`;
} else {
style.backgroundImage = `url(${staticSrc})`;
if (account) {
const src = account.get('avatar');
const staticSrc = account.get('avatar_static');
if (hovering || animate) {
style.backgroundImage = `url(${src})`;
} else {
style.backgroundImage = `url(${staticSrc})`;
}
}
return (
<div
className={className}
className={classNames('account__avatar', { 'account__avatar-inline': inline })}
onMouseEnter={this.handleMouseEnter}
onMouseLeave={this.handleMouseLeave}
style={style}

View File

@ -25,7 +25,7 @@ export function counterRenderer(counterType, isBold = true) {
return (displayNumber, pluralReady) => (
<FormattedMessage
id='account.statuses_counter'
defaultMessage='{count, plural, one {{counter} Toot} other {{counter} Toots}}'
defaultMessage='{count, plural, one {{counter} Doot} other {{counter} Doots}}'
values={{
count: pluralReady,
counter: renderCounter(displayNumber),

View File

@ -56,7 +56,7 @@ const messages = defineMessages({
public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' },
edited: { id: 'status.edited', defaultMessage: 'Edited {date}' },
});
@ -349,7 +349,7 @@ class Status extends ImmutablePureComponent {
prepend = (
<div className='status__prepend'>
<div className='status__prepend-icon-wrapper'><Icon id='thumb-tack' className='status__prepend-icon' fixedWidth /></div>
<FormattedMessage id='status.pinned' defaultMessage='Pinned toot' />
<FormattedMessage id='status.pinned' defaultMessage='Pinned post' />
</div>
);
} else if (status.get('reblog', null) !== null && typeof status.get('reblog') === 'object') {
@ -468,7 +468,7 @@ class Status extends ImmutablePureComponent {
'public': { icon: 'globe', text: intl.formatMessage(messages.public_short) },
'unlisted': { icon: 'unlock', text: intl.formatMessage(messages.unlisted_short) },
'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) },
'direct': { icon: 'envelope', text: intl.formatMessage(messages.direct_short) },
'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) },
};
const visibilityIcon = visibilityIconInfo[status.get('visibility')];

View File

@ -38,7 +38,7 @@ const messages = defineMessages({
showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
enableNotifications: { id: 'account.enable_notifications', defaultMessage: 'Notify me when @{name} posts' },
disableNotifications: { id: 'account.disable_notifications', defaultMessage: 'Stop notifying me when @{name} posts' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
@ -82,6 +82,7 @@ class Header extends ImmutablePureComponent {
onEditAccountNote: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
domain: PropTypes.string.isRequired,
hidden: PropTypes.bool,
};
openEditProfile = () => {
@ -123,7 +124,7 @@ class Header extends ImmutablePureComponent {
}
render () {
const { account, intl, domain } = this.props;
const { account, hidden, intl, domain } = this.props;
if (!account) {
return null;
@ -267,21 +268,25 @@ class Header extends ImmutablePureComponent {
{!suspended && info}
</div>
<img src={autoPlayGif ? account.get('header') : account.get('header_static')} alt='' className='parallax' />
{!(suspended || hidden) && <img src={autoPlayGif ? account.get('header') : account.get('header_static')} alt='' className='parallax' />}
</div>
<div className='account__header__bar'>
<div className='account__header__tabs'>
<a className='avatar' href={account.get('url')} rel='noopener noreferrer' target='_blank'>
<Avatar account={account} size={90} />
<Avatar account={suspended || hidden ? undefined : account} size={90} />
</a>
<div className='spacer' />
{!suspended && (
<div className='account__header__tabs__buttons'>
{actionBtn}
{bellBtn}
{!hidden && (
<React.Fragment>
{actionBtn}
{bellBtn}
</React.Fragment>
)}
<DropdownMenuContainer items={menu} icon='ellipsis-v' size={24} direction='right' />
</div>
@ -295,30 +300,30 @@ class Header extends ImmutablePureComponent {
</h1>
</div>
<div className='account__header__extra'>
<div className='account__header__bio'>
{fields.size > 0 && (
<div className='account__header__fields'>
{fields.map((pair, i) => (
<dl key={i}>
<dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} className='translate' />
{!(suspended || hidden) && (
<div className='account__header__extra'>
<div className='account__header__bio'>
{fields.size > 0 && (
<div className='account__header__fields'>
{fields.map((pair, i) => (
<dl key={i}>
<dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} className='translate' />
<dd className={`${pair.get('verified_at') ? 'verified' : ''} translate`} title={pair.get('value_plain')}>
{pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
</dd>
</dl>
))}
</div>
)}
<dd className={`${pair.get('verified_at') ? 'verified' : ''} translate`} title={pair.get('value_plain')}>
{pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
</dd>
</dl>
))}
</div>
)}
{account.get('id') !== me && !suspended && <AccountNoteContainer account={account} />}
{account.get('id') !== me && <AccountNoteContainer account={account} />}
{account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content translate' dangerouslySetInnerHTML={content} />}
{account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content translate' dangerouslySetInnerHTML={content} />}
<div className='account__header__joined'><FormattedMessage id='account.joined' defaultMessage='Joined {date}' values={{ date: intl.formatDate(account.get('created_at'), { year: 'numeric', month: 'short', day: '2-digit' }) }} /></div>
</div>
<div className='account__header__joined'><FormattedMessage id='account.joined' defaultMessage='Joined {date}' values={{ date: intl.formatDate(account.get('created_at'), { year: 'numeric', month: 'short', day: '2-digit' }) }} /></div>
</div>
{!suspended && (
<div className='account__header__extra__links'>
<NavLink isActive={this.isStatusesPageActive} activeClassName='active' to={`/@${account.get('acct')}`} title={intl.formatNumber(account.get('statuses_count'))}>
<ShortNumber
@ -341,8 +346,8 @@ class Header extends ImmutablePureComponent {
/>
</NavLink>
</div>
)}
</div>
</div>
)}
</div>
</div>
);

View File

@ -24,6 +24,7 @@ export default class Header extends ImmutablePureComponent {
onAddToList: PropTypes.func.isRequired,
hideTabs: PropTypes.bool,
domain: PropTypes.string.isRequired,
hidden: PropTypes.bool,
};
static contextTypes = {
@ -91,7 +92,7 @@ export default class Header extends ImmutablePureComponent {
}
render () {
const { account, hideTabs } = this.props;
const { account, hidden, hideTabs } = this.props;
if (account === null) {
return null;
@ -99,7 +100,7 @@ export default class Header extends ImmutablePureComponent {
return (
<div className='account-timeline__header'>
{account.get('moved') && <MovedNote from={account} to={account.get('moved')} />}
{(!hidden && account.get('moved')) && <MovedNote from={account} to={account.get('moved')} />}
<InnerHeader
account={account}
@ -117,12 +118,13 @@ export default class Header extends ImmutablePureComponent {
onAddToList={this.handleAddToList}
onEditAccountNote={this.handleEditAccountNote}
domain={this.props.domain}
hidden={hidden}
/>
{!hideTabs && (
{!(hideTabs || hidden) && (
<div className='account__section-headline'>
<NavLink exact to={`/@${account.get('acct')}`}><FormattedMessage id='account.posts' defaultMessage='Toots' /></NavLink>
<NavLink exact to={`/@${account.get('acct')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Toots and replies' /></NavLink>
<NavLink exact to={`/@${account.get('acct')}`}><FormattedMessage id='account.posts' defaultMessage='Posts' /></NavLink>
<NavLink exact to={`/@${account.get('acct')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Posts and replies' /></NavLink>
<NavLink exact to={`/@${account.get('acct')}/media`}><FormattedMessage id='account.media' defaultMessage='Media' /></NavLink>
</div>
)}

View File

@ -0,0 +1,35 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { revealAccount } from 'mastodon/actions/accounts';
import { FormattedMessage } from 'react-intl';
import Button from 'mastodon/components/button';
const mapDispatchToProps = (dispatch, { accountId }) => ({
reveal () {
dispatch(revealAccount(accountId));
},
});
export default @connect(() => {}, mapDispatchToProps)
class LimitedAccountHint extends React.PureComponent {
static propTypes = {
accountId: PropTypes.string.isRequired,
reveal: PropTypes.func,
}
render () {
const { reveal } = this.props;
return (
<div className='limited-account-hint'>
<p><FormattedMessage id='limited_account_hint.title' defaultMessage='This profile has been hidden by the moderators of your server.' /></p>
<Button onClick={reveal}><FormattedMessage id='limited_account_hint.action' defaultMessage='Show profile anyway' /></Button>
</div>
);
}
}

View File

@ -1,6 +1,6 @@
import React from 'react';
import { connect } from 'react-redux';
import { makeGetAccount } from '../../../selectors';
import { makeGetAccount, getAccountHidden } from '../../../selectors';
import Header from '../components/header';
import {
followAccount,
@ -33,6 +33,7 @@ const makeMapStateToProps = () => {
const mapStateToProps = (state, { accountId }) => ({
account: getAccount(state, accountId),
domain: state.getIn(['meta', 'domain']),
hidden: getAccountHidden(state, accountId),
});
return mapStateToProps;

View File

@ -16,6 +16,8 @@ import MissingIndicator from 'mastodon/components/missing_indicator';
import TimelineHint from 'mastodon/components/timeline_hint';
import { me } from 'mastodon/initial_state';
import { connectTimeline, disconnectTimeline } from 'mastodon/actions/timelines';
import LimitedAccountHint from './components/limited_account_hint';
import { getAccountHidden } from 'mastodon/selectors';
const emptyList = ImmutableList();
@ -40,12 +42,13 @@ const mapStateToProps = (state, { params: { acct, id }, withReplies = false }) =
isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']),
hasMore: state.getIn(['timelines', `account:${path}`, 'hasMore']),
suspended: state.getIn(['accounts', accountId, 'suspended'], false),
hidden: getAccountHidden(state, accountId),
blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false),
};
};
const RemoteHint = ({ url }) => (
<TimelineHint url={url} resource={<FormattedMessage id='timeline_hint.resources.statuses' defaultMessage='Older toots' />} />
<TimelineHint url={url} resource={<FormattedMessage id='timeline_hint.resources.statuses' defaultMessage='Older posts' />} />
);
RemoteHint.propTypes = {
@ -70,6 +73,7 @@ class AccountTimeline extends ImmutablePureComponent {
blockedBy: PropTypes.bool,
isAccount: PropTypes.bool,
suspended: PropTypes.bool,
hidden: PropTypes.bool,
remote: PropTypes.bool,
remoteUrl: PropTypes.string,
multiColumn: PropTypes.bool,
@ -128,7 +132,7 @@ class AccountTimeline extends ImmutablePureComponent {
}
render () {
const { statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, suspended, isAccount, multiColumn, remote, remoteUrl } = this.props;
const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props;
if (!isAccount) {
return (
@ -149,14 +153,18 @@ class AccountTimeline extends ImmutablePureComponent {
let emptyMessage;
const forceEmptyState = suspended || blockedBy || hidden;
if (suspended) {
emptyMessage = <FormattedMessage id='empty_column.account_suspended' defaultMessage='Account suspended' />;
} else if (hidden) {
emptyMessage = <LimitedAccountHint accountId={accountId} />;
} else if (blockedBy) {
emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />;
} else if (remote && statusIds.isEmpty()) {
emptyMessage = <RemoteHint url={remoteUrl} />;
} else {
emptyMessage = <FormattedMessage id='empty_column.account_timeline' defaultMessage='No toots here!' />;
emptyMessage = <FormattedMessage id='empty_column.account_timeline' defaultMessage='No posts found' />;
}
const remoteMessage = remote ? <RemoteHint url={remoteUrl} /> : null;
@ -166,14 +174,14 @@ class AccountTimeline extends ImmutablePureComponent {
<ColumnBackButton multiColumn={multiColumn} />
<StatusList
prepend={<HeaderContainer accountId={this.props.accountId} />}
prepend={<HeaderContainer accountId={this.props.accountId} hideTabs={forceEmptyState} />}
alwaysPrepend
append={remoteMessage}
scrollKey='account_timeline'
statusIds={(suspended || blockedBy) ? emptyList : statusIds}
statusIds={forceEmptyState ? emptyList : statusIds}
featuredStatusIds={featuredStatusIds}
isLoading={isLoading}
hasMore={hasMore}
hasMore={!forceEmptyState && hasMore}
onLoadMore={this.handleLoadMore}
emptyMessage={emptyMessage}
bindToDocument={!multiColumn}

View File

@ -69,7 +69,7 @@ class Blocks extends ImmutablePureComponent {
bindToDocument={!multiColumn}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} />,
<AccountContainer key={id} id={id} defaultAction='block' />,
)}
</ScrollableList>
</Column>

View File

@ -70,7 +70,7 @@ class Bookmarks extends ImmutablePureComponent {
const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
const pinned = !!columnId;
const emptyMessage = <FormattedMessage id='empty_column.bookmarked_statuses' defaultMessage="You don't have any bookmarked toots yet. When you bookmark one, it will show up here." />;
const emptyMessage = <FormattedMessage id='empty_column.bookmarked_statuses' defaultMessage="You don't have any bookmarked posts yet. When you bookmark one, it will show up here." />;
return (
<Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.heading)}>

View File

@ -6,7 +6,7 @@ import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },

View File

@ -15,6 +15,7 @@ import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';
import PollFormContainer from '../containers/poll_form_container';
import UploadFormContainer from '../containers/upload_form_container';
import WarningContainer from '../containers/warning_container';
import LanguageDropdown from '../containers/language_dropdown_container';
import { isMobile } from '../../../is_mobile';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { length } from 'stringz';
@ -204,6 +205,7 @@ class ComposeForm extends ImmutablePureComponent {
render () {
const { intl, onPaste, showSearch } = this.props;
const disabled = this.props.isSubmitting;
let publishText = '';
if (this.props.isEditing) {
@ -254,6 +256,7 @@ class ComposeForm extends ImmutablePureComponent {
autoFocus={!showSearch && !isMobile(window.innerWidth)}
>
<EmojiPickerDropdown onPickEmoji={this.handleEmojiPick} />
<div className='compose-form__modifiers'>
<UploadFormContainer />
<PollFormContainer />
@ -266,12 +269,18 @@ class ComposeForm extends ImmutablePureComponent {
<PollButtonContainer />
<PrivacyDropdownContainer disabled={this.props.isEditing} />
<SpoilerButtonContainer />
<LanguageDropdown />
</div>
<div className='character-counter__wrapper'>
<CharacterCounter max={69420} text={this.getFulltextForCharacterCounting()} />
</div>
<div className='character-counter__wrapper'><CharacterCounter max={69420} text={this.getFulltextForCharacterCounting()} /></div>
</div>
<div className='compose-form__publish'>
<div className='compose-form__publish-button-wrapper'><Button text={publishText} onClick={this.handleSubmit} disabled={!this.canSubmit()} block /></div>
<div className='compose-form__publish-button-wrapper'>
<Button text={publishText} onClick={this.handleSubmit} disabled={!this.canSubmit()} block />
</div>
</div>
</div>
);

View File

@ -0,0 +1,332 @@
import React from 'react';
import PropTypes from 'prop-types';
import { injectIntl, defineMessages } from 'react-intl';
import TextIconButton from './text_icon_button';
import Overlay from 'react-overlays/lib/Overlay';
import Motion from 'mastodon/features/ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import { supportsPassiveEvents } from 'detect-passive-events';
import classNames from 'classnames';
import { languages as preloadedLanguages } from 'mastodon/initial_state';
import fuzzysort from 'fuzzysort';
const messages = defineMessages({
changeLanguage: { id: 'compose.language.change', defaultMessage: 'Change language' },
search: { id: 'compose.language.search', defaultMessage: 'Search languages...' },
clear: { id: 'emoji_button.clear', defaultMessage: 'Clear' },
});
// Copied from emoji-mart for consistency with emoji picker and since
// they don't export the icons in the package
const icons = {
loupe: (
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' width='13' height='13'>
<path d='M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z' />
</svg>
),
delete: (
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' width='13' height='13'>
<path d='M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z' />
</svg>
),
};
const listenerOptions = supportsPassiveEvents ? { passive: true } : false;
class LanguageDropdownMenu extends React.PureComponent {
static propTypes = {
style: PropTypes.object,
value: PropTypes.string.isRequired,
frequentlyUsedLanguages: PropTypes.arrayOf(PropTypes.string).isRequired,
placement: PropTypes.string.isRequired,
onClose: PropTypes.func.isRequired,
onChange: PropTypes.func.isRequired,
languages: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),
intl: PropTypes.object,
};
static defaultProps = {
languages: preloadedLanguages,
};
state = {
mounted: false,
searchValue: '',
};
handleDocumentClick = e => {
if (this.node && !this.node.contains(e.target)) {
this.props.onClose();
}
}
componentDidMount () {
document.addEventListener('click', this.handleDocumentClick, false);
document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
this.setState({ mounted: true });
}
componentWillUnmount () {
document.removeEventListener('click', this.handleDocumentClick, false);
document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);
}
setRef = c => {
this.node = c;
}
setListRef = c => {
this.listNode = c;
}
handleSearchChange = ({ target }) => {
this.setState({ searchValue: target.value });
}
search () {
const { languages, value, frequentlyUsedLanguages } = this.props;
const { searchValue } = this.state;
if (searchValue === '') {
return [...languages].sort((a, b) => {
// Push current selection to the top of the list
if (a[0] === value) {
return -1;
} else if (b[0] === value) {
return 1;
} else {
// Sort according to frequently used languages
const indexOfA = frequentlyUsedLanguages.indexOf(a[0]);
const indexOfB = frequentlyUsedLanguages.indexOf(b[0]);
return ((indexOfA > -1 ? indexOfA : Infinity) - (indexOfB > -1 ? indexOfB : Infinity));
}
});
}
return fuzzysort.go(searchValue, languages, {
keys: ['0', '1', '2'],
limit: 5,
threshold: -10000,
}).map(result => result.obj);
}
frequentlyUsed () {
const { languages, value } = this.props;
const current = languages.find(lang => lang[0] === value);
const results = [];
if (current) {
results.push(current);
}
return results;
}
handleClick = e => {
const value = e.currentTarget.getAttribute('data-index');
e.preventDefault();
this.props.onClose();
this.props.onChange(value);
}
handleKeyDown = e => {
const { onClose } = this.props;
const index = Array.from(this.listNode.childNodes).findIndex(node => node === e.currentTarget);
let element = null;
switch(e.key) {
case 'Escape':
onClose();
break;
case 'Enter':
this.handleClick(e);
break;
case 'ArrowDown':
element = this.listNode.childNodes[index + 1] || this.listNode.firstChild;
break;
case 'ArrowUp':
element = this.listNode.childNodes[index - 1] || this.listNode.lastChild;
break;
case 'Tab':
if (e.shiftKey) {
element = this.listNode.childNodes[index - 1] || this.listNode.lastChild;
} else {
element = this.listNode.childNodes[index + 1] || this.listNode.firstChild;
}
break;
case 'Home':
element = this.listNode.firstChild;
break;
case 'End':
element = this.listNode.lastChild;
break;
}
if (element) {
element.focus();
e.preventDefault();
e.stopPropagation();
}
}
handleSearchKeyDown = e => {
const { onChange, onClose } = this.props;
const { searchValue } = this.state;
let element = null;
switch(e.key) {
case 'Tab':
case 'ArrowDown':
element = this.listNode.firstChild;
if (element) {
element.focus();
e.preventDefault();
e.stopPropagation();
}
break;
case 'Enter':
element = this.listNode.firstChild;
if (element) {
onChange(element.getAttribute('data-index'));
onClose();
}
break;
case 'Escape':
if (searchValue !== '') {
e.preventDefault();
this.handleClear();
}
break;
}
}
handleClear = () => {
this.setState({ searchValue: '' });
}
renderItem = lang => {
const { value } = this.props;
return (
<div key={lang[0]} role='option' tabIndex='0' data-index={lang[0]} className={classNames('language-dropdown__dropdown__results__item', { active: lang[0] === value })} aria-selected={lang[0] === value} onClick={this.handleClick} onKeyDown={this.handleKeyDown}>
<span className='language-dropdown__dropdown__results__item__native-name'>{lang[2]}</span> <span className='language-dropdown__dropdown__results__item__common-name'>({lang[1]})</span>
</div>
);
}
render () {
const { style, placement, intl } = this.props;
const { mounted, searchValue } = this.state;
const isSearching = searchValue !== '';
const results = this.search();
return (
<Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>
{({ opacity, scaleX, scaleY }) => (
// It should not be transformed when mounting because the resulting
// size will be used to determine the coordinate of the menu by
// react-overlays
<div className={`language-dropdown__dropdown ${placement}`} style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} ref={this.setRef}>
<div className='emoji-mart-search'>
<input type='search' value={searchValue} onChange={this.handleSearchChange} onKeyDown={this.handleSearchKeyDown} placeholder={intl.formatMessage(messages.search)} autoFocus />
<button className='emoji-mart-search-icon' disabled={!isSearching} aria-label={intl.formatMessage(messages.clear)} onClick={this.handleClear}>{!isSearching ? icons.loupe : icons.delete}</button>
</div>
<div className='language-dropdown__dropdown__results emoji-mart-scroll' role='listbox' ref={this.setListRef}>
{results.map(this.renderItem)}
</div>
</div>
)}
</Motion>
);
}
}
export default @injectIntl
class LanguageDropdown extends React.PureComponent {
static propTypes = {
value: PropTypes.string,
frequentlyUsedLanguages: PropTypes.arrayOf(PropTypes.string),
intl: PropTypes.object.isRequired,
onChange: PropTypes.func,
onClose: PropTypes.func,
};
state = {
open: false,
placement: 'bottom',
};
handleToggle = ({ target }) => {
const { top } = target.getBoundingClientRect();
if (this.state.open && this.activeElement) {
this.activeElement.focus({ preventScroll: true });
}
this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' });
this.setState({ open: !this.state.open });
}
handleClose = () => {
const { value, onClose } = this.props;
if (this.state.open && this.activeElement) {
this.activeElement.focus({ preventScroll: true });
}
this.setState({ open: false });
onClose(value);
}
handleChange = value => {
const { onChange } = this.props;
onChange(value);
}
render () {
const { value, intl, frequentlyUsedLanguages } = this.props;
const { open, placement } = this.state;
return (
<div className={classNames('privacy-dropdown', { active: open })}>
<div className='privacy-dropdown__value'>
<TextIconButton
className='privacy-dropdown__value-icon'
label={value && value.toUpperCase()}
title={intl.formatMessage(messages.changeLanguage)}
active={open}
onClick={this.handleToggle}
/>
</div>
<Overlay show={open} placement={placement} target={this}>
<LanguageDropdownMenu
value={value}
frequentlyUsedLanguages={frequentlyUsedLanguages}
onClose={this.handleClose}
onChange={this.handleChange}
placement={placement}
intl={intl}
/>
</Overlay>
</div>
);
}
}

View File

@ -11,12 +11,12 @@ import Icon from 'mastodon/components/icon';
const messages = defineMessages({
public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
public_long: { id: 'privacy.public.long', defaultMessage: 'Visible for all, shown in public timelines' },
public_long: { id: 'privacy.public.long', defaultMessage: 'Visible for all' },
unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Visible for all, but not in public timelines' },
private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Visible for all, but opted-out of discovery features' },
private_short: { id: 'privacy.private.short', defaultMessage: 'Followers only' },
private_long: { id: 'privacy.private.long', defaultMessage: 'Visible for followers only' },
direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' },
direct_long: { id: 'privacy.direct.long', defaultMessage: 'Visible for mentioned users only' },
change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' },
});
@ -242,7 +242,7 @@ class PrivacyDropdown extends React.PureComponent {
if (!this.props.noDirect) {
this.options.push(
{ icon: 'envelope', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },
{ icon: 'at', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },
);
}
}

View File

@ -91,7 +91,7 @@ class SearchResults extends ImmutablePureComponent {
count += results.get('statuses').size;
statuses = (
<div className='search-results__section'>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
{results.get('statuses').map(statusId => <StatusContainer key={statusId} id={statusId} />)}
@ -101,10 +101,10 @@ class SearchResults extends ImmutablePureComponent {
} else if(results.get('statuses') && results.get('statuses').size === 0 && !searchEnabled && !(searchTerm.startsWith('@') || searchTerm.startsWith('#') || searchTerm.includes(' '))) {
statuses = (
<div className='search-results__section'>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
<div className='search-results__info'>
<FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching toots by their content is not enabled on this Mastodon server.' />
<FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching posts by their content is not enabled on this Mastodon server.' />
</div>
</div>
);

View File

@ -17,11 +17,6 @@ export default class TextIconButton extends React.PureComponent {
ariaControls: PropTypes.string,
};
handleClick = (e) => {
e.preventDefault();
this.props.onClick();
}
render () {
const { label, title, active, ariaControls } = this.props;
@ -31,7 +26,7 @@ export default class TextIconButton extends React.PureComponent {
aria-label={title}
className={`text-icon-button ${active ? 'active' : ''}`}
aria-expanded={active}
onClick={this.handleClick}
onClick={this.props.onClick}
aria-controls={ariaControls} style={iconStyle}
>
{label}

View File

@ -0,0 +1,34 @@
import { connect } from 'react-redux';
import LanguageDropdown from '../components/language_dropdown';
import { changeComposeLanguage } from 'mastodon/actions/compose';
import { useLanguage } from 'mastodon/actions/languages';
import { createSelector } from 'reselect';
import { Map as ImmutableMap } from 'immutable';
const getFrequentlyUsedLanguages = createSelector([
state => state.getIn(['settings', 'frequentlyUsedLanguages'], ImmutableMap()),
], languageCounters => (
languageCounters.keySeq()
.sort((a, b) => languageCounters.get(a) - languageCounters.get(b))
.reverse()
.toArray()
));
const mapStateToProps = state => ({
frequentlyUsedLanguages: getFrequentlyUsedLanguages(state),
value: state.getIn(['compose', 'language']),
});
const mapDispatchToProps = dispatch => ({
onChange (value) {
dispatch(changeComposeLanguage(value));
},
onClose (value) {
dispatch(useLanguage(value));
},
});
export default connect(mapStateToProps, mapDispatchToProps)(LanguageDropdown);

View File

@ -42,13 +42,13 @@ const WarningWrapper = ({ needsLockWarning, hashtagWarning, directMessageWarning
}
if (hashtagWarning) {
return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag." />} />;
return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag." />} />;
}
if (directMessageWarning) {
const message = (
<span>
<FormattedMessage id='compose_form.direct_message_warning' defaultMessage='This toot will only be sent to all the mentioned users.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>
<FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>
</span>
);

View File

@ -26,7 +26,7 @@ const messages = defineMessages({
community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },
compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' },
logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
});

View File

@ -76,7 +76,7 @@ class DirectTimeline extends React.PureComponent {
return (
<Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon='envelope'
icon='at'
active={hasUnread}
title={intl.formatMessage(messages.title)}
onPin={this.handlePin}
@ -91,6 +91,7 @@ class DirectTimeline extends React.PureComponent {
scrollKey={`direct_timeline-${columnId}`}
timelineId='direct'
onLoadMore={this.handleLoadMore}
prepend={<div className='follow_requests-unlocked_explanation'><span><FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a></span></div>}
emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
/>
</Column>

View File

@ -191,7 +191,7 @@ class AccountCard extends ImmutablePureComponent {
<div className='account-card__counters__item'>
<ShortNumber value={account.get('statuses_count')} />
<small>
<FormattedMessage id='account.posts' defaultMessage='Toots' />
<FormattedMessage id='account.posts' defaultMessage='Posts' />
</small>
</div>

View File

@ -100,7 +100,7 @@ class Results extends React.PureComponent {
<button onClick={this.handleSelectAll} className={type === 'all' && 'active'}><FormattedMessage id='search_results.all' defaultMessage='All' /></button>
<button onClick={this.handleSelectAccounts} className={type === 'accounts' && 'active'}><FormattedMessage id='search_results.accounts' defaultMessage='People' /></button>
<button onClick={this.handleSelectHashtags} className={type === 'hashtags' && 'active'}><FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' /></button>
<button onClick={this.handleSelectStatuses} className={type === 'statuses' && 'active'}><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></button>
<button onClick={this.handleSelectStatuses} className={type === 'statuses' && 'active'}><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></button>
</div>
<div className='explore__search-results'>

View File

@ -70,7 +70,7 @@ class Favourites extends ImmutablePureComponent {
const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
const pinned = !!columnId;
const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite toots yet. When you favourite one, it will show up here." />;
const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite posts yet. When you favourite one, it will show up here." />;
return (
<Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.heading)}>

View File

@ -59,7 +59,7 @@ class Favourites extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this toot yet. When someone does, they will show up here.' />;
const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this post yet. When someone does, they will show up here.' />;
return (
<Column bindToDocument={!multiColumn}>

View File

@ -19,6 +19,8 @@ import ColumnBackButton from '../../components/column_back_button';
import ScrollableList from '../../components/scrollable_list';
import MissingIndicator from 'mastodon/components/missing_indicator';
import TimelineHint from 'mastodon/components/timeline_hint';
import LimitedAccountHint from '../account_timeline/components/limited_account_hint';
import { getAccountHidden } from 'mastodon/selectors';
const mapStateToProps = (state, { params: { acct, id } }) => {
const accountId = id || state.getIn(['accounts_map', acct]);
@ -37,6 +39,8 @@ const mapStateToProps = (state, { params: { acct, id } }) => {
accountIds: state.getIn(['user_lists', 'followers', accountId, 'items']),
hasMore: !!state.getIn(['user_lists', 'followers', accountId, 'next']),
isLoading: state.getIn(['user_lists', 'followers', accountId, 'isLoading'], true),
suspended: state.getIn(['accounts', accountId, 'suspended'], false),
hidden: getAccountHidden(state, accountId),
blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false),
};
};
@ -64,6 +68,8 @@ class Followers extends ImmutablePureComponent {
isLoading: PropTypes.bool,
blockedBy: PropTypes.bool,
isAccount: PropTypes.bool,
suspended: PropTypes.bool,
hidden: PropTypes.bool,
remote: PropTypes.bool,
remoteUrl: PropTypes.string,
multiColumn: PropTypes.bool,
@ -101,7 +107,7 @@ class Followers extends ImmutablePureComponent {
}, 300, { leading: true });
render () {
const { accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, remote, remoteUrl } = this.props;
const { accountId, accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl } = this.props;
if (!isAccount) {
return (
@ -121,7 +127,13 @@ class Followers extends ImmutablePureComponent {
let emptyMessage;
if (blockedBy) {
const forceEmptyState = blockedBy || suspended || hidden;
if (suspended) {
emptyMessage = <FormattedMessage id='empty_column.account_suspended' defaultMessage='Account suspended' />;
} else if (hidden) {
emptyMessage = <LimitedAccountHint accountId={accountId} />;
} else if (blockedBy) {
emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />;
} else if (remote && accountIds.isEmpty()) {
emptyMessage = <RemoteHint url={remoteUrl} />;
@ -137,7 +149,7 @@ class Followers extends ImmutablePureComponent {
<ScrollableList
scrollKey='followers'
hasMore={hasMore}
hasMore={!forceEmptyState && hasMore}
isLoading={isLoading}
onLoadMore={this.handleLoadMore}
prepend={<HeaderContainer accountId={this.props.accountId} hideTabs />}
@ -146,7 +158,7 @@ class Followers extends ImmutablePureComponent {
emptyMessage={emptyMessage}
bindToDocument={!multiColumn}
>
{blockedBy ? [] : accountIds.map(id =>
{forceEmptyState ? [] : accountIds.map(id =>
<AccountContainer key={id} id={id} withNote={false} />,
)}
</ScrollableList>

View File

@ -19,6 +19,8 @@ import ColumnBackButton from '../../components/column_back_button';
import ScrollableList from '../../components/scrollable_list';
import MissingIndicator from 'mastodon/components/missing_indicator';
import TimelineHint from 'mastodon/components/timeline_hint';
import LimitedAccountHint from '../account_timeline/components/limited_account_hint';
import { getAccountHidden } from 'mastodon/selectors';
const mapStateToProps = (state, { params: { acct, id } }) => {
const accountId = id || state.getIn(['accounts_map', acct]);
@ -37,6 +39,8 @@ const mapStateToProps = (state, { params: { acct, id } }) => {
accountIds: state.getIn(['user_lists', 'following', accountId, 'items']),
hasMore: !!state.getIn(['user_lists', 'following', accountId, 'next']),
isLoading: state.getIn(['user_lists', 'following', accountId, 'isLoading'], true),
suspended: state.getIn(['accounts', accountId, 'suspended'], false),
hidden: getAccountHidden(state, accountId),
blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false),
};
};
@ -64,6 +68,8 @@ class Following extends ImmutablePureComponent {
isLoading: PropTypes.bool,
blockedBy: PropTypes.bool,
isAccount: PropTypes.bool,
suspended: PropTypes.bool,
hidden: PropTypes.bool,
remote: PropTypes.bool,
remoteUrl: PropTypes.string,
multiColumn: PropTypes.bool,
@ -101,7 +107,7 @@ class Following extends ImmutablePureComponent {
}, 300, { leading: true });
render () {
const { accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, remote, remoteUrl } = this.props;
const { accountId, accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl } = this.props;
if (!isAccount) {
return (
@ -121,7 +127,13 @@ class Following extends ImmutablePureComponent {
let emptyMessage;
if (blockedBy) {
const forceEmptyState = blockedBy || suspended || hidden;
if (suspended) {
emptyMessage = <FormattedMessage id='empty_column.account_suspended' defaultMessage='Account suspended' />;
} else if (hidden) {
emptyMessage = <LimitedAccountHint accountId={accountId} />;
} else if (blockedBy) {
emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />;
} else if (remote && accountIds.isEmpty()) {
emptyMessage = <RemoteHint url={remoteUrl} />;
@ -137,7 +149,7 @@ class Following extends ImmutablePureComponent {
<ScrollableList
scrollKey='following'
hasMore={hasMore}
hasMore={!forceEmptyState && hasMore}
isLoading={isLoading}
onLoadMore={this.handleLoadMore}
prepend={<HeaderContainer accountId={this.props.accountId} hideTabs />}
@ -146,7 +158,7 @@ class Following extends ImmutablePureComponent {
emptyMessage={emptyMessage}
bindToDocument={!multiColumn}
>
{blockedBy ? [] : accountIds.map(id =>
{forceEmptyState ? [] : accountIds.map(id =>
<AccountContainer key={id} id={id} withNote={false} />,
)}
</ScrollableList>

View File

@ -30,7 +30,7 @@ const messages = defineMessages({
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },
personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },
@ -130,7 +130,7 @@ class GettingStarted extends ImmutablePureComponent {
}
navItems.push(
<ColumnLink key='direct' icon='envelope' text={intl.formatMessage(messages.direct)} to='/conversations' />,
<ColumnLink key='direct' icon='at' text={intl.formatMessage(messages.direct)} to='/conversations' />,
<ColumnLink key='bookmark' icon='bookmark' text={intl.formatMessage(messages.bookmarks)} to='/bookmarks' />,
<ColumnLink key='favourites' icon='star' text={intl.formatMessage(messages.favourites)} to='/favourites' />,
<ColumnLink key='lists' icon='list-ul' text={intl.formatMessage(messages.lists)} to='/lists' />,

View File

@ -86,7 +86,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
</tr>
<tr>
<td><kbd>alt</kbd>+<kbd>n</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new toot' /></td>
<td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new post' /></td>
</tr>
<tr>
<td><kbd>alt</kbd>+<kbd>x</kbd></td>
@ -134,7 +134,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>p</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.pinned' defaultMessage='to open pinned toots list' /></td>
<td><FormattedMessage id='keyboard_shortcuts.pinned' defaultMessage='to open pinned posts list' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>u</kbd></td>

View File

@ -69,7 +69,7 @@ class Mutes extends ImmutablePureComponent {
bindToDocument={!multiColumn}
>
{accountIds.map(id =>
<AccountContainer key={id} id={id} />,
<AccountContainer key={id} id={id} defaultAction='mute' />,
)}
</ScrollableList>
</Column>

View File

@ -145,7 +145,7 @@ export default class ColumnSettings extends React.PureComponent {
</div>
<div role='group' aria-labelledby='notifications-status'>
<span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.status' defaultMessage='New toots:' /></span>
<span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.status' defaultMessage='New posts:' /></span>
<div className='column-settings__row'>
<SettingToggle disabled={browserPermission === 'denied'} prefix='notifications_desktop' settings={settings} settingPath={['alerts', 'status']} onChange={onChange} label={alertStr} />

View File

@ -10,7 +10,7 @@ import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
const messages = defineMessages({
heading: { id: 'column.pins', defaultMessage: 'Pinned toot' },
heading: { id: 'column.pins', defaultMessage: 'Pinned post' },
});
const mapStateToProps = state => ({

View File

@ -59,7 +59,7 @@ class Reblogs extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this toot yet. When someone does, they will show up here.' />;
const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this post yet. When someone does, they will show up here.' />;
return (
<Column bindToDocument={!multiColumn}>

View File

@ -1,5 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { connect } from 'react-redux';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import Button from 'mastodon/components/button';
import Option from './components/option';
@ -17,11 +19,17 @@ const messages = defineMessages({
account: { id: 'report.category.title_account', defaultMessage: 'profile' },
});
export default @injectIntl
const mapStateToProps = state => ({
rules: state.get('rules'),
});
export default @connect(mapStateToProps)
@injectIntl
class Category extends React.PureComponent {
static propTypes = {
onNextStep: PropTypes.func.isRequired,
rules: ImmutablePropTypes.list,
category: PropTypes.string,
onChangeCategory: PropTypes.func.isRequired,
startedFrom: PropTypes.oneOf(['status', 'account']),
@ -53,13 +61,17 @@ class Category extends React.PureComponent {
};
render () {
const { category, startedFrom, intl } = this.props;
const { category, startedFrom, rules, intl } = this.props;
const options = [
const options = rules.size > 0 ? [
'dislike',
'spam',
'violation',
'other',
] : [
'dislike',
'spam',
'other',
];
return (

View File

@ -220,7 +220,6 @@ class ActionBar extends React.PureComponent {
menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick });
} else {
menu.push({ text: intl.formatMessage(messages.mention, { name: status.getIn(['account', 'username']) }), action: this.handleMentionClick });
menu.push({ text: intl.formatMessage(messages.direct, { name: status.getIn(['account', 'username']) }), action: this.handleDirectClick });
menu.push(null);
if (relationship && relationship.get('muting')) {

View File

@ -185,7 +185,7 @@ class DetailedStatus extends ImmutablePureComponent {
'public': { icon: 'globe', text: intl.formatMessage(messages.public_short) },
'unlisted': { icon: 'unlock', text: intl.formatMessage(messages.unlisted_short) },
'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) },
'direct': { icon: 'envelope', text: intl.formatMessage(messages.direct_short) },
'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) },
};
const visibilityIcon = visibilityIconInfo[status.get('visibility')];

View File

@ -88,7 +88,7 @@ class BoostModal extends ImmutablePureComponent {
'public': { icon: 'globe', text: intl.formatMessage(messages.public_short) },
'unlisted': { icon: 'unlock', text: intl.formatMessage(messages.unlisted_short) },
'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) },
'direct': { icon: 'envelope', text: intl.formatMessage(messages.direct_short) },
'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) },
};
const visibilityIcon = visibilityIconInfo[status.get('visibility')];

View File

@ -234,7 +234,7 @@ class ColumnsArea extends ImmutablePureComponent {
</div>
</div>
<div className='columns-area__panels__main'>
<div className={`columns-area__panels__main ${floatingActionButton && 'with-fab'}`}>
<TabsBar key='tabs' />
{content}
</div>

View File

@ -16,7 +16,7 @@ const NavigationPanel = () => (
<NavLink className='column-link column-link--transparent' to='/explore' data-preview-title-id='explore.title' data-preview-icon='hashtag'><Icon className='column-link__icon' id='hashtag' fixedWidth /><FormattedMessage id='explore.title' defaultMessage='Explore' /></NavLink>
<NavLink className='column-link column-link--transparent' to='/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><Icon className='column-link__icon' id='users' fixedWidth /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>
<NavLink className='column-link column-link--transparent' exact to='/public' data-preview-title-id='column.public' data-preview-icon='globe' ><Icon className='column-link__icon' id='globe' fixedWidth /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>
<NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='envelope' fixedWidth /><FormattedMessage id='navigation_bar.direct' defaultMessage='Direct messages' /></NavLink>
<NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='at' fixedWidth /><FormattedMessage id='navigation_bar.direct' defaultMessage='Direct messages' /></NavLink>
<NavLink className='column-link column-link--transparent' to='/favourites'><Icon className='column-link__icon' id='star' fixedWidth /><FormattedMessage id='navigation_bar.favourites' defaultMessage='Favourites' /></NavLink>
<NavLink className='column-link column-link--transparent' to='/bookmarks'><Icon className='column-link__icon' id='bookmark' fixedWidth /><FormattedMessage id='navigation_bar.bookmarks' defaultMessage='Bookmarks' /></NavLink>
<NavLink className='column-link column-link--transparent' to='/lists'><Icon className='column-link__icon' id='list-ul' fixedWidth /><FormattedMessage id='navigation_bar.lists' defaultMessage='Lists' /></NavLink>

View File

@ -14,6 +14,7 @@ import { uploadCompose, resetCompose, changeComposeSpoilerness } from '../../act
import { expandHomeTimeline } from '../../actions/timelines';
import { expandNotifications } from '../../actions/notifications';
import { fetchFilters } from '../../actions/filters';
import { fetchRules } from '../../actions/rules';
import { clearHeight } from '../../actions/height_cache';
import { focusApp, unfocusApp, changeLayout } from 'mastodon/actions/app';
import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'mastodon/actions/markers';
@ -368,6 +369,7 @@ class UI extends React.PureComponent {
this.props.dispatch(expandHomeTimeline());
this.props.dispatch(expandNotifications());
setTimeout(() => this.props.dispatch(fetchFilters()), 500);
setTimeout(() => this.props.dispatch(fetchRules()), 3000);
this.hotkeys.__mousetrap__.stopCallback = (e, element) => {
return ['TEXTAREA', 'SELECT', 'INPUT'].includes(element.tagName);

View File

@ -27,5 +27,6 @@ export const showTrends = getMeta('trends');
export const title = getMeta('title');
export const cropImages = getMeta('crop_images');
export const disableSwiping = getMeta('disable_swiping');
export const languages = initialState && initialState.languages;
export default initialState;

View File

@ -1,112 +1,114 @@
{
"account.account_note_header": "Note",
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Voeg by of verwyder van lyste",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "Block @{name}",
"account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.browse_more_on_origin_server": "Browse more on the original profile",
"account.cancel_follow_request": "Cancel follow request",
"account.direct": "Direct message @{name}",
"account.badges.group": "Groep",
"account.block": "Blok @{name}",
"account.block_domain": "Blokeer alles van {domain}",
"account.blocked": "Geblok",
"account.browse_more_on_origin_server": "Snuffel rond op oorspronklike profiel",
"account.cancel_follow_request": "Kanselleer volgversoek",
"account.direct": "Stuur direkte boodskap aan @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Domain blocked",
"account.edit_profile": "Edit profile",
"account.enable_notifications": "Notify me when @{name} posts",
"account.endorse": "Feature on profile",
"account.follow": "Follow",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
"account.edit_profile": "Redigeer profiel",
"account.enable_notifications": "Stel my in kennis wanneer @{name} plasings maak",
"account.endorse": "Beklemtoon op profiel",
"account.follow": "Volg",
"account.followers": "Volgelinge",
"account.followers.empty": "Niemand volg tans hierdie gebruiker nie.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following": "Following",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.joined": "Joined {date}",
"account.link_verified_on": "Ownership of this link was checked on {date}",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.follows.empty": "Die gebruiker volg nie tans iemand nie.",
"account.follows_you": "Volg jou",
"account.hide_reblogs": "Versteek hupstoot vanaf @{name}",
"account.joined": "{date} aangesluit",
"account.link_verified_on": "Eienaarskap van die skakel was getoets op {date}",
"account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.",
"account.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.mention": "Noem @{name}",
"account.moved_to": "{name} is geskuif na:",
"account.mute": "Demp @{name}",
"account.mute_notifications": "Demp kennisgewings van @{name}",
"account.muted": "Gedemp",
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.report": "Report @{name}",
"account.report": "Rapporteer @{name}",
"account.requested": "Awaiting approval",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.share": "Deel @{name} se profiel",
"account.show_reblogs": "Wys hupstote vanaf @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unblock domain {domain}",
"account.unblock_short": "Unblock",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.unmute_short": "Unmute",
"account.unblock": "Ontblok @{name}",
"account.unblock_domain": "Ontblok domein {domain}",
"account.unblock_short": "Ontblok",
"account.unendorse": "Moenie beklemtoon op profiel nie",
"account.unfollow": "Ontvolg",
"account.unmute": "Ontdemp @{name}",
"account.unmute_notifications": "Ontdemp kennisgewings vanaf @{name}",
"account.unmute_short": "Ontdemp",
"account_note.placeholder": "Click to add a note",
"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.retention.average": "Average",
"admin.dashboard.retention.average": "Gemiddeld",
"admin.dashboard.retention.cohort": "Sign-up month",
"admin.dashboard.retention.cohort_size": "New users",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
"admin.dashboard.retention.cohort_size": "Nuwe gebruikers",
"alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"announcement.announcement": "Announcement",
"announcement.announcement": "Aankondiging",
"attachments_list.unprocessed": "(unprocessed)",
"autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
"bundle_column_error.retry": "Probeer weer",
"bundle_column_error.title": "Netwerk fout",
"bundle_modal_error.close": "Close",
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Try again",
"bundle_modal_error.message": "Iets het verkeerd gegaan terwyl hierdie komponent besig was om te laai.",
"bundle_modal_error.retry": "Probeer weer",
"column.blocks": "Blocked users",
"column.bookmarks": "Bookmarks",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.directory": "Browse profiles",
"column.domain_blocks": "Blocked domains",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.notifications": "Notifications",
"column.bookmarks": "Boekmerke",
"column.community": "Plaaslike tydlyn",
"column.direct": "Direkte boodskappe",
"column.directory": "Blaai deur profiele",
"column.domain_blocks": "Geblokte domeine",
"column.favourites": "Gunstelinge",
"column.follow_requests": "Volgversoeke",
"column.home": "Tuis",
"column.lists": "Lyste",
"column.mutes": "Gedempte gebruikers",
"column.notifications": "Kennisgewings",
"column.pins": "Pinned toot",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_header.hide_settings": "Hide settings",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"community.column_settings.local_only": "Local only",
"column.public": "Gefedereerde tydlyn",
"column_back_button.label": "Terug",
"column_header.hide_settings": "Versteek instellings",
"column_header.moveLeft_settings": "Skuif kolom na links",
"column_header.moveRight_settings": "Skuif kolom na regs",
"column_header.pin": "Pen vas",
"column_header.show_settings": "Wys instellings",
"column_header.unpin": "Ontpen",
"column_subheading.settings": "Instellings",
"community.column_settings.local_only": "Slegs plaaslik",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"community.column_settings.remote_only": "Slegs afgeleë",
"compose.language.change": "Verander taal",
"compose.language.search": "Soek tale...",
"compose_form.direct_message_warning_learn_more": "Leer meer",
"compose_form.encryption_warning": "Plasings op Mastodon het nie end-tot-end enkripsie nie. Moet nie enige gevaarlike inligting oor Mastodon deel nie.",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.lock_disclaimer.lock": "gesluit",
"compose_form.placeholder": "What is on your mind?",
"compose_form.poll.add_option": "Add a choice",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
"compose_form.poll.remove_option": "Remove this choice",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "Toot",
"compose_form.poll.add_option": "Voeg 'n keuse by",
"compose_form.poll.duration": "Duur van peiling",
"compose_form.poll.option_placeholder": "Keuse {number}",
"compose_form.poll.remove_option": "Verwyder hierdie keuse",
"compose_form.poll.switch_to_multiple": "Verander die peiling na verskeie keuses",
"compose_form.poll.switch_to_single": "Verander die peiling na 'n enkel keuse",
"compose_form.publish": "Toet",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.save_changes": "Stoor veranderinge",
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
"compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
@ -147,6 +149,7 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.clear": "Maak skoon",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
@ -166,7 +169,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.direct": "Jy het nog nie direkte boodskappe nie. Wanneer jy een stuur of ontvang, sal dit hier verskyn.",
"empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.direct": "om direkte boodskappe kolom oop te maak",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
@ -264,6 +267,8 @@
"lightbox.expand": "Expand image view box",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"limited_account_hint.action": "Vertoon profiel in elkgeval",
"limited_account_hint.title": "Hierdie profiel is deur moderators van jou bediener versteek.",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
@ -290,7 +295,7 @@
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.direct": "Direkte boodskappe",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Visible for mentioned users only",
"privacy.direct.short": "Direct",
"privacy.direct.short": "Slegs genoemde persone",
"privacy.private.long": "Visible for followers only",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all, shown in public timelines",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Visible for all, but not in public timelines",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Unlisted",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",

View File

@ -70,17 +70,17 @@
"column.blocks": "المُستَخدِمون المَحظورون",
"column.bookmarks": "الفواصل المرجعية",
"column.community": "الخيط الزمني المحلي",
"column.direct": "الرسائل المباشرة",
"column.direct": "الرسائل المباشِرة",
"column.directory": "تَصَفُّحُ المَلفات الشخصية",
"column.domain_blocks": "النِّطاقَاتُ المَحظُورَة",
"column.domain_blocks": "النطاقات المحظورة",
"column.favourites": "المُفَضَّلَة",
"column.follow_requests": َلَبَاتُ المُتَابَعَة",
"column.follow_requests": لبات المتابعة",
"column.home": "الرئيسية",
"column.lists": "القوائم",
"column.mutes": "المُستَخدِمون المَكتومون",
"column.notifications": "الإشعارات",
"column.pins": "المنشورات المُثَبَّتَة",
"column.public": "الخَطُّ الزَّمَنِيُّ المُوَحَّد",
"column.public": "الخيط الزمني المُوَحَّد",
"column_back_button.label": "العودة",
"column_header.hide_settings": "إخفاء الإعدادات",
"column_header.moveLeft_settings": "نقل العامود إلى اليسار",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "المحلي فقط",
"community.column_settings.media_only": "الوسائط فقط",
"community.column_settings.remote_only": "عن بُعد فقط",
"compose_form.direct_message_warning": "سوف تُرسَل هذه التَّبويقة فقط للمُستَخدِمين المَذكورين.",
"compose.language.change": "تغيير اللغة",
"compose.language.search": "البحث عن لغة…",
"compose_form.direct_message_warning_learn_more": "تَعَلَّم المَزيد",
"compose_form.encryption_warning": "إنّ المنشورات على ماستدون ليست مشفرة من النهاية إلى النهاية. لا تشارك أي معلومات حساسة عبر ماستدون.",
"compose_form.hashtag_warning": "لن يُدرَج هذا المنشور تحت أي وسم بما أنَّه غير مُدرَج. فقط المنشورات العامة يُمكن البحث عنها بواسطة الوسم.",
"compose_form.lock_disclaimer": "حسابُك غير {locked}. يُمكن لأي شخص مُتابعتك لرؤية (منشورات المتابعين فقط).",
"compose_form.lock_disclaimer.lock": "مُقفَل",
@ -104,7 +106,7 @@
"compose_form.poll.remove_option": "إزالة هذا الخيار",
"compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
"compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
"compose_form.publish": "تبويق",
"compose_form.publish": "بوّق",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "احفظ التعديلات",
"compose_form.sensitive.hide": "{count, plural, one {الإشارة إلى الوَسط كمُحتوى حسّاس} two{الإشارة إلى الوسطان كمُحتويان حسّاسان} other {الإشارة إلى الوسائط كمُحتويات حسّاسة}}",
@ -130,7 +132,7 @@
"confirmations.mute.confirm": "أكتم",
"confirmations.mute.explanation": "هذا سيخفي المنشورات عنهم وتلك المشار فيها إليهم، لكنه سيسمح لهم برؤية منشوراتك ومتابعتك.",
"confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟",
"confirmations.redraft.confirm": "إزالة و إعادة الصياغة",
"confirmations.redraft.confirm": "إزالة وإعادة الصياغة",
"confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.",
"confirmations.reply.confirm": "رد",
"confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟",
@ -147,12 +149,13 @@
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
"embed.preview": "هكذا ما سوف يبدو عليه:",
"emoji_button.activity": "الأنشطة",
"emoji_button.clear": "امسح",
"emoji_button.custom": "مخصص",
"emoji_button.flags": "الأعلام",
"emoji_button.food": "الطعام والشراب",
"emoji_button.label": "أدرج إيموجي",
"emoji_button.nature": "الطبيعة",
"emoji_button.not_found": "لا إيموجو!! (╯°□°)╯︵ ┻━┻",
"emoji_button.not_found": "لا توجد هناك وجوه تعبيرية مطابقة",
"emoji_button.objects": "أشياء",
"emoji_button.people": "الناس",
"emoji_button.recent": "الشائعة الاستخدام",
@ -168,7 +171,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": "يبدو أنه لا يمكن إنشاء أي اقتراحات لك. يمكنك البحث عن أشخاص قد تعرفهم أو استكشاف الوسوم الرائجة.",
@ -264,6 +267,8 @@
"lightbox.expand": "توسيع مربع عرض الصور",
"lightbox.next": "التالي",
"lightbox.previous": "العودة",
"limited_account_hint.action": "إظهار الملف التعريفي على أي حال",
"limited_account_hint.title": "أخف مشرف الخادم هذا الملف التعريفي.",
"lists.account.add": "أضف إلى القائمة",
"lists.account.remove": "احذف من القائمة",
"lists.delete": "احذف القائمة",
@ -278,8 +283,8 @@
"lists.search": "إبحث في قائمة الحسابات التي تُتابِعها",
"lists.subheading": "قوائمك",
"load_pending": "{count, plural, one {# عنصر جديد} other {# عناصر جديدة}}",
"loading_indicator.label": "تحميل...",
"media_gallery.toggle_visible": "عرض / إخفاء",
"loading_indicator.label": "جارٍ التحميل…",
"media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}",
"missing_indicator.label": "غير موجود",
"missing_indicator.sublabel": "تعذر العثور على هذا المورد",
"mute_modal.duration": "المدة",
@ -288,11 +293,11 @@
"navigation_bar.apps": "تطبيقات الأجهزة المحمولة",
"navigation_bar.blocks": "الحسابات المحجوبة",
"navigation_bar.bookmarks": "الفواصل المرجعية",
"navigation_bar.community_timeline": "الخيط العام المحلي",
"navigation_bar.compose": "لتحرير منشور جديد",
"navigation_bar.community_timeline": "الخيط المحلي",
"navigation_bar.compose": "تحرير منشور جديد",
"navigation_bar.direct": "الرسائل المباشِرة",
"navigation_bar.discover": "اكتشف",
"navigation_bar.domain_blocks": "النطاقات المخفية",
"navigation_bar.domain_blocks": "النطاقات المحظورة",
"navigation_bar.edit_profile": "عدّل الملف التعريفي",
"navigation_bar.explore": "استكشف",
"navigation_bar.favourites": "المفضلة",
@ -309,7 +314,7 @@
"navigation_bar.preferences": "التفضيلات",
"navigation_bar.public_timeline": "الخيط العام الموحد",
"navigation_bar.security": "الأمان",
"notification.admin.sign_up": "{name} signed up",
"notification.admin.sign_up": "أنشأ {name} حسابًا",
"notification.favourite": "أُعجِب {name} بمنشورك",
"notification.follow": "{name} يتابعك",
"notification.follow_request": "لقد طلب {name} متابعتك",
@ -318,7 +323,7 @@
"notification.poll": "لقد انتهى استطلاع رأي شاركتَ فيه",
"notification.reblog": "قام {name} بمشاركة منشورك",
"notification.status": "{name} نشر للتو",
"notification.update": "{name} edited a post",
"notification.update": "عدّلَ {name} منشورًا",
"notifications.clear": "امسح الإخطارات",
"notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟",
"notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:",
@ -366,13 +371,13 @@
"poll_button.add_poll": "إضافة استطلاع للرأي",
"poll_button.remove_poll": "إزالة استطلاع الرأي",
"privacy.change": "اضبط خصوصية المنشور",
"privacy.direct.long": "أنشر إلى المستخدمين المشار إليهم فقط",
"privacy.direct.short": "مباشر",
"privacy.direct.long": "مرئي للمستخدمين المذكورين فقط",
"privacy.direct.short": "الأشخاص المشار إليهم فقط",
"privacy.private.long": "أنشر لمتابعيك فقط",
"privacy.private.short": متابعيك فقط",
"privacy.public.long": "أنشر على الخيوط العامة",
"privacy.private.short": لمتابِعين فقط",
"privacy.public.long": "مرئي للكل",
"privacy.public.short": "للعامة",
"privacy.unlisted.long": "لا تقم بإدراجه على الخيوط العامة",
"privacy.unlisted.long": "مرئي للجميع، ولكن مِن دون ميزات الاكتشاف",
"privacy.unlisted.short": "غير مدرج",
"refresh": "أنعِش",
"regeneration_indicator.label": "جارٍ التحميل…",
@ -394,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": "تم",
@ -408,19 +413,19 @@
"report.placeholder": "تعليقات إضافية",
"report.reasons.dislike": "لايعجبني",
"report.reasons.dislike_description": "ألا ترغب برؤيته",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.other": "شيء آخر",
"report.reasons.other_description": "لا تندرج هذه المشكلة ضمن فئات أخرى",
"report.reasons.spam": "إنها رسالة مزعجة",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.spam_description": "روابط خبيثة أو تفاعل كاذب أو ردود متكررة",
"report.reasons.violation": "ينتهك قواعد الخادم",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.reasons.violation_description": "تعلم أنه ينتهك قواعد محددة",
"report.rules.subtitle": "اختر كل ما ينطبق",
"report.rules.title": "ما هي القواعد المنتهكة؟",
"report.statuses.subtitle": "Select all that apply",
"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": "يمكنك هنا التحكم في ما يعرض لك على ماستدون:",
"report.thanks.take_action_actionable": "في أثناء مراجعتنا للبلاغ، يمكنك اتخاذ إجراء ضد @{name}:",
"report.thanks.title": "هل ترغب في مشاهدة هذا؟",
"report.thanks.title_actionable": "شُكرًا لَكَ على الإبلاغ، سَوفَ نَنظُرُ فِي هَذَا الأمر.",
@ -456,8 +461,8 @@
"status.embed": "إدماج",
"status.favourite": "أضف إلى المفضلة",
"status.filtered": "مُصفّى",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.history.created": "أنشأه {name} {date}",
"status.history.edited": "عدله {name} {date}",
"status.load_more": "حمّل المزيد",
"status.media_hidden": "الصورة مستترة",
"status.mention": "أذكُر @{name}",
@ -515,7 +520,7 @@
"upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
"upload_form.audio_description": "وصف للأشخاص ذي قِصر السمع",
"upload_form.description": "وصف للمعاقين بصريا",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "لم يُضف وصف",
"upload_form.edit": "تعديل",
"upload_form.thumbnail": "غيّر الصورة المصغرة",
"upload_form.undo": "حذف",

View File

@ -92,9 +92,11 @@
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Namái multimedia",
"community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Esti barritu namái va unviase a los usuarios mentaos.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Saber más",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "¿En qué pienses?",
@ -147,6 +149,7 @@
"embed.instructions": "Empotra esti estáu nun sitiu web copiando'l códigu d'embaxo.",
"embed.preview": "Asina ye cómo va vese:",
"emoji_button.activity": "Actividaes",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Banderes",
"emoji_button.food": "Comida y bébora",
@ -166,11 +169,11 @@
"empty_column.blocks": "Entá nun bloquiesti a nengún usuariu.",
"empty_column.bookmarked_statuses": "Entá nun tienes nengún barritu en Marcadores. Cuando amiestes unu, va amosase equí.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "Entá nun tienes nuengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
"empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaez equí.",
"empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
"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.",
"empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
"empty_column.hashtag": "Entá nun hai nada nesta etiqueta.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "Enfocar l'área de composición",
"keyboard_shortcuts.description": "Descripción",
"keyboard_shortcuts.direct": "Abrir la columna de los mensaxes direutos",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "pa baxar na llista",
"keyboard_shortcuts.enter": "p'abrir estaos",
"keyboard_shortcuts.favourite": "p'amestar a Favoritos",
@ -264,6 +267,8 @@
"lightbox.expand": "Expand image view box",
"lightbox.next": "Siguiente",
"lightbox.previous": "Previous",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Amestar a la llista",
"lists.account.remove": "Desaniciar de la llista",
"lists.delete": "Desaniciar la llista",
@ -289,7 +294,7 @@
"navigation_bar.blocks": "Usuarios bloquiaos",
"navigation_bar.bookmarks": "Marcadores",
"navigation_bar.community_timeline": "Llinia temporal llocal",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Mensaxes direutos",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Dominios anubríos",
@ -369,10 +374,10 @@
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only",
"privacy.private.short": "Namái siguidores",
"privacy.public.long": "Visible for all, shown in public timelines",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Nun apaez nes llinies temporales públiques",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Nun llistar",
"refresh": "Refresh",
"regeneration_indicator.label": "Cargando…",
@ -404,7 +409,7 @@
"report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar ellí tamién una copia anónima del informe?",
"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.next": "Next",
"report.next": "Siguiente",
"report.placeholder": "Comentarios adicionales",
"report.reasons.dislike": "I don't like it",
"report.reasons.dislike_description": "It is not something you want to see",
@ -412,7 +417,7 @@
"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": "Incumple les regles del sirvidor",
"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?",
@ -420,7 +425,7 @@
"report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Unviar",
"report.target": "Report {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
"report.thanks.take_action": "Equí tan les opciones pa controlar qué ver en 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.title_actionable": "Thanks for reporting, we'll look into this.",
@ -502,7 +507,7 @@
"timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
"timeline_hint.resources.followers": "Followers",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Older toots",
"timeline_hint.resources.statuses": "Older posts",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.trending_now": "Trending now",
"ui.beforeunload": "El borrador va perdese si coles de Mastodon.",

View File

@ -70,7 +70,7 @@
"column.blocks": "Блокирани потребители",
"column.bookmarks": "Отметки",
"column.community": "Локална емисия",
"column.direct": "Директни съобщения",
"column.direct": "Direct messages",
"column.directory": "Преглед на профили",
"column.domain_blocks": "Hidden domains",
"column.favourites": "Любими",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Само локално",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Само дистанционно",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Още информация",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "Тази публикация няма да бъде изброена под нито един хаштаг, тъй като е скрита. Само публични публикации могат да се търсят по хаштаг.",
"compose_form.lock_disclaimer": "Вашият акаунт не е {locked}. Всеки може да ви последва, за да прегледа вашите публикации само за последователи.",
"compose_form.lock_disclaimer.lock": "заключено",
@ -147,6 +149,7 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Ето как ще изглежда:",
"emoji_button.activity": "Дейност",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Персонализирано",
"emoji_button.flags": "Знамена",
"emoji_button.food": "Храна и напитки",
@ -166,7 +169,7 @@
"empty_column.blocks": "Не сте блокирали потребители все още.",
"empty_column.bookmarked_statuses": "Все още нямате отметнати публикации. Когато отметнете някоя, тя ще се покаже тук.",
"empty_column.community": "Локалната емисия е празна. Напишете нещо публично, за да започнете!",
"empty_column.direct": "Все още нямате директни съобщения. Когато изпратите или получите някое, то ще се покаже тук.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "Все още нямате любими публикации. Когато поставите някоя в любими, тя ще се покаже тук.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "за фокусиране на текстовото пространство за композиране",
"keyboard_shortcuts.description": "Описание",
"keyboard_shortcuts.direct": "за отваряне на колона за директни съобщения",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "за придвижване надолу в списъка",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "за поставяне в любими",
@ -264,6 +267,8 @@
"lightbox.expand": "Разгъване на полето за преглед на изображение",
"lightbox.next": "Напред",
"lightbox.previous": "Назад",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Добавяне към списък",
"lists.account.remove": "Премахване от списък",
"lists.delete": "Изтриване на списък",
@ -290,7 +295,7 @@
"navigation_bar.bookmarks": "Отметки",
"navigation_bar.community_timeline": "Локална емисия",
"navigation_bar.compose": "Композиране на нова публикация",
"navigation_bar.direct": "Директни съобщения",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Откриване",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Редактирай профил",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Премахване на анкета",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Директно",
"privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only",
"privacy.private.short": "Само за последователи",
"privacy.public.long": "Post to public timelines",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Публично",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Скрито",
"refresh": "Опресняване",
"regeneration_indicator.label": "Зареждане…",

View File

@ -70,7 +70,7 @@
"column.blocks": "যাদের ব্লক করা হয়েছে",
"column.bookmarks": "বুকমার্ক",
"column.community": "স্থানীয় সময়সারি",
"column.direct": "সরাসরি লেখা",
"column.direct": "Direct messages",
"column.directory": "প্রোফাইল ব্রাউজ করুন",
"column.domain_blocks": "লুকোনো ডোমেনগুলি",
"column.favourites": "পছন্দের গুলো",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "শুধুমাত্র স্থানীয়",
"community.column_settings.media_only": "শুধুমাত্র ছবি বা ভিডিও",
"community.column_settings.remote_only": "শুধুমাত্র দূরবর্তী",
"compose_form.direct_message_warning": "শুধুমাত্র যাদেরকে উল্লেখ করা হয়েছে তাদেরকেই এই টুটটি পাঠানো হবে ।",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "আরো জানুন",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "কোনো হ্যাশট্যাগের ভেতরে এই টুটটি থাকবেনা কারণ এটি তালিকাবহির্ভূত। শুধুমাত্র প্রকাশ্য ঠোটগুলো হ্যাশট্যাগের ভেতরে খুঁজে পাওয়া যাবে।",
"compose_form.lock_disclaimer": "আপনার নিবন্ধনে তালা দেওয়া নেই, যে কেও আপনাকে অনুসরণ করতে পারবে এবং অনুশারকদের জন্য লেখা দেখতে পারবে।",
"compose_form.lock_disclaimer.lock": "তালা দেওয়া",
@ -147,6 +149,7 @@
"embed.instructions": "এই লেখাটি আপনার ওয়েবসাইটে যুক্ত করতে নিচের কোডটি বেবহার করুন।",
"embed.preview": "সেটা দেখতে এরকম হবে:",
"emoji_button.activity": "কার্যকলাপ",
"emoji_button.clear": "Clear",
"emoji_button.custom": "প্রথা",
"emoji_button.flags": "পতাকা",
"emoji_button.food": "খাদ্য ও পানীয়",
@ -166,7 +169,7 @@
"empty_column.blocks": "আপনি কোনো ব্যবহারকারীদের ব্লক করেন নি।",
"empty_column.bookmarked_statuses": "আপনার কাছে এখনও কোনও বুকমার্কড টুট নেই। আপনি যখন একটি বুকমার্ক করেন, এটি এখানে প্রদর্শিত হবে।",
"empty_column.community": "স্থানীয় সময়রেখাতে কিছু নেই। প্রকাশ্যভাবে কিছু লিখে লেখালেখির উদ্বোধন করে ফেলুন!",
"empty_column.direct": "আপনার কাছে সরাসরি পাঠানো কোনো লেখা নেই। যদি কেও পাঠায়, সেটা এখানে দেখা যাবে।",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "এখনও কোনও লুকানো ডোমেন নেই।",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "আপনার পছন্দের কোনো টুট এখনো নেই। আপনি কোনো লেখা পছন্দের হিসেবে চিহ্নিত করলে এখানে পাওয়া যাবে।",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "কোনো কলামএ কোনো লেখা ফোকাস করতে",
"keyboard_shortcuts.compose": "লেখা সম্পদনার জায়গায় ফোকাস করতে",
"keyboard_shortcuts.description": "বিবরণ",
"keyboard_shortcuts.direct": "সরাসরি পাঠানো লেখা দেখতে",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "তালিকার ভেতরে নিচে যেতে",
"keyboard_shortcuts.enter": "অবস্থা দেখতে",
"keyboard_shortcuts.favourite": "পছন্দের দেখতে",
@ -264,6 +267,8 @@
"lightbox.expand": "Expand image view box",
"lightbox.next": "পরবর্তী",
"lightbox.previous": "পূর্ববর্তী",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "তালিকাতে যুক্ত করতে",
"lists.account.remove": "তালিকা থেকে বাদ দিতে",
"lists.delete": "তালিকা মুছে ফেলতে",
@ -290,7 +295,7 @@
"navigation_bar.bookmarks": "বুকমার্ক",
"navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
"navigation_bar.compose": "নতুন টুট লিখুন",
"navigation_bar.direct": "সরাসরি লেখাগুলি",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "ঘুরে দেখুন",
"navigation_bar.domain_blocks": "লুকানো ডোমেনগুলি",
"navigation_bar.edit_profile": "নিজের পাতা সম্পাদনা করতে",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "নির্বাচন বাদ দিতে",
"privacy.change": "লেখার গোপনীয়তা অবস্থা ঠিক করতে",
"privacy.direct.long": "শুধুমাত্র উল্লেখিত ব্যবহারকারীদের কাছে লিখতে",
"privacy.direct.short": "সরাসরি",
"privacy.direct.short": "Direct",
"privacy.private.long": "শুধুমাত্র আপনার অনুসরণকারীদের লিখতে",
"privacy.private.short": "শুধুমাত্র অনুসরণকারীদের জন্য",
"privacy.public.long": "সর্বজনীন প্রকাশ্য সময়রেখাতে লিখতে",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "সর্বজনীন প্রকাশ্য",
"privacy.unlisted.long": "সর্বজনীন প্রকাশ্য সময়রেখাতে না দেখাতে",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "প্রকাশ্য নয়",
"refresh": "সতেজ করা",
"regeneration_indicator.label": "আসছে…",

View File

@ -70,7 +70,7 @@
"column.blocks": "Implijer·ezed·ien berzet",
"column.bookmarks": "Sinedoù",
"column.community": "Red-amzer lec'hel",
"column.direct": "Kemennadoù prevez",
"column.direct": "Direct messages",
"column.directory": "Mont a-dreuz ar profiloù",
"column.domain_blocks": "Domani berzet",
"column.favourites": "Muiañ-karet",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Nemet lec'hel",
"community.column_settings.media_only": "Nemet Mediaoù",
"community.column_settings.remote_only": "Nemet a-bell",
"compose_form.direct_message_warning": "An toud-mañ a vo kaset nemet d'an implijer·ezed·ien meneget.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "Ne vo ket lakaet an toud-mañ er rolloù gerioù-klik dre mard eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.",
"compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal heuliañ ac'hanoc'h evit gwelout ho toudoù prevez.",
"compose_form.lock_disclaimer.lock": "prennet",
@ -147,6 +149,7 @@
"embed.instructions": "Enkorfit ar statud war ho lec'hienn en ur eilañ ar c'hod dindan.",
"embed.preview": "Setu penaos e vo diskouezet:",
"emoji_button.activity": "Obererezh",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Kempennet",
"emoji_button.flags": "Bannieloù",
"emoji_button.food": "Boued hag Evaj",
@ -166,7 +169,7 @@
"empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.",
"empty_column.bookmarked_statuses": "N'ho peus toud ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan ganeoc'h e teuio war wel amañ.",
"empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !",
"empty_column.direct": "N'ho peus kemennad prevez ebet c'hoazh. Pa vo resevet pe kaset unan ganeoc'h e teuio war wel amañ.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "N'ho peus toud muiañ-karet ebet c'hoazh. Pa vo lakaet unan ganeoc'h e vo diskouezet amañ.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "Fokus ar bann",
"keyboard_shortcuts.compose": "Fokus an takad testenn",
"keyboard_shortcuts.description": "Deskrivadur",
"keyboard_shortcuts.direct": "Digeriñ bann ar c'hemennadennoù prevez",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "Diskennañ er roll",
"keyboard_shortcuts.enter": "evit digeriñ un toud",
"keyboard_shortcuts.favourite": "Lakaat an toud evel muiañ-karet",
@ -264,6 +267,8 @@
"lightbox.expand": "Ledanaat boest hewel ar skeudenn",
"lightbox.next": "Da-heul",
"lightbox.previous": "A-raok",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Ouzhpennañ d'al listenn",
"lists.account.remove": "Lemel kuit eus al listenn",
"lists.delete": "Dilemel al listenn",
@ -290,7 +295,7 @@
"navigation_bar.bookmarks": "Sinedoù",
"navigation_bar.community_timeline": "Red-amzer lec'hel",
"navigation_bar.compose": "Skrivañ un toud nevez",
"navigation_bar.direct": "Kemennadoù prevez",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Dizoleiñ",
"navigation_bar.domain_blocks": "Domanioù kuzhet",
"navigation_bar.edit_profile": "Aozañ ar profil",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Dilemel ar sontadeg",
"privacy.change": "Kemmañ gwelidigezh ar statud",
"privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken",
"privacy.direct.short": "War-eeun",
"privacy.direct.short": "Direct",
"privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken",
"privacy.private.short": "Ar re a heuilh ac'hanon hepken",
"privacy.public.long": "Embann war ar redoù-amzer foran",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Publik",
"privacy.unlisted.long": "Na embann war ar redoù-amzer foran",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Anlistennet",
"refresh": "Freskaat",
"regeneration_indicator.label": "O kargañ…",

View File

@ -1,77 +1,77 @@
{
"account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Afegir o Treure de les llistes",
"account.add_or_remove_from_list": "Afegeix o elimina de les llistes",
"account.badges.bot": "Bot",
"account.badges.group": "Grup",
"account.block": "Bloqueja @{name}",
"account.block_domain": "Amaga-ho tot de {domain}",
"account.block_domain": "Bloqueja el domini {domain}",
"account.blocked": "Bloquejat",
"account.browse_more_on_origin_server": "Navega més en el perfil original",
"account.cancel_follow_request": "Anul·la la sol·licitud de seguiment",
"account.direct": "Missatge directe @{name}",
"account.disable_notifications": "Deixa de notificar-me les publicacions de @{name}",
"account.direct": "Envia missatge directe a @{name}",
"account.disable_notifications": "No em notifiquis les publicacions de @{name}",
"account.domain_blocked": "Domini bloquejat",
"account.edit_profile": "Edita el perfil",
"account.enable_notifications": "Notificam les publicacions de @{name}",
"account.endorse": "Recomana en el teu perfil",
"account.follow": "Segueix",
"account.followers": "Seguidors",
"account.followers.empty": "Encara ningú no segueix aquest usuari.",
"account.followers.empty": "Ningú segueix aquest usuari encara.",
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}",
"account.following": "Seguint",
"account.following_counter": "{count, plural, other {{counter} Seguint}}",
"account.follows.empty": "Aquest usuari encara no segueix a ningú.",
"account.follows.empty": "Aquest usuari encara no segueix ningú.",
"account.follows_you": "Et segueix",
"account.hide_reblogs": "Amaga els impulsos de @{name}",
"account.joined": "Unit des de {date}",
"account.joined": "Membre des de {date}",
"account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}",
"account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.",
"account.media": "Mèdia",
"account.mention": "Esmenta @{name}",
"account.moved_to": "{name} s'ha mogut a:",
"account.media": "Multimèdia",
"account.mention": "Menciona @{name}",
"account.moved_to": "{name} s'ha traslladat a:",
"account.mute": "Silencia @{name}",
"account.mute_notifications": "Notificacions silenciades de @{name}",
"account.mute_notifications": "Silencia les notificacions de @{name}",
"account.muted": "Silenciat",
"account.posts": "Publicacions",
"account.posts_with_replies": "Publicacions i respostes",
"account.report": "Informar sobre @{name}",
"account.requested": "Esperant aprovació. Clic per a cancel·lar la petició de seguiment",
"account.report": "Informa sobre @{name}",
"account.requested": "Esperant aprovació. Fes clic per cancel·lar la petició de seguiment",
"account.share": "Comparteix el perfil de @{name}",
"account.show_reblogs": "Mostra els impulsos de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}",
"account.statuses_counter": "{count, plural, one {{counter} Publicació} other {{counter} Publicacions}}",
"account.unblock": "Desbloqueja @{name}",
"account.unblock_domain": "Desbloqueja el domini {domain}",
"account.unblock_short": "Desbloqueja",
"account.unblock_short": "Desbloquejar",
"account.unendorse": "No recomanar en el perfil",
"account.unfollow": "Deixa de seguir",
"account.unmute": "Treure silenci de @{name}",
"account.unfollow": "Deixar de seguir",
"account.unmute": "Deixar de silenciar @{name}",
"account.unmute_notifications": "Activar notificacions de @{name}",
"account.unmute_short": "Deixa de silenciar",
"account_note.placeholder": "Fes clic per afegir una nota",
"admin.dashboard.daily_retention": "Ràtio de retenció per dia després del registre",
"admin.dashboard.monthly_retention": "Ràtio de retenció per mes després del registre",
"admin.dashboard.daily_retention": "Ràtio de retenció d'usuaris nous, per dia, després del registre",
"admin.dashboard.monthly_retention": "Ràtio de retenció d'usuaris nous, per mes, després del registre",
"admin.dashboard.retention.average": "Mitjana",
"admin.dashboard.retention.cohort": "Registres mes",
"admin.dashboard.retention.cohort": "Mes del registre",
"admin.dashboard.retention.cohort_size": "Nous usuaris",
"alert.rate_limited.message": "Si us plau prova-ho després de {retry_time, time, medium}.",
"alert.rate_limited.message": "Si us plau, torna-ho a provar després de {retry_time, time, medium}.",
"alert.rate_limited.title": "Límit de freqüència",
"alert.unexpected.message": "S'ha produït un error inesperat.",
"alert.unexpected.title": "Vaja!",
"announcement.announcement": "Anunci",
"attachments_list.unprocessed": "(sense processar)",
"autosuggest_hashtag.per_week": "{count} per setmana",
"boost_modal.combo": "Pots prémer {combo} per saltar-te això el proper cop",
"boost_modal.combo": "Pots prémer {combo} per evitar-ho el pròxim cop",
"bundle_column_error.body": "S'ha produït un error en carregar aquest component.",
"bundle_column_error.retry": "Torna-ho a provar",
"bundle_column_error.retry": "Tornar-ho a provar",
"bundle_column_error.title": "Error de connexió",
"bundle_modal_error.close": "Tanca",
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
"bundle_modal_error.retry": "Torna-ho a provar",
"bundle_modal_error.retry": "Tornar-ho a provar",
"column.blocks": "Usuaris bloquejats",
"column.bookmarks": "Marcadors",
"column.community": "Línia de temps local",
"column.direct": "Missatges directes",
"column.directory": "Navega els perfils",
"column.directory": "Navegar pels perfils",
"column.domain_blocks": "Dominis bloquejats",
"column.favourites": "Favorits",
"column.follow_requests": "Peticions per a seguir-te",
@ -92,61 +92,64 @@
"community.column_settings.local_only": "Només local",
"community.column_settings.media_only": "Només multimèdia",
"community.column_settings.remote_only": "Només remot",
"compose_form.direct_message_warning": "Aquesta publicació només serà enviat als usuaris esmentats.",
"compose_form.direct_message_warning_learn_more": "Aprèn més",
"compose_form.hashtag_warning": "Aquesta publicació no es mostrarà en cap etiqueta ja que no està llistada. Només les publicacions públiques poden ser cercades per etiqueta.",
"compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges només a seguidors.",
"compose.language.change": "Canvia d'idioma",
"compose.language.search": "Cerca idiomes...",
"compose_form.direct_message_warning_learn_more": "Més informació",
"compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació perillosa mitjançant Mastodon.",
"compose_form.hashtag_warning": "Aquesta publicació no es mostrarà en cap etiqueta, ja que no està llistada. Només les publicacions públiques es poden cercar per etiqueta.",
"compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure les publicacions de només per a seguidors.",
"compose_form.lock_disclaimer.lock": "bloquejat",
"compose_form.placeholder": "En què penses?",
"compose_form.placeholder": "Què et passa pel cap?",
"compose_form.poll.add_option": "Afegir una opció",
"compose_form.poll.duration": "Durada de l'enquesta",
"compose_form.poll.option_placeholder": "Opció {number}",
"compose_form.poll.remove_option": "Elimina aquesta opció",
"compose_form.poll.switch_to_multiple": "Canvia lenquesta per a permetre diverses opcions",
"compose_form.poll.switch_to_single": "Canvia lenquesta per a permetre una única opció",
"compose_form.poll.switch_to_single": "Canvia lenquesta per permetre una única opció",
"compose_form.publish": "Publicar",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Desa els canvis",
"compose_form.sensitive.hide": "{count, plural, one {Marca mèdia com a sensible} other {Marca mèdia com a sensible}}",
"compose_form.sensitive.marked": "{count, plural, one {Mèdia està marcat com a sensible} other {Mèdia estan marcats com a sensible}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Mèdia no està marcada com a sensible} other {Mèdia no estan marcats com a sensibles}}",
"compose_form.spoiler.marked": "Treu l'avís de contingut",
"compose_form.sensitive.hide": "{count, plural, one {Marca contingut com a sensible} other {Marca contingut com a sensible}}",
"compose_form.sensitive.marked": "{count, plural, one {Contingut marcat com a sensible} other {Contingut marcat com a sensible}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Contingut no marcat com a sensible} other {Contingut no marcat com a sensible}}",
"compose_form.spoiler.marked": "Elimina l'avís de contingut",
"compose_form.spoiler.unmarked": "Afegeix avís de contingut",
"compose_form.spoiler_placeholder": "Escriu l'avís aquí",
"confirmation_modal.cancel": "Cancel·la",
"confirmations.block.block_and_report": "Bloqueja i informa",
"confirmations.block.confirm": "Bloqueja",
"confirmations.block.message": "Estàs segur que vols bloquejar a {name}?",
"confirmations.block.message": "Segur que vols bloquejar a {name}?",
"confirmations.delete.confirm": "Suprimeix",
"confirmations.delete.message": "Estàs segur que vols suprimir aquesta publicació?",
"confirmations.delete.message": "Segur que vols eliminar la publicació?",
"confirmations.delete_list.confirm": "Suprimeix",
"confirmations.delete_list.message": "Estàs segur que vols suprimir permanentment aquesta llista?",
"confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
"confirmations.discard_edit_media.confirm": "Descarta",
"confirmations.discard_edit_media.message": "Tens canvis no desats de la descripciò de mèdia o previsualització, els vols descartar?",
"confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
"confirmations.domain_block.confirm": "Bloqueja el domini sencer",
"confirmations.domain_block.message": "Estàs segur, realment segur que vols bloquejar totalment {domain}? En la majoria dels casos bloquejar o silenciar uns pocs objectius és suficient i preferible. No veuràs contingut daquest domini en cap de les línies de temps ni en les notificacions. Els teus seguidors daquest domini seran eliminats.",
"confirmations.domain_block.message": "N'estàs segur del tot que vols bloquejar totalment {domain}? En la majoria dels casos, bloquejar o silenciar uns pocs objectius és suficient i preferible. No veuràs el contingut daquest domini en cap de les línies de temps ni en les notificacions. Els teus seguidors daquest domini s'elimiran.",
"confirmations.logout.confirm": "Tancar sessió",
"confirmations.logout.message": "Segur que vols tancar la sessió?",
"confirmations.mute.confirm": "Silencia",
"confirmations.mute.explanation": "Això amagarà les seves publicacions i les que els mencionen però encara els permetrà veure les teves i seguir-te.",
"confirmations.mute.message": "Estàs segur que vols silenciar {name}?",
"confirmations.redraft.confirm": "Esborrar i refer",
"confirmations.redraft.message": "Estàs segur que vols esborrar aquesta publicació i tornar a redactar-la? Perdràs tots els impulsos i favorits, i les respostes a la publicació original es quedaran orfes.",
"confirmations.mute.explanation": "Això amagarà les seves publicacions i les que els mencionen, però encara els permetrà veure les teves i seguir-te.",
"confirmations.mute.message": "Segur que vols silenciar {name}?",
"confirmations.redraft.confirm": "Esborra'l i reescriure-lo",
"confirmations.redraft.message": "Segur que vols esborrar aquesta publicació i tornar-la a escriure? Perdràs tots els impulsos i els favorits, i les respostes a la publicació original es quedaran orfes.",
"confirmations.reply.confirm": "Respon",
"confirmations.reply.message": "Responen ara es sobreescriurà el missatge que estàs editant. Estàs segur que vols continuar?",
"confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
"confirmations.unfollow.confirm": "Deixa de seguir",
"confirmations.unfollow.message": "Estàs segur que vols deixar de seguir {name}?",
"confirmations.unfollow.message": "Segur que vols deixar de seguir {name}?",
"conversation.delete": "Elimina la conversa",
"conversation.mark_as_read": "Marca com a llegida",
"conversation.open": "Veure conversa",
"conversation.open": "Mostra la conversa",
"conversation.with": "Amb {names}",
"directory.federated": "Del fedivers conegut",
"directory.local": "Només de {domain}",
"directory.new_arrivals": "Arribades noves",
"directory.recently_active": "Recentment actius",
"embed.instructions": "Incrusta aquest tut al lloc web copiant el codi a continuació.",
"embed.instructions": "Incrusta aquesta publicació a la teva pàgina web copiant el codi següent.",
"embed.preview": "Aquí està quin aspecte tindrà:",
"emoji_button.activity": "Activitat",
"emoji_button.clear": "Neteja",
"emoji_button.custom": "Personalitzat",
"emoji_button.flags": "Banderes",
"emoji_button.food": "Menjar i beure",
@ -159,32 +162,32 @@
"emoji_button.search": "Cerca...",
"emoji_button.search_results": "Resultats de la cerca",
"emoji_button.symbols": "Símbols",
"emoji_button.travel": "Viatges i Llocs",
"emoji_button.travel": "Viatges i llocs",
"empty_column.account_suspended": "Compte suspès",
"empty_column.account_timeline": "No hi ha publicacions aquí!",
"empty_column.account_unavailable": "Perfil no disponible",
"empty_column.blocks": "Encara no has bloquejat cap usuari.",
"empty_column.bookmarked_statuses": "Encara no tens desada a marcadors cap publicació. Quan desis una apareixerà aquí.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per a fer rodar la pilota!",
"empty_column.direct": "Encara no tens missatges directes. Quan enviïs o rebis un, es mostrarà aquí.",
"empty_column.bookmarked_statuses": "Encara no has marcat com publicació com a preferida. Quan en marquis una apareixerà aquí.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
"empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis, es mostraran aquí.",
"empty_column.domain_blocks": "Encara no hi ha dominis bloquejats.",
"empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Verifica-ho més tard!",
"empty_column.favourited_statuses": "Encara no has afavorit cap publicació. Quan ho facis, apareixerà aquí.",
"empty_column.favourites": "Ningú no ha afavorit aquesta publicació encara. Quan algú ho faci, apareixerà aquí.",
"empty_column.follow_recommendations": "Sembla que no es poden generar sugerencies per a tu. Pots provar d'emprar la cerca per a trobar gent que voldries conèixer o explorar les etiquetes en tendència.",
"empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Revisa-ho més tard!",
"empty_column.favourited_statuses": "Encara no has marcat cap publicació com a preferida. Quan les marquis, apareixeran aquí.",
"empty_column.favourites": "Encara ningú no ha marcat aquesta publicació com a preferida. Quan algú ho faci, apareixerà aquí.",
"empty_column.follow_recommendations": "Sembla que no s'han pogut generar suggeriments per a tu. Pots provar d'usar la cerca per trobar persones que vulguis conèixer o explorar les etiquetes en tendència.",
"empty_column.follow_requests": "Encara no tens cap petició de seguiment. Quan en rebis una, apareixerà aquí.",
"empty_column.hashtag": "Encara no hi ha res en aquesta etiqueta.",
"empty_column.home": "La teva línia de temps és buida! Segueix més gent per a emplenar-la. {suggestions}",
"empty_column.home.suggestions": "Mira algunes sugerencies",
"empty_column.home": "La teva línia de temps és buida! Segueix més gent per omplir-la. {suggestions}",
"empty_column.home.suggestions": "Mira algunes suggeriments",
"empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres d'aquesta llista publiquin noves publicacions, apareixeran aquí.",
"empty_column.lists": "Encara no tens cap llista. Quan en facis una, apareixerà aquí.",
"empty_column.lists": "Encara no tens cap llista. Quan en creïs una, apareixerà aquí.",
"empty_column.mutes": "Encara no has silenciat cap usuari.",
"empty_column.notifications": "Encara no tens notificacions. Quan altre gent interactuï amb tu, les veuràs aquí.",
"empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per a omplir-ho",
"error.unexpected_crash.explanation": "A causa d'un bug en el nostre codi o un problema de compatibilitat del navegador, aquesta pàgina podria no ser mostrada correctament.",
"error.unexpected_crash.explanation_addons": "Aquesta pàgina podria no mostrar-se correctament. Aquest error és possiblement causat per una extensió del navegador o per eienes automàtiques de traducció.",
"error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda, encara podries ser capaç d'utilitzar Mastodon a través d'un navegador diferent o amb una aplicació nativa.",
"error.unexpected_crash.next_steps_addons": "Prova de desactivar-les i refrescant la pàgina. Si això no ajuda, encara pots ser capaç dutilitzar Mastodon amb un altre navegador o aplicació nativa.",
"empty_column.notifications": "Encara no tens notificacions. Quan altres persones interactuïn amb tu, les veuràs aquí.",
"empty_column.public": "Aquí no hi ha res! Escriu públicament alguna cosa o segueix manualment usuaris d'altres servidors per omplir-ho",
"error.unexpected_crash.explanation": "A causa d'un error en el nostre codi o d'un problema de compatibilitat amb el navegador, aquesta pàgina no s'ha pogut mostrar correctament.",
"error.unexpected_crash.explanation_addons": "Aquesta pàgina no s'ha pogut mostrar correctament. És probable que aquest error sigui causat per un complement del navegador o per eines de traducció automàtica.",
"error.unexpected_crash.next_steps": "Prova d'actualitzar la pàgina. Si això no serveix, és possible que encara puguis fer servir Mastodon a través d'un navegador diferent o amb una aplicació nativa.",
"error.unexpected_crash.next_steps_addons": "Prova de desactivar-los i actualitza la pàgina. Si això no serveix, és possible que encara puguis fer servir Mastodon amb un altre navegador o una aplicació nativa.",
"errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace al porta-retalls",
"errors.unexpected_crash.report_issue": "Informa d'un problema",
"explore.search_results": "Resultats de la cerca",
@ -198,16 +201,16 @@
"follow_recommendations.lead": "Les publicacions del usuaris que segueixes es mostraran en ordre cronològic en la teva línia de temps Inici. No tinguis por en cometre errors, pots fàcilment deixar de seguir-los en qualsevol moment!",
"follow_request.authorize": "Autoritza",
"follow_request.reject": "Rebutja",
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment daquests comptes de forma manual.",
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment daquests comptes manualment.",
"generic.saved": "Desat",
"getting_started.developers": "Desenvolupadors",
"getting_started.directory": "Directori de perfils",
"getting_started.documentation": "Documentació",
"getting_started.heading": "Primeres passes",
"getting_started.invite": "Convida gent",
"getting_started.heading": "Primers passos",
"getting_started.invite": "Convidar gent",
"getting_started.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir-hi o informar de problemes a GitHub a {github}.",
"getting_started.security": "Configuració del compte",
"getting_started.terms": "Termes del servei",
"getting_started.terms": "Condicions de servei",
"hashtag.column_header.tag_mode.all": "i {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "sense {additional}",
@ -225,38 +228,38 @@
"intervals.full.days": "{number, plural, one {# dia} other {# dies}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
"intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
"keyboard_shortcuts.back": "Navegar enrere",
"keyboard_shortcuts.back": "Anar enrere",
"keyboard_shortcuts.blocked": "Obre la llista d'usuaris bloquejats",
"keyboard_shortcuts.boost": "Impulsa publicació",
"keyboard_shortcuts.column": "Centra columna",
"keyboard_shortcuts.compose": "Centra l'àrea de composició de text",
"keyboard_shortcuts.boost": "Impulsa la publicació",
"keyboard_shortcuts.column": "Centra la columna",
"keyboard_shortcuts.compose": "Centra l'àrea de composició del text",
"keyboard_shortcuts.description": "Descripció",
"keyboard_shortcuts.direct": "Obre la columna de missatges directes",
"keyboard_shortcuts.down": "Baixar en la llista",
"keyboard_shortcuts.enter": "Obre publicació",
"keyboard_shortcuts.favourite": "Afavorir publicació",
"keyboard_shortcuts.favourites": "Obre la llista de favorits",
"keyboard_shortcuts.direct": "per obrir la columna de missatges directes",
"keyboard_shortcuts.down": "Mou-lo avall en la llista",
"keyboard_shortcuts.enter": "Obrir publicació",
"keyboard_shortcuts.favourite": "Afavoreix la publicació",
"keyboard_shortcuts.favourites": "Obre la llista de preferits",
"keyboard_shortcuts.federated": "Obre la línia de temps federada",
"keyboard_shortcuts.heading": "Dreceres de teclat",
"keyboard_shortcuts.home": "Obre la línia de temps Inici",
"keyboard_shortcuts.home": "Obre la línia de temps de l'Inici",
"keyboard_shortcuts.hotkey": "Tecla d'accés directe",
"keyboard_shortcuts.legend": "Mostra aquesta llegenda",
"keyboard_shortcuts.local": "Obre la línia de temps local",
"keyboard_shortcuts.mention": "Esmenta l'autor",
"keyboard_shortcuts.mention": "Mencionar l'autor",
"keyboard_shortcuts.muted": "Obre la llista d'usuaris silenciats",
"keyboard_shortcuts.my_profile": "Obre el teu perfil",
"keyboard_shortcuts.notifications": "Obre la columna de notificacions",
"keyboard_shortcuts.open_media": "Obre mèdia",
"keyboard_shortcuts.pinned": "Obre la llista de publicacions fixades",
"keyboard_shortcuts.open_media": "Obre multimèdia",
"keyboard_shortcuts.pinned": "Obrir la llista de publicacions fixades",
"keyboard_shortcuts.profile": "Obre el perfil de l'autor",
"keyboard_shortcuts.reply": "Respon publicació",
"keyboard_shortcuts.requests": "Obre la llista de sol·licituds de seguiment",
"keyboard_shortcuts.reply": "Respon a la publicació",
"keyboard_shortcuts.requests": "Obre la llista de les sol·licituds de seguiment",
"keyboard_shortcuts.search": "Centra la barra de cerca",
"keyboard_shortcuts.spoilers": "Mostra/amaga el camp CW",
"keyboard_shortcuts.start": "Obre la columna \"Primeres passes\"",
"keyboard_shortcuts.start": "Obre la columna \"Primers passos\"",
"keyboard_shortcuts.toggle_hidden": "Mostra/oculta el text marcat com a sensible",
"keyboard_shortcuts.toggle_sensitivity": "Mostra/amaga contingut multimèdia",
"keyboard_shortcuts.toot": "per a començar un tut nou de trinca",
"keyboard_shortcuts.toot": "Iniciar una publicació nova",
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
"keyboard_shortcuts.up": "Moure amunt en la llista",
"lightbox.close": "Tanca",
@ -264,42 +267,44 @@
"lightbox.expand": "Amplia el quadre de visualització de limatge",
"lightbox.next": "Següent",
"lightbox.previous": "Anterior",
"lists.account.add": "Afegir a la llista",
"lists.account.remove": "Treure de la llista",
"lists.delete": "Esborrar llista",
"lists.edit": "Editar llista",
"lists.edit.submit": "Canvi de títol",
"lists.new.create": "Afegir llista",
"lists.new.title_placeholder": "Nou títol de llista",
"lists.replies_policy.followed": "Qualsevol usuari seguit",
"limited_account_hint.action": "Mostra el perfil",
"limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors del servidor.",
"lists.account.add": "Afegeix a la llista",
"lists.account.remove": "Elimina de la llista",
"lists.delete": "Esborra la llista",
"lists.edit": "Edita la llista",
"lists.edit.submit": "Canvia de títol",
"lists.new.create": "Afegeix llista",
"lists.new.title_placeholder": "Nou títol de la llista",
"lists.replies_policy.followed": "Qualsevol usuari que segueixis",
"lists.replies_policy.list": "Membres de la llista",
"lists.replies_policy.none": "Ningú",
"lists.replies_policy.title": "Mostra respostes a:",
"lists.search": "Cercar entre les persones que segueixes",
"lists.search": "Cerca entre les persones que segueixes",
"lists.subheading": "Les teves llistes",
"load_pending": "{count, plural, one {# element nou} other {# elements nous}}",
"loading_indicator.label": "Carregant...",
"media_gallery.toggle_visible": "{number, plural, one {Amaga imatge} other {Amaga imatges}}",
"missing_indicator.label": "No trobat",
"missing_indicator.sublabel": "Aquest recurs no pot ser trobat",
"missing_indicator.label": "No s'ha trobat",
"missing_indicator.sublabel": "Aquest recurs no s'ha trobat",
"mute_modal.duration": "Durada",
"mute_modal.hide_notifications": "Amagar notificacions d'aquest usuari?",
"mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?",
"mute_modal.indefinite": "Indefinit",
"navigation_bar.apps": "Aplicacions mòbils",
"navigation_bar.blocks": "Usuaris bloquejats",
"navigation_bar.bookmarks": "Marcadors",
"navigation_bar.community_timeline": "Línia de temps Local",
"navigation_bar.compose": "Redacta una nova publicació",
"navigation_bar.community_timeline": "Línia de temps local",
"navigation_bar.compose": "Redactar una nova publicació",
"navigation_bar.direct": "Missatges directes",
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Dominis bloquejats",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.edit_profile": "Edita el perfil",
"navigation_bar.explore": "Explora",
"navigation_bar.favourites": "Favorits",
"navigation_bar.favourites": "Preferits",
"navigation_bar.filters": "Paraules silenciades",
"navigation_bar.follow_requests": "Sol·licituds de seguiment",
"navigation_bar.follows_and_followers": "Seguits i seguidors",
"navigation_bar.info": "Quant a aquest servidor",
"navigation_bar.info": "Sobre aquest servidor",
"navigation_bar.keyboard_shortcuts": "Dreceres de teclat",
"navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Tancar sessió",
@ -313,14 +318,14 @@
"notification.favourite": "{name} ha afavorit la teva publicació",
"notification.follow": "{name} et segueix",
"notification.follow_request": "{name} ha sol·licitat seguir-te",
"notification.mention": "{name} t'ha esmentat",
"notification.mention": "{name} t'ha mencionat",
"notification.own_poll": "La teva enquesta ha finalitzat",
"notification.poll": "Ha finalitzat una enquesta en la que has votat",
"notification.reblog": "{name} ha impulsat el teu estat",
"notification.status": "ha publicat {name}",
"notification.poll": "Ha finalitzat una enquesta en què has votat",
"notification.reblog": "{name} ha impulsat la teva publicació",
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} ha editat una publicació",
"notifications.clear": "Netejar notificacions",
"notifications.clear_confirmation": "Estàs segur que vols esborrar permanentment totes les teves notificacions?",
"notifications.clear": "Esborra les notificacions",
"notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?",
"notifications.column_settings.admin.sign_up": "Nous registres:",
"notifications.column_settings.alert": "Notificacions d'escriptori",
"notifications.column_settings.favourite": "Preferits:",
@ -337,24 +342,24 @@
"notifications.column_settings.sound": "Reproduir so",
"notifications.column_settings.status": "Noves publicacions:",
"notifications.column_settings.unread_notifications.category": "Notificacions no llegides",
"notifications.column_settings.unread_notifications.highlight": "Destaca notificacions no llegides",
"notifications.column_settings.unread_notifications.highlight": "Destaca les notificacions no llegides",
"notifications.column_settings.update": "Edicions:",
"notifications.filter.all": "Tots",
"notifications.filter.boosts": "Impulsos",
"notifications.filter.favourites": "Favorits",
"notifications.filter.favourites": "Preferits",
"notifications.filter.follows": "Seguiments",
"notifications.filter.mentions": "Mencions",
"notifications.filter.polls": "Resultats de l'enquesta",
"notifications.filter.statuses": "Actualitzacions de gent que segueixes",
"notifications.grant_permission": "Concedir permís.",
"notifications.group": "{count} notificacions",
"notifications.mark_as_read": "Marca cada notificació com a llegida",
"notifications.mark_as_read": "Marca totes les notificacions com a llegides",
"notifications.permission_denied": "Les notificacions descriptori no estan disponibles perquè prèviament sha denegat el permís al navegador",
"notifications.permission_denied_alert": "No es poden activar les notificacions del escriptori perquè el permís del navegador ha estat denegat abans",
"notifications.permission_denied_alert": "No es poden activar les notificacions de l'escriptori perquè el permís del navegador s'ha denegat prèviament",
"notifications.permission_required": "Les notificacions d'escriptori no estan disponibles perquè el permís requerit no ha estat concedit.",
"notifications_permission_banner.enable": "Activar les notificacions descriptori",
"notifications_permission_banner.how_to_control": "Per a rebre notificacions quan Mastodon no és obert cal activar les notificacions descriptori. Pots controlar amb precisió quins tipus dinteraccions generen notificacions descriptori després dactivar el botó {icon} de dalt.",
"notifications_permission_banner.title": "Mai et perdis res",
"notifications_permission_banner.enable": "Activa les notificacions descriptori",
"notifications_permission_banner.how_to_control": "Per rebre notificacions quan Mastodon no estigui obert, cal activar les notificacions descriptori. Pots controlar exactament quins tipus dinteraccions generen notificacions descriptori si actives el botó {icon} de dalt.",
"notifications_permission_banner.title": "No et perdis mai res",
"picture_in_picture.restore": "Retornal",
"poll.closed": "Finalitzada",
"poll.refresh": "Actualitza",
@ -365,18 +370,18 @@
"poll.votes": "{votes, plural, one {# vot} other {# vots}}",
"poll_button.add_poll": "Afegir una enquesta",
"poll_button.remove_poll": "Elimina l'enquesta",
"privacy.change": "Ajustar la privacitat de la publicació",
"privacy.change": "Canvia la privacitat de la publicació",
"privacy.direct.long": "Visible només per als usuaris esmentats",
"privacy.direct.short": "Directe",
"privacy.private.long": "Visible només pels seguidors",
"privacy.direct.short": "Només gent mencionada",
"privacy.private.long": "Visible només per als seguidors",
"privacy.private.short": "Només seguidors",
"privacy.public.long": "Visible per a tothom, mostrat en línies de temps públiques",
"privacy.public.long": "Visible per tothom",
"privacy.public.short": "Públic",
"privacy.unlisted.long": "Visible per a tothom però no en les línies de temps públiques",
"privacy.unlisted.long": "Visible per tothom però exclosa de les funcions de descobriment",
"privacy.unlisted.short": "No llistat",
"refresh": "Actualitza",
"regeneration_indicator.label": "Carregant…",
"regeneration_indicator.sublabel": "S'està preparant la teva línia de temps Inici!",
"regeneration_indicator.sublabel": "S'està preparant la teva línia de temps d'Inici!",
"relative_time.days": "fa {number} dies",
"relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}",
"relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}",
@ -388,9 +393,9 @@
"relative_time.minutes": "fa {number} minuts",
"relative_time.seconds": "fa {number} segons",
"relative_time.today": "avui",
"reply_indicator.cancel": "Cancel·lar",
"reply_indicator.cancel": "Cancel·la",
"report.block": "Bloqueja",
"report.block_explanation": "No veuràs les seves publicacions. Ell no podran veure les teves publicacions ni seguir-te. Ells podran dir que estan bloquejats.",
"report.block_explanation": "No veuràs les seves publicacions. Ells no podran veure les teves publicacions ni et podran seguir. Podran saber que estan bloquejats.",
"report.categories.other": "Altres",
"report.categories.spam": "Contingut brossa",
"report.categories.violation": "El contingut viola una o més regles del servidor",
@ -399,39 +404,39 @@
"report.category.title_account": "perfil",
"report.category.title_status": "publicació",
"report.close": "Fet",
"report.comment.title": "Hi ha res més que penses hauriem de saber?",
"report.comment.title": "Hi ha res més que creguis que hauríem de saber?",
"report.forward": "Reenvia a {target}",
"report.forward_hint": "Aquest compte és d'un altre servidor. Enviar-hi també una copia anònima del informe?",
"report.forward_hint": "Aquest compte és d'un altre servidor. Vols enviar-li també una còpia anònima de l'informe?",
"report.mute": "Silencia",
"report.mute_explanation": "No veuràs les seves publicacions. Ells encara poden seguir-te i veure les teves publicacions però no sabran que han estat silenciats.",
"report.mute_explanation": "No veuràs les seves publicacions. Encara poden seguir-te i veure les teves publicacions, però no sabran que han estat silenciats.",
"report.next": "Següent",
"report.placeholder": "Comentaris addicionals",
"report.reasons.dislike": "No m'agrada",
"report.reasons.dislike_description": "Això no és quelcom que vulguis veure",
"report.reasons.other": "Això és una altre cosa",
"report.reasons.other_description": "El problema no encaixa en altres categories",
"report.reasons.spam": "Això és contingut brossa",
"report.reasons.spam_description": "Enllaços maliciosos, compromís falç o respostes repetitives",
"report.reasons.dislike_description": "No és una cosa que vulguis veure",
"report.reasons.other": "És una altra cosa",
"report.reasons.other_description": "El problema no encaixa a les altres categories",
"report.reasons.spam": "És contingut brossa",
"report.reasons.spam_description": "Enllaços maliciosos, implicació falsa o respostes repetitives",
"report.reasons.violation": "Viola les regles del servidor",
"report.reasons.violation_description": "Ets conscient que trenca regles especifiques",
"report.rules.subtitle": "Selecciona totes les aplicables",
"report.rules.title": "Quines regles han estat violades?",
"report.statuses.subtitle": "Selecciona tots els aplicables",
"report.rules.subtitle": "Selecciona tot el que correspongui",
"report.rules.title": "Quines regles s'han violat?",
"report.statuses.subtitle": "Selecciona tot el que correspongui",
"report.statuses.title": "Hi ha alguna publicació que recolzi aquest informe?",
"report.submit": "Enviar",
"report.target": "Informes {target}",
"report.thanks.take_action": "Aquestes son les teves opcions per a controlar el que veus a Mastodon:",
"report.thanks.take_action_actionable": "Mentre ho revisem, pots pendre mesures contra @{name}:",
"report.submit": "Envia",
"report.target": "Denunciant a {target}",
"report.thanks.take_action": "Aquestes són les teves opcions per controlar el que veus a Mastodon:",
"report.thanks.take_action_actionable": "Mentre ho revisem, pots prendre mesures contra @{name}:",
"report.thanks.title": "No vols veure això?",
"report.thanks.title_actionable": "Gràcies per informar, ho investigarem.",
"report.unfollow": "Deixar de seguir @{name}",
"report.unfollow_explanation": "Estàs seguint aquest compte. Per a no veure més les seves publicacions en la teva línia de temps Inici, deixa de seguir-lo.",
"search.placeholder": "Cercar",
"report.thanks.title_actionable": "Gràcies per denunciar-ho. Ho investigarem.",
"report.unfollow": "Deixa de seguir @{name}",
"report.unfollow_explanation": "Estàs seguint aquest compte. Per no veure les seves publicacions a la teva línia de temps d'Inici, deixa de seguir-lo.",
"search.placeholder": "Cerca",
"search_popout.search_format": "Format de cerca avançada",
"search_popout.tips.full_text": "Text simple recupera publicacions que has escrit, les afavorides, les impulsades o en les que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.",
"search_popout.tips.full_text": "El text simple recupera publicacions que has escrit, marcat com a preferides, que has impulsat o on t'han esmentat, així com els usuaris, els noms d'usuaris i les etiquetes.",
"search_popout.tips.hashtag": "etiqueta",
"search_popout.tips.status": "publicació",
"search_popout.tips.text": "El text simple retorna coincidències amb els noms de visualització, els noms d'usuari i les etiquetes",
"search_popout.tips.text": "El text simple recupera coincidències amb els usuaris, els noms d'usuari i les etiquetes",
"search_popout.tips.user": "usuari",
"search_results.accounts": "Gent",
"search_results.all": "Tots",
@ -441,53 +446,53 @@
"search_results.statuses_fts_disabled": "La cerca de publicacions pel seu contingut no està habilitada en aquest servidor Mastodon.",
"search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
"status.admin_account": "Obre l'interfície de moderació per a @{name}",
"status.admin_status": "Obre aquesta publicació a la interfície de moderació",
"status.admin_status": "Obrir aquesta publicació a la interfície de moderació",
"status.block": "Bloqueja @{name}",
"status.bookmark": "Marcador",
"status.cancel_reblog_private": "Desfer l'impuls",
"status.cannot_reblog": "Aquesta publicació no pot ser impulsada",
"status.copy": "Copia l'enllaç a l'estat",
"status.bookmark": "Afavoreix",
"status.cancel_reblog_private": "Desfés l'impuls",
"status.cannot_reblog": "Aquesta publicació no es pot impulsar",
"status.copy": "Copia l'enllaç a la publicació",
"status.delete": "Esborra",
"status.detailed_status": "Visualització detallada de la conversa",
"status.direct": "Missatge directe @{name}",
"status.direct": "Envia missatge directe a @{name}",
"status.edit": "Edita",
"status.edited": "Editat {date}",
"status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}",
"status.embed": "Incrustat",
"status.embed": "Incrusta",
"status.favourite": "Favorit",
"status.filtered": "Filtrat",
"status.history.created": "{name} ha creat {date}",
"status.history.edited": "{name} ha editat {date}",
"status.load_more": "Carrega més",
"status.media_hidden": "Multimèdia amagat",
"status.mention": "Esmentar @{name}",
"status.load_more": "Carregar-ne més",
"status.media_hidden": "Multimèdia amagada",
"status.mention": "Esmenta @{name}",
"status.more": "Més",
"status.mute": "Silenciar @{name}",
"status.mute_conversation": "Silenciar conversació",
"status.open": "Ampliar aquest estat",
"status.mute": "Silencia @{name}",
"status.mute_conversation": "Silencia la conversa",
"status.open": "Amplia la publicació",
"status.pin": "Fixa en el perfil",
"status.pinned": "Publicació fixada",
"status.read_more": "Llegir més",
"status.reblog": "Impuls",
"status.reblog_private": "Impulsar amb la visibilitat original",
"status.read_more": "Més informació",
"status.reblog": "Impulsa",
"status.reblog_private": "Impulsa amb la visibilitat original",
"status.reblogged_by": "{name} ha impulsat",
"status.reblogs.empty": "Encara ningú no ha impulsat aquesta publicació. Quan algú ho faci, apareixeran aquí.",
"status.redraft": "Esborrar i reescriure",
"status.redraft": "Esborra-la i reescriure-la",
"status.remove_bookmark": "Suprimeix el marcador",
"status.reply": "Respondre",
"status.replyAll": "Respondre al fil",
"status.report": "Informar sobre @{name}",
"status.reply": "Respon",
"status.replyAll": "Respon al fil",
"status.report": "Denuncia @{name}",
"status.sensitive_warning": "Contingut sensible",
"status.share": "Compartir",
"status.show_less": "Mostra menys",
"status.show_less_all": "Mostra menys per a tot",
"status.show_more": "Mostra més",
"status.show_more_all": "Mostra més per a tot",
"status.share": "Comparteix",
"status.show_less": "Mostrar-ne menys",
"status.show_less_all": "Mostrar-ne menys per a tot",
"status.show_more": "Mostrar-ne més",
"status.show_more_all": "Mostrar-ne més per a tot",
"status.show_thread": "Mostra el fil",
"status.uncached_media_warning": "No està disponible",
"status.unmute_conversation": "Activar conversació",
"status.unpin": "Deslliga del perfil",
"suggestions.dismiss": "Descartar suggeriment",
"status.unmute_conversation": "No silenciïs la conversa",
"status.unpin": "No fixis al perfil",
"suggestions.dismiss": "Ignora el suggeriment",
"suggestions.header": "És possible que estiguis interessat en…",
"tabs_bar.federated_timeline": "Federat",
"tabs_bar.home": "Inici",
@ -502,24 +507,24 @@
"timeline_hint.remote_resource_not_displayed": "{resource} dels altres servidors no son mostrats.",
"timeline_hint.resources.followers": "Seguidors",
"timeline_hint.resources.follows": "Seguiments",
"timeline_hint.resources.statuses": "Tuts més antics",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} parlant-hi",
"trends.trending_now": "Ara en tendència",
"timeline_hint.resources.statuses": "Publicacions més antigues",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} parlant-ne",
"trends.trending_now": "En tendència",
"ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Arrossega i deixa anar per a carregar",
"upload_button.label": "Afegir mèdia, un vídeo o un fitxer d'audio",
"upload_area.title": "Arrossega i deixa anar per carregar",
"upload_button.label": "Afegeix imatges, un vídeo o un fitxer d'àudio",
"upload_error.limit": "S'ha superat el límit de càrrega d'arxius.",
"upload_error.poll": "No es permet l'enviament de fitxers en les enquestes.",
"upload_form.audio_description": "Descriviu per a les persones amb pèrdua auditiva",
"upload_form.description": "Descriure per els que tenen problemes visuals",
"upload_form.description_missing": "No description added",
"upload_error.poll": "No es permet carregar fitxers a les enquestes.",
"upload_form.audio_description": "Descripció per a persones amb discapacitat auditiva",
"upload_form.description": "Descripció per a persones amb discapacitat visual",
"upload_form.description_missing": "No s'ha afegit cap descripció",
"upload_form.edit": "Edita",
"upload_form.thumbnail": "Canvia la miniatura",
"upload_form.undo": "Esborra",
"upload_form.video_description": "Descriu per a les persones amb pèrdua auditiva o deficiència visual",
"upload_form.video_description": "Descripció per a persones amb discapacitat auditiva o amb discapacitat visual",
"upload_modal.analyzing_picture": "Analitzant imatge…",
"upload_modal.apply": "Aplica",
"upload_modal.applying": "Aplicant…",
@ -527,18 +532,18 @@
"upload_modal.description_placeholder": "Una ràpida guineu marró salta sobre el gos mandrós",
"upload_modal.detect_text": "Detecta el text de l'imatge",
"upload_modal.edit_media": "Editar multimèdia",
"upload_modal.hint": "Fes clic o arrossega el cercle en la previsualització per escollir el punt focal que sempre serà visible de totes les miniatures.",
"upload_modal.hint": "Fes clic o arrossega el cercle en la previsualització per escollir el punt focal que sempre serà visible en totes les miniatures.",
"upload_modal.preparing_ocr": "Preparant OCR…",
"upload_modal.preview_label": "Previsualitza ({ratio})",
"upload_progress.label": "Pujant...",
"video.close": "Tancar el vídeo",
"video.close": "Tanca el vídeo",
"video.download": "Descarrega larxiu",
"video.exit_fullscreen": "Sortir de pantalla completa",
"video.expand": "Ampliar el vídeo",
"video.exit_fullscreen": "Surt de la pantalla completa",
"video.expand": "Amplia el vídeo",
"video.fullscreen": "Pantalla completa",
"video.hide": "Amaga vídeo",
"video.mute": "Silenciar el so",
"video.hide": "Amaga el vídeo",
"video.mute": "Silencia el so",
"video.pause": "Pausa",
"video.play": "Reproduir",
"video.unmute": "Activar so"
"video.play": "Reprodueix",
"video.unmute": "Activa el so"
}

View File

@ -18,12 +18,12 @@
"account.followers": "شوێنکەوتووان",
"account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە",
"account.followers_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}",
"account.following": "Following",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.following": "دواکەوتن",
"account.following_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}",
"account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.",
"account.follows_you": "شوێنکەوتووەکانت",
"account.hide_reblogs": "داشاردنی بووستەکان لە @{name}",
"account.joined": "Joined {date}",
"account.joined": "بەشداری {date}",
"account.link_verified_on": "خاوەنداریەتی ئەم لینکە لە {date} چێک کراوە",
"account.locked_info": "تایبەتمەندی ئەم هەژمارەیە ڕیکخراوە بۆ قوفڵدراوە. خاوەنەکە بە دەستی پێداچوونەوە دەکات کە کێ دەتوانێت شوێنیان بکەوێت.",
"account.media": "میدیا",
@ -41,18 +41,18 @@
"account.statuses_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"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.retention.average": "Average",
"admin.dashboard.retention.cohort": "Sign-up month",
"admin.dashboard.retention.cohort_size": "New users",
"admin.dashboard.daily_retention": "ڕێژەی مانەوەی بەکارهێنەر بەپێی ڕۆژ دوای ناو تۆمارکردن",
"admin.dashboard.monthly_retention": "ڕێژەی مانەوەی بەکارهێنەر بەپێی مانگ دوای ناو تۆمارکردن",
"admin.dashboard.retention.average": "ڕێژە",
"admin.dashboard.retention.cohort": "چوونەژوورەوەی مانگانە",
"admin.dashboard.retention.cohort_size": "ئەندامی نوێ",
"alert.rate_limited.message": "تکایە هەوڵبدەرەوە دوای {retry_time, time, medium}.",
"alert.rate_limited.title": "ڕێژەی سنووردار",
"alert.unexpected.message": "هەڵەیەکی چاوەڕوان نەکراو ڕوویدا.",
@ -70,7 +70,7 @@
"column.blocks": "بەکارهێنەرە بلۆککراوەکان",
"column.bookmarks": "نیشانەکان",
"column.community": "هێڵی کاتی ناوخۆیی",
"column.direct": "نامە ڕاستەوخۆکان",
"column.direct": "نامە ڕاستەوخۆ",
"column.directory": "گەڕان لە پرۆفایلەکان",
"column.domain_blocks": "دۆمەینە داخراوەکان",
"column.favourites": "دڵخوازترینەکان",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "تەنها خۆماڵی",
"community.column_settings.media_only": "تەنها میدیا",
"community.column_settings.remote_only": "تەنها بۆ دوور",
"compose_form.direct_message_warning": "ئەم توتە تەنیا بۆ بەکارهێنەرانی ناوبراو دەنێردرێت.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "زیاتر فێربه",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "ئەم توتە لە ژێر هیچ هاشتاگییەک دا ناکرێت وەک ئەوەی لە لیستەکەدا نەریزراوە. تەنها توتی گشتی دەتوانرێت بە هاشتاگی بگەڕێت.",
"compose_form.lock_disclaimer": "هەژمێرەکەی لە حاڵەتی {locked}. هەر کەسێک دەتوانێت شوێنت بکەوێت بۆ پیشاندانی بابەتەکانی تەنها دوایخۆی.",
"compose_form.lock_disclaimer.lock": "قفڵ دراوە",
@ -106,7 +108,7 @@
"compose_form.poll.switch_to_single": "گۆڕینی ڕاپرسی بۆ ڕێگەدان بە تاکە هەڵبژاردنێک",
"compose_form.publish": "توت",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.save_changes": "پاشکەوتی گۆڕانکاریەکان",
"compose_form.sensitive.hide": "نیشانکردنی میدیا وەک هەستیار",
"compose_form.sensitive.marked": "وادەی کۆتایی",
"compose_form.sensitive.unmarked": "میدیا وەک هەستیار نیشان نەکراوە",
@ -121,8 +123,8 @@
"confirmations.delete.message": "ئایا دڵنیایت لەوەی دەتەوێت ئەم توتە بسڕیتەوە?",
"confirmations.delete_list.confirm": "سڕینەوە",
"confirmations.delete_list.message": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی ئەم لیستە بسڕیتەوە?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.discard_edit_media.confirm": "ڕەتکردنەوە",
"confirmations.discard_edit_media.message": "گۆڕانکاریت لە وەسف یان پێشبینی میدیادا هەڵنەگیراوە، بەهەر حاڵ فڕێیان بدە؟",
"confirmations.domain_block.confirm": "بلۆککردنی هەموو دۆمەینەکە",
"confirmations.domain_block.message": "ئایا بەڕاستی، بەڕاستی تۆ دەتەوێت هەموو {domain} بلۆک بکەیت؟ لە زۆربەی حاڵەتەکاندا چەند بلۆکێکی ئامانجدار یان بێدەنگەکان پێویست و پەسەندن. تۆ ناوەڕۆک ێک نابینیت لە دۆمەینەکە لە هیچ هێڵی کاتی گشتی یان ئاگانامەکانت. شوێنکەوتوانی تۆ لەو دۆمەینەوە لادەبرێن.",
"confirmations.logout.confirm": "چوونە دەرەوە",
@ -147,6 +149,7 @@
"embed.instructions": "ئەم توتە بنچین بکە لەسەر وێب سایتەکەت بە کۆپیکردنی کۆدەکەی خوارەوە.",
"embed.preview": "ئەمە ئەو شتەیە کە لە شێوەی خۆی دەچێت:",
"emoji_button.activity": "چالاکی",
"emoji_button.clear": "ڕوون",
"emoji_button.custom": "ئاسایی",
"emoji_button.flags": "ئاڵاکان",
"emoji_button.food": "خواردن& خواردنەوە",
@ -160,22 +163,22 @@
"emoji_button.search_results": "ئەنجامەکانی گەڕان",
"emoji_button.symbols": "هێماکان",
"emoji_button.travel": "گەشت & شوێنەکان",
"empty_column.account_suspended": "Account suspended",
"empty_column.account_timeline": "لێرە هیچ توتەک نییە!",
"empty_column.account_suspended": "هەژمار ڕاگیرا",
"empty_column.account_timeline": "لێرە هیچ نووسراوە نییە!",
"empty_column.account_unavailable": "پرۆفایل بەردەست نیە",
"empty_column.blocks": "تۆ هێشتا هیچ بەکارهێنەرێکت بلۆک نەکردووە.",
"empty_column.bookmarked_statuses": "تۆ هێشتا هیچ توتێکی دیاریکراوت نیە کاتێک نیشانەیەک نیشان دەکەیت، لێرە دەرئەکەویت.",
"empty_column.community": "هێڵی کاتی ناوخۆیی بەتاڵە. شتێک بە ئاشکرا بنووسە بۆ ئەوەی تۆپەکە بسووڕێت!",
"empty_column.direct": ۆ هیچ نامەی ڕاستەوخۆت نیە تا ئێستا. کاتێک دانەیەک دەنێریت یان وەرت دەگرێت، لێرە پیشان دەدات.",
"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.",
"empty_column.follow_recommendations": "پێدەچێت هیچ پێشنیارێک بۆ تۆ دروست نەکرێت. دەتوانیت هەوڵبدەیت گەڕان بەکاربهێنیت بۆ گەڕان بەدوای ئەو کەسانەی کە ڕەنگە بیانناسیت یان بەدوای هاشتاگە ڕەوتەکاندا بگەڕێیت.",
"empty_column.follow_requests": "تۆ هێشتا هیچ داواکارییەکی بەدواداچووت نیە. کاتێک یەکێکت بۆ هات، لێرە دەرئەکەویت.",
"empty_column.hashtag": "هێشتا هیچ شتێک لەم هاشتاگەدا نییە.",
"empty_column.home": "تایم لاینی ماڵەوەت بەتاڵە! سەردانی {public} بکە یان گەڕان بەکاربێنە بۆ دەستپێکردن و بینینی بەکارهێنەرانی تر.",
"empty_column.home.suggestions": "See some suggestions",
"empty_column.home.suggestions": "چەند پێشنیارێک ببینە",
"empty_column.list": "هێشتا هیچ شتێک لەم لیستەدا نییە. کاتێک ئەندامانی ئەم لیستە دەنگی نوێ بڵاودەکەن، لێرە دەردەکەون.",
"empty_column.lists": "تۆ هێشتا هیچ لیستت دروست نەکردووە، کاتێک دانەیەک دروست دەکەیت، لێرە پیشان دەدرێت.",
"empty_column.mutes": "تۆ هێشتا هیچ بەکارهێنەرێکت بێدەنگ نەکردووە.",
@ -187,15 +190,15 @@
"error.unexpected_crash.next_steps_addons": "هەوڵدە لەکاریان بخەیت و لاپەڕەکە تازە بکەوە. ئەگەر ئەمە یارمەتیدەر نەبوو، لەوانەیە هێشتا بتوانیت ماستۆدۆن بەکاربێنیت لە ڕێگەی وێبگەڕەکانی دیکە یان نەرمەکالاکانی ئەسڵی.",
"errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد",
"errors.unexpected_crash.report_issue": "کێشەی گوزارشت",
"explore.search_results": "Search results",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"follow_recommendations.done": "Done",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
"explore.search_results": "ئەنجامەکانی گەڕان",
"explore.suggested_follows": "بۆ تۆ",
"explore.title": "گەڕان",
"explore.trending_links": "هەواڵەکان",
"explore.trending_statuses": "نووسراوەکان",
"explore.trending_tags": "هاشتاگ",
"follow_recommendations.done": "تەواو",
"follow_recommendations.heading": "شوێن ئەو کەسانە بکەون کە دەتەوێت پۆستەکان ببینیت لە! لێرەدا چەند پێشنیارێک هەیە.",
"follow_recommendations.lead": "بابەتەکانی ئەو کەسانەی کە بەدوایدا دەگەڕێیت بە فەرمانی کرۆنۆلۆجی لە خواردنەکانی ماڵەکەت دەردەکەون. مەترسە لە هەڵەکردن، دەتوانیت بە ئاسانی خەڵک هەڵبکەیت هەر کاتێک!",
"follow_request.authorize": "ده‌سه‌ڵاتپێدراو",
"follow_request.reject": "ڕەتکردنەوە",
"follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.",
@ -264,6 +267,8 @@
"lightbox.expand": "فراوانکردنی سندوقی بینینی وێنە",
"lightbox.next": "داهاتوو",
"lightbox.previous": "پێشوو",
"limited_account_hint.action": "بەهەر حاڵ پڕۆفایلی پیشان بدە",
"limited_account_hint.title": "ئەم پرۆفایلییە لەلایەن بەڕێوەبەرانی سێرڤەرەکەتەوە شاراوەتەوە.",
"lists.account.add": "زیادکردن بۆ لیست",
"lists.account.remove": "لابردن لە لیست",
"lists.delete": "سڕینەوەی لیست",
@ -271,13 +276,13 @@
"lists.edit.submit": "گۆڕینی ناونیشان",
"lists.new.create": "زیادکردنی لیست",
"lists.new.title_placeholder": "ناونیشانی لیستی نوێ",
"lists.replies_policy.followed": "Any followed user",
"lists.replies_policy.list": "Members of the list",
"lists.replies_policy.none": "No one",
"lists.replies_policy.followed": "هەر بەکارهێنەرێکی بەدواکەوتوو",
"lists.replies_policy.list": "ئەندامانی لیستەکە",
"lists.replies_policy.none": "هیچکەس",
"lists.replies_policy.title": "پیشاندانی وەڵامەکان بۆ:",
"lists.search": "بگەڕێ لەناو ئەو کەسانەی کە شوێنیان کەوتویت",
"lists.subheading": "لیستەکانت",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"load_pending": "{count, plural, one {# بەڕگەی نوێ} other {# بەڕگەی نوێ}}",
"loading_indicator.label": "بارکردن...",
"media_gallery.toggle_visible": "شاردنەوەی {number, plural, one {image} other {images}}",
"missing_indicator.label": "نەدۆزرایەوە",
@ -290,11 +295,11 @@
"navigation_bar.bookmarks": "نیشانکراوەکان",
"navigation_bar.community_timeline": "دەمنامەی ناوخۆیی",
"navigation_bar.compose": "نووسینی توتی نوێ",
"navigation_bar.direct": "نامە ڕاستەوخۆکان",
"navigation_bar.direct": "نامە ڕاستەوخۆ",
"navigation_bar.discover": "دۆزینەوە",
"navigation_bar.domain_blocks": "دۆمەینە بلۆک کراوەکان",
"navigation_bar.edit_profile": "دەستکاری پرۆفایل بکە",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "گەڕان",
"navigation_bar.favourites": "دڵخوازەکان",
"navigation_bar.filters": "وشە کپەکان",
"navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە",
@ -309,7 +314,7 @@
"navigation_bar.preferences": "پەسەندەکان",
"navigation_bar.public_timeline": "نووسراوەکانی هەمووشوێنێک",
"navigation_bar.security": "ئاسایش",
"notification.admin.sign_up": "{name} signed up",
"notification.admin.sign_up": "{name} تۆمارکرا",
"notification.favourite": "{name} نووسراوەکەتی پەسەند کرد",
"notification.follow": "{name} دوای تۆ کەوت",
"notification.follow_request": "{name} داوای کردووە کە شوێنت بکەوێت",
@ -318,15 +323,15 @@
"notification.poll": "ڕاپرسییەک کە دەنگی پێداویت کۆتایی هات",
"notification.reblog": "{name} نووسراوەکەتی دووبارە توتاند",
"notification.status": "{name} تازە بڵاوکرایەوە",
"notification.update": "{name} edited a post",
"notification.update": "{name} پۆستێکی دەستکاریکرد",
"notifications.clear": "ئاگانامەکان بسڕیەوە",
"notifications.clear_confirmation": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی هەموو ئاگانامەکانت بسڕیتەوە?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.admin.sign_up": "چوونەژوورەوەی نوێ:",
"notifications.column_settings.alert": "ئاگانامەکانی پیشانگەرر ڕومێزی",
"notifications.column_settings.favourite": "دڵخوازترین:",
"notifications.column_settings.filter_bar.advanced": "هەموو پۆلەکان پیشان بدە",
"notifications.column_settings.filter_bar.category": "شریتی پاڵێوەری خێرا",
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
"notifications.column_settings.filter_bar.show_bar": "نیشاندانی شریتی پاڵافتن",
"notifications.column_settings.follow": "شوێنکەوتوانی نوێ:",
"notifications.column_settings.follow_request": "شوینکەوتنی داواکاری نوێ:",
"notifications.column_settings.mention": "ئاماژەکان:",
@ -336,22 +341,22 @@
"notifications.column_settings.show": "لە ستووندا پیشان بدە",
"notifications.column_settings.sound": "لێدانی دەنگ",
"notifications.column_settings.status": "توتەکانی نوێ:",
"notifications.column_settings.unread_notifications.category": "Unread notifications",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.update": "Edits:",
"notifications.column_settings.unread_notifications.category": "ئاگاداریی نەبینراو",
"notifications.column_settings.unread_notifications.highlight": "تیشک بخە سەر ئاگاداری نەخوێنراو",
"notifications.column_settings.update": "دەستکاری:",
"notifications.filter.all": "هەموو",
"notifications.filter.boosts": "دووبارەتوتەکان",
"notifications.filter.favourites": "دڵخوازەکان",
"notifications.filter.follows": "شوێنکەوتن",
"notifications.filter.follows": "بەدواداچوون",
"notifications.filter.mentions": "ئاماژەکان",
"notifications.filter.polls": "ئەنجامەکانی ڕاپرسی",
"notifications.filter.statuses": "نوێکردنەوەکان ئەو کەسانەی کە پەیڕەوی دەکەیت",
"notifications.grant_permission": "Grant permission.",
"notifications.grant_permission": "مۆڵەت بدە.",
"notifications.group": "{count} ئاگانامە",
"notifications.mark_as_read": "هەموو ئاگانامەکان وەک خوێندراوەتەوە نیشان بکە",
"notifications.permission_denied": "ناتوانرێت ئاگانامەکانی دێسکتۆپ چالاک بکرێت وەک ڕێپێدان ڕەتکرایەوە.",
"notifications.permission_denied_alert": "ناتوانرێت ئاگانامەکانی دێسکتۆپ چالاک بکرێت، چونکە پێشتر مۆڵەتی وێبگەڕ ڕەتکرایەوە",
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
"notifications.permission_required": "ئاگادارکردنەوەکانی سەر مێز بەردەست نین چونکە مۆڵەتی پێویست نەدراوە.",
"notifications_permission_banner.enable": "چالاککردنی ئاگانامەکانی دێسکتۆپ",
"notifications_permission_banner.how_to_control": "بۆ وەرگرتنی ئاگانامەکان کاتێک ماستۆدۆن نەکراوەیە، ئاگانامەکانی دێسکتۆپ چالاک بکە. دەتوانیت بە وردی کۆنترۆڵی جۆری کارلێکەکان بکەیت کە ئاگانامەکانی دێسکتۆپ دروست دەکەن لە ڕێگەی دوگمەی {icon} لەسەرەوە کاتێک چالاک دەکرێن.",
"notifications_permission_banner.title": "هەرگیز شتێک لە دەست مەدە",
@ -362,70 +367,70 @@
"poll.total_votes": "{count, plural, one {# دەنگ} other {# دەنگ}}\n",
"poll.vote": "دەنگ",
"poll.voted": "تۆ دەنگت بەو وەڵامە دا",
"poll.votes": "{votes, plural, one {# vote} other {# votes}}",
"poll.votes": "{votes, plural, one {# دەنگ} other {# دەنگ}}",
"poll_button.add_poll": "ڕاپرسییەک زیاد بکە",
"poll_button.remove_poll": "ده‌نگدان بسڕه‌وه‌‌",
"privacy.change": "ڕێکخستنی تایبەتمەندی توت",
"privacy.direct.long": "تەنیا بۆ بەکارهێنەرانی ناوبراو",
"privacy.direct.short": "ڕاستەوخۆ",
"privacy.direct.short": "تەنها کەسانی باس کراو",
"privacy.private.long": "بینراو تەنها بۆ شوێنکەوتوان",
"privacy.private.short": "تەنها بۆ شوێنکەوتوان",
"privacy.public.long": "بۆ هەمووان دیاربێت، لە هێڵی کاتی گشتی دا نیشان دەدرێت",
"privacy.private.short": "تەنیا شوێنکەوتووان",
"privacy.public.long": "بۆ هەمووان دیارە",
"privacy.public.short": "گشتی",
"privacy.unlisted.long": "بۆ هەمووان دیارە، بەڵام لە هێڵی کاتی گشتیدا نا",
"privacy.unlisted.long": "بۆ هەمووان دیارە، بەڵام لە تایبەتمەندییەکانی دۆزینەوە دەرچووە",
"privacy.unlisted.short": "لە لیست نەکراو",
"refresh": "نوێکردنەوە",
"regeneration_indicator.label": "بارکردن…",
"regeneration_indicator.sublabel": "ڕاگەیەنەری ماڵەوەت ئامادە دەکرێت!",
"relative_time.days": "{number}ڕۆژ",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.just_now": "just now",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.full.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژ}} ماوە",
"relative_time.full.hours": "{number, plural, one {# کاتژمێر} other {# کاتژمێر}} ماوە",
"relative_time.full.just_now": "ئێستا",
"relative_time.full.minutes": "{number, plural, one {# خولەک} other {# خولەک}} ماوە",
"relative_time.full.seconds": "{number, plural, one {# چرکە} other {# چرکە}} ماوە",
"relative_time.hours": "{number}کات",
"relative_time.just_now": "ئێستا",
"relative_time.minutes": "{number}کات",
"relative_time.seconds": "{number}کات",
"relative_time.today": "ئیمڕۆ",
"reply_indicator.cancel": "هەڵوەشاندنەوه",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Other",
"report.categories.spam": "Spam",
"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_status": "post",
"report.close": "Done",
"report.comment.title": "Is there anything else you think we should know?",
"report.block": "بلۆک",
"report.block_explanation": "تۆ پۆستەکانیان نابینیت. ئەوان ناتوانن بابەتەکانتان ببینن یان شوێنتان بکەون. ئەوان دەتوانن بڵێن کە بەربەستکراون.",
"report.categories.other": "هی تر",
"report.categories.spam": "سپام",
"report.categories.violation": "ناوەڕۆک یەک یان زیاتر لە یاساکانی سێرڤەر پێشێل دەکات",
"report.category.subtitle": "باشترین هاوتا هەڵبژێرە",
"report.category.title": "پێمان بڵێ بە {type} چی ڕوودەدات",
"report.category.title_account": "پرۆفایل",
"report.category.title_status": "پۆست",
"report.close": "تەواو",
"report.comment.title": "ئایا هیچ شتێکی تر هەیە کە پێت وایە ئێمە دەبێت بزانین?",
"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.next": "Next",
"report.mute": "بێدەنگ",
"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.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report.thanks.take_action": "لێرەدا بژاردەکانت بۆ کۆنترۆڵکردنی ئەو شتانە دەخەینەڕوو کە لە ماستۆدۆن دەیبینیت:",
"report.thanks.take_action_actionable": "لە کاتێکدا ئێمە پێداچوونەوە بەم بابەتە دەکەین، دەتوانیت ڕێوشوێن بگریتەبەر دژی @{name}:",
"report.thanks.title": "ناتەوێت ئەمە ببینیت؟",
"report.thanks.title_actionable": "سوپاس بۆ ڕاپۆرتکردن، ئێمە سەیری ئەم بابەتە دەکەین.",
"report.unfollow": "بەدوادانەچوو@{name}",
"report.unfollow_explanation": "تۆ شوێنکەوتووی ئەم هەژماررەی دەکەیت. بۆ ئەوەی چیتر نووسراوەکانیان لە هۆم فیدی خۆت نەبینی، بەدوایان مەچۆ.",
"search.placeholder": "گەڕان",
"search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو",
"search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.",
@ -434,7 +439,7 @@
"search_popout.tips.text": "دەقی سادە هەڵدەسێ بە گەڕاندنەوەی هاوتایی ناوی پیشاندان، ناوی بەکارهێنەر و هاشتاگەکان",
"search_popout.tips.user": "بەکارهێنەر",
"search_results.accounts": "خەڵک",
"search_results.all": "All",
"search_results.all": "هەموو",
"search_results.hashtags": "هەشتاگ",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.statuses": "توتەکان",
@ -442,7 +447,7 @@
"search_results.total": "{count, number} {count, plural, one {دەرئەنجام} other {دەرئەنجام}}",
"status.admin_account": "کردنەوەی میانڕەوی بەڕێوەبەر بۆ @{name}",
"status.admin_status": "ئەم توتە بکەوە لە ناو ڕووکاری بەڕیوەبەر",
"status.block": "بلۆکی @{name}",
"status.block": "@{name} ئاستەنگ بکە",
"status.bookmark": "نیشانه",
"status.cancel_reblog_private": "بێبەهێزکردن",
"status.cannot_reblog": "ئەم بابەتە ناتوانرێت بەرزبکرێتەوە",
@ -450,20 +455,20 @@
"status.delete": "سڕینەوە",
"status.detailed_status": "ڕوانگەی گفتوگۆ بە وردەکاری",
"status.direct": "پەیامی ڕاستەوخۆ @{name}",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.edit": "دەستکاری",
"status.edited": "بەشداری {date}",
"status.edited_x_times": "دەستکاریکراوە {count, plural, one {{count} کات} other {{count} کات}}",
"status.embed": "نیشتەجێ بکە",
"status.favourite": "دڵخواز",
"status.filtered": "پاڵاوتن",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "بارکردنی زیاتر",
"status.history.created": "{name} دروستکراوە لە{date}",
"status.history.edited": "{name} دروستکاریکراوە لە{date}",
"status.load_more": "زیاتر بار بکە",
"status.media_hidden": "میدیای شاراوە",
"status.mention": "ناوبنێ @{name}",
"status.more": "زیاتر",
"status.mute": "بێدەنگکردن @{name}",
"status.mute_conversation": "گفتوگۆی بێدەنگ",
"status.mute": "@{name} بێدەنگ بکە",
"status.mute_conversation": "بێدەنگی بکە",
"status.open": "ئەم توتە فراوان بکە",
"status.pin": "لکاندن لەسەر پرۆفایل",
"status.pinned": "توتی چەسپکراو",
@ -478,59 +483,59 @@
"status.replyAll": "بە نووسراوە وەڵام بدەوە",
"status.report": "گوزارشت @{name}",
"status.sensitive_warning": "ناوەڕۆکی هەستیار",
"status.share": "هاوبەش کردن",
"status.share": "هاوبەشی بکە",
"status.show_less": "کەمتر نیشان بدە",
"status.show_less_all": "کەمتر نیشان بدە بۆ هەمووی",
"status.show_more": "زیاتر پیشان بدە",
"status.show_less_all": "هەمووی بچووک بکەوە",
"status.show_more": "زیاتر نیشان بدە",
"status.show_more_all": "زیاتر نیشان بدە بۆ هەمووی",
"status.show_thread": "نیشاندانی گفتوگۆ",
"status.uncached_media_warning": "بەردەست نیە",
"status.unmute_conversation": "گفتوگۆی بێدەنگ",
"status.unpin": ابردن لە پرۆفایل",
"status.unpin": ە سەرەوە لایبە",
"suggestions.dismiss": "ڕەتکردنەوەی پێشنیار",
"suggestions.header": "لەوانەیە حەزت لەمەش بێت…",
"tabs_bar.federated_timeline": "گشتی",
"tabs_bar.home": "سەرەتا",
"tabs_bar.local_timeline": "ناوخۆیی",
"tabs_bar.notifications": "ئاگادارییەکان",
"tabs_bar.search": "گەڕان",
"tabs_bar.search": "بگەڕێ",
"time_remaining.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژ}} ماوە",
"time_remaining.hours": "{number, plural, one {# کات} other {# کات}} ماوە",
"time_remaining.minutes": "{number, plural, one {# خۆلەک} other {# خولەک}} ماوە",
"time_remaining.moments": "ئەو ساتانەی ماونەتەوە",
"time_remaining.hours": "{number, plural, one {# کاتژمێر} other {# کاتژمێر}} ماوە",
"time_remaining.minutes": "{number, plural, one {# خولەک} other {# خولەک}} ماوە",
"time_remaining.moments": "کاتی ماوە",
"time_remaining.seconds": "{number, plural, one {# چرکە} other {# چرکە}} ماوە",
"timeline_hint.remote_resource_not_displayed": "{resource} لە ڕاژەکانی ترەوە پیشان نادرێت.",
"timeline_hint.resources.followers": "شوێنکەوتووان",
"timeline_hint.resources.followers": "شوێنکەوتوو",
"timeline_hint.resources.follows": "شوێنکەوتن",
"timeline_hint.resources.statuses": "توتی کۆن",
"timeline_hint.resources.statuses": "نێردراوی کۆن",
"trends.counter_by_accounts": "{count, plural, one {{counter} کەس} other {{counter} کەس}} گفتوگۆ دەکا",
"trends.trending_now": "گۆگران",
"ui.beforeunload": "ڕەشنووسەکەت لە دەست دەچێت ئەگەر لە ماستۆدۆن بڕۆیت.",
"units.short.billion": "{count}ملیار",
"units.short.million": "{count}ملیۆن",
"units.short.thousand": "{count}هەزار",
"upload_area.title": "ڕاکێشان & دانان بۆ بارکردن",
"upload_button.label": "زیادکردنی وێنەکان، ڤیدیۆیەک یان فایلێکی دەنگی",
"upload_error.limit": "سنووری بارکردنی فایل تێپەڕیوە.",
"upload_error.poll": "پەڕگەکە ڕێی پێنەدراوە بە ڕاپرسی باربکرێت.",
"upload_form.audio_description": "بۆ ئەو کەسانەی کە گوێ بیستیان هەیە وەسف دەکات",
"upload_form.description": "وەسف بکە بۆ کەمبینایان",
"upload_form.description_missing": "No description added",
"trends.trending_now": "ڕۆژەڤ",
"ui.beforeunload": "ڕەشنووسەکەت لەدەست دەچێت ئەگەر ماستۆدۆن جێ بهێڵیت.",
"units.short.billion": "{count} ملیار",
"units.short.million": "{count} ملیۆن",
"units.short.thousand": "{count} هەزار",
"upload_area.title": "فایلەکانت ڕابکێشە ئێرە بۆ بەرزکردنەوەیان",
"upload_button.label": "وێنە، ڤیدیۆ یان پەیامی دەنگی زیاد بکە",
"upload_error.limit": "سنووری بەرزکردنەوەت بەزاندووە.",
"upload_error.poll": "فایل و ڕاپرسی پێکەوە ڕێپێنەدراون.",
"upload_form.audio_description": "پەیامەکەت بۆ نابیستەکان",
"upload_form.description": "پەیامەکەت بۆ نابیناکان",
"upload_form.description_missing": "هیچ وەسفێک زیاد نەکراوە",
"upload_form.edit": "دەستکاری",
"upload_form.thumbnail": "گۆڕانی وینۆچکە",
"upload_form.undo": "سڕینەوە",
"upload_form.video_description": "بۆ کەم بینایان و کەم بیستان وەسفی بکە",
"upload_modal.analyzing_picture": "شیکردنەوەی وێنە…",
"upload_modal.apply": "جێبەجێ کردن",
"upload_modal.applying": "Applying…",
"upload_form.undo": "بیسڕەوە",
"upload_form.video_description": "پەیامەکەت بۆ نابیست و نابیناکان",
"upload_modal.analyzing_picture": "وێنەکە شی دەکرێتەوە…",
"upload_modal.apply": "بیسەپێنە",
"upload_modal.applying": "داواکاری…",
"upload_modal.choose_image": "وێنە هەڵبژێرە",
"upload_modal.description_placeholder": "بە دڵ کەین با بە نەشئەی مەی غوباری میحنەتی دونیا",
"upload_modal.detect_text": "دەقی وێنەکە بدۆزیەوە",
"upload_modal.detect_text": "نووسینی ناو وێنەکە دەستنیشان بکە",
"upload_modal.edit_media": "دەستکاریکردنی میدیا",
"upload_modal.hint": "گەر وێنە چکۆلە یان بڕاوەبێت، خاڵی ناوەندی دیار دەکەوێت. خاڵی ناوەندی وێنە بە کرتە یان جێبەجیکردنی رێکبخەن.",
"upload_modal.preparing_ocr": "ئامادەکردنی OCR…",
"upload_modal.preview_label": "پێشبینی ({ratio})",
"upload_progress.label": "بارکردن...",
"upload_modal.preparing_ocr": "نووسینەکە دەستنیشان دەکرێت…",
"upload_modal.preview_label": "پێشبینین ({ratio})",
"upload_progress.label": "بار دەکرێت...",
"video.close": "داخستنی ڤیدیۆ",
"video.download": "داگرتنی فایل",
"video.exit_fullscreen": "دەرچوون لە پڕ شاشە",
@ -539,6 +544,6 @@
"video.hide": "شاردنەوەی ڤیدیۆ",
"video.mute": "دەنگی کپ",
"video.pause": "وەستان",
"video.play": "پەخشکردن",
"video.unmute": "دەنگ لابدە"
"video.play": "لێی بدە",
"video.unmute": "بێدەنگی مەکە"
}

View File

@ -70,7 +70,7 @@
"column.blocks": "Utilizatori bluccati",
"column.bookmarks": "Segnalibri",
"column.community": "Linea pubblica lucale",
"column.direct": "Missaghji diretti",
"column.direct": "Direct messages",
"column.directory": "Percorre i prufili",
"column.domain_blocks": "Duminii piattati",
"column.favourites": "Favuriti",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Solu lucale",
"community.column_settings.media_only": "Solu media",
"community.column_settings.remote_only": "Solu distante",
"compose_form.direct_message_warning": "Solu l'utilizatori mintuvati puderenu vede stu statutu.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Amparà di più",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "Stu statutu ùn hè \"Micca listatu\" è ùn sarà micca listatu indè e circate da hashtag. Per esse vistu in quesse, u statutu deve esse \"Pubblicu\".",
"compose_form.lock_disclaimer": "U vostru contu ùn hè micca {locked}. Tuttu u mondu pò seguitavi è vede i vostri statuti privati.",
"compose_form.lock_disclaimer.lock": "privatu",
@ -147,6 +149,7 @@
"embed.instructions": "Integrà stu statutu à u vostru situ cù u codice quì sottu.",
"embed.preview": "Hà da parè à quessa:",
"emoji_button.activity": "Attività",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Persunalizati",
"emoji_button.flags": "Bandere",
"emoji_button.food": "Manghjusca è Bienda",
@ -166,7 +169,7 @@
"empty_column.blocks": "Per avà ùn avete bluccatu manc'un utilizatore.",
"empty_column.bookmarked_statuses": "Ùn avete manc'un segnalibru. Quandu aghjunghjerate unu, sarà mustratu quì.",
"empty_column.community": "Ùn c'hè nunda indè a linea lucale. Scrivete puru qualcosa!",
"empty_column.direct": "Ùn avete ancu nisun missaghju direttu. S'è voi mandate o ricevete unu, u vidarete quì.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "Ùn c'hè manc'un duminiu bluccatu avà.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "Ùn avete manc'unu statutu favuritu. Quandu aghjunghjerate unu à i vostri favuriti, sarà mustratu quì.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "fucalizà un statutu indè una colonna",
"keyboard_shortcuts.compose": "fucalizà nant'à l'area di ridazzione",
"keyboard_shortcuts.description": "Descrizzione",
"keyboard_shortcuts.direct": "per apre una culonna di missaghji diretti",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "falà indè a lista",
"keyboard_shortcuts.enter": "apre u statutu",
"keyboard_shortcuts.favourite": "aghjunghje à i favuriti",
@ -264,6 +267,8 @@
"lightbox.expand": "Ingrandà a finestra d'affissera di i ritratti",
"lightbox.next": "Siguente",
"lightbox.previous": "Pricidente",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Aghjunghje à a lista",
"lists.account.remove": "Toglie di a lista",
"lists.delete": "Toglie a lista",
@ -290,7 +295,7 @@
"navigation_bar.bookmarks": "Segnalibri",
"navigation_bar.community_timeline": "Linea pubblica lucale",
"navigation_bar.compose": "Scrive un novu statutu",
"navigation_bar.direct": "Missaghji diretti",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Scopre",
"navigation_bar.domain_blocks": "Duminii piattati",
"navigation_bar.edit_profile": "Mudificà u prufile",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Toglie u scandagliu",
"privacy.change": "Mudificà a cunfidenzialità di u statutu",
"privacy.direct.long": "Mandà solu à quelli chì so mintuvati",
"privacy.direct.short": "Direttu",
"privacy.direct.short": "Direct",
"privacy.private.long": "Mustrà solu à l'abbunati",
"privacy.private.short": "Privatu",
"privacy.public.long": "Mustrà à tuttu u mondu nant'à e linee pubbliche",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Pubblicu",
"privacy.unlisted.long": "Ùn mette micca nant'à e linee pubbliche",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Micca listatu",
"refresh": "Attualizà",
"regeneration_indicator.label": "Caricamentu…",

View File

@ -92,8 +92,10 @@
"community.column_settings.local_only": "Pouze místní",
"community.column_settings.media_only": "Pouze média",
"community.column_settings.remote_only": "Pouze vzdálené",
"compose_form.direct_message_warning": "Tento příspěvek bude odeslán pouze zmíněným uživatelům.",
"compose.language.change": "Změnit jazyk",
"compose.language.search": "Prohledat jazyky...",
"compose_form.direct_message_warning_learn_more": "Zjistit více",
"compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné nebezpečné informace.",
"compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.",
"compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky učené pouze pro sledující.",
"compose_form.lock_disclaimer.lock": "uzamčen",
@ -147,6 +149,7 @@
"embed.instructions": "Pro přidání příspěvku na vaši webovou stránku zkopírujte níže uvedený kód.",
"embed.preview": "Takhle to bude vypadat:",
"emoji_button.activity": "Aktivita",
"emoji_button.clear": "Vyčistit",
"emoji_button.custom": "Vlastní",
"emoji_button.flags": "Vlajky",
"emoji_button.food": "Jídla a nápoje",
@ -264,6 +267,8 @@
"lightbox.expand": "Ukázat obrázek v plné velikosti",
"lightbox.next": "Další",
"lightbox.previous": "Předchozí",
"limited_account_hint.action": "Přesto profil zobrazit",
"limited_account_hint.title": "Tento profil byl skryt moderátory vašeho serveru.",
"lists.account.add": "Přidat do seznamu",
"lists.account.remove": "Odebrat ze seznamu",
"lists.delete": "Smazat seznam",
@ -366,13 +371,13 @@
"poll_button.add_poll": "Přidat anketu",
"poll_button.remove_poll": "Odstranit anketu",
"privacy.change": "Změnit soukromí příspěvku",
"privacy.direct.long": "Viditelné pouze pro zmíněné uživatele",
"privacy.direct.short": "Přímý",
"privacy.private.long": "Viditelné pouze pro sledující",
"privacy.private.short": "Pouze pro sledující",
"privacy.public.long": "Viditelné pro všechny, i ve veřejných časových osách",
"privacy.direct.long": "Viditelný pouze pro zmíněné uživatele",
"privacy.direct.short": "Jen zmínění lidé",
"privacy.private.long": "Viditelný pouze pro sledující",
"privacy.private.short": "Pouze sledující",
"privacy.public.long": "Viditelný pro všechny",
"privacy.public.short": "Veřejný",
"privacy.unlisted.long": "Viditelné pro všechny, ale ne ve veřejných časových osách",
"privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování",
"privacy.unlisted.short": "Neuvedený",
"refresh": "Obnovit",
"regeneration_indicator.label": "Načítání…",
@ -515,7 +520,7 @@
"upload_error.poll": "U anket není nahrávání souborů povoleno.",
"upload_form.audio_description": "Popis pro sluchově postižené",
"upload_form.description": "Popis pro zrakově postižené",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Nebyl přidán popis",
"upload_form.edit": "Upravit",
"upload_form.thumbnail": "Změnit miniaturu",
"upload_form.undo": "Smazat",

View File

@ -4,26 +4,26 @@
"account.badges.bot": "Bot",
"account.badges.group": "Grŵp",
"account.block": "Blocio @{name}",
"account.block_domain": "Cuddio popeth rhag {domain}",
"account.block_domain": "Blocio parth {domain}",
"account.blocked": "Blociwyd",
"account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
"account.cancel_follow_request": "Canslo cais dilyn",
"account.direct": "Neges breifat @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Parth wedi ei guddio",
"account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio",
"account.domain_blocked": "Parth wedi ei flocio",
"account.edit_profile": "Golygu proffil",
"account.enable_notifications": "Notify me when @{name} posts",
"account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio",
"account.endorse": "Arddangos ar fy mhroffil",
"account.follow": "Dilyn",
"account.followers": "Dilynwyr",
"account.followers.empty": "Nid oes neb yn dilyn y defnyddiwr hwn eto.",
"account.followers_counter": "{count, plural, one {{counter} Ddilynwr} other {{counter} o Ddilynwyr}}",
"account.following": "Following",
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
"account.followers_counter": "{count, plural, one {{counter} Dilynwr} other {{counter} o Ddilynwyr}}",
"account.following": "Yn dilyn",
"account.following_counter": "{count, plural, one {{counter} yn Dilyn} other {{counter} yn Dilyn}}",
"account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
"account.follows_you": "Yn eich dilyn chi",
"account.hide_reblogs": "Cuddio bwstiau o @{name}",
"account.joined": "Joined {date}",
"account.joined": "Ymunodd {date}",
"account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}",
"account.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i gloi. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.",
"account.media": "Cyfryngau",
@ -32,8 +32,8 @@
"account.mute": "Tawelu @{name}",
"account.mute_notifications": "Cuddio hysbysiadau o @{name}",
"account.muted": "Distewyd",
"account.posts": "Tŵtiau",
"account.posts_with_replies": "Tŵtiau ac atebion",
"account.posts": "Postiadau",
"account.posts_with_replies": "Postiadau ac atebion",
"account.report": "Adrodd @{name}",
"account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn",
"account.share": "Rhannwch broffil @{name}",
@ -41,24 +41,24 @@
"account.statuses_counter": "{count, plural, one {{counter} Dŵt} other {{counter} o Dŵtiau}}",
"account.unblock": "Dadflocio @{name}",
"account.unblock_domain": "Dadguddio {domain}",
"account.unblock_short": "Unblock",
"account.unblock_short": "Dad-flocio",
"account.unendorse": "Peidio a'i arddangos ar fy mhroffil",
"account.unfollow": "Dad-ddilyn",
"account.unmute": "Dad-dawelu @{name}",
"account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
"account.unmute_short": "Unmute",
"account.unmute_short": "Dad-dewi",
"account_note.placeholder": "Clicio i ychwanegu nodyn",
"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.retention.average": "Average",
"admin.dashboard.retention.cohort": "Sign-up month",
"admin.dashboard.daily_retention": "Cyfradd cadw defnyddwyr fesul diwrnod ar ôl cofrestru",
"admin.dashboard.monthly_retention": "Cyfradd cadw defnyddwyr fesul mis ar ôl cofrestru",
"admin.dashboard.retention.average": "Cyfartaledd",
"admin.dashboard.retention.cohort": "Mis cofrestru",
"admin.dashboard.retention.cohort_size": "Defnyddwyr newydd",
"alert.rate_limited.message": "Ceisiwch eto ar ôl {retry_time, time, medium}.",
"alert.rate_limited.title": "Cyfradd gyfyngedig",
"alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
"alert.unexpected.title": "Wps!",
"announcement.announcement": "Cyhoeddiad",
"attachments_list.unprocessed": "(unprocessed)",
"attachments_list.unprocessed": "(heb eu prosesu)",
"autosuggest_hashtag.per_week": "{count} yr wythnos",
"boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
"bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
@ -79,7 +79,7 @@
"column.lists": "Rhestrau",
"column.mutes": "Defnyddwyr a ddistewyd",
"column.notifications": "Hysbysiadau",
"column.pins": "Tŵtiau wedi eu pinio",
"column.pins": "Postiadau wedi eu pinio",
"column.public": "Ffrwd y ffederasiwn",
"column_back_button.label": "Nôl",
"column_header.hide_settings": "Cuddio dewisiadau",
@ -92,10 +92,12 @@
"community.column_settings.local_only": "Lleol yn unig",
"community.column_settings.media_only": "Cyfryngau yn unig",
"community.column_settings.remote_only": "Anghysbell yn unig",
"compose_form.direct_message_warning": "Mi fydd y tŵt hwn ond yn cael ei anfon at y defnyddwyr sy'n cael eu crybwyll.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Dysgu mwy",
"compose_form.hashtag_warning": "Ni fydd y tŵt hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond tŵtiau cyhoeddus gellid chwilota amdanynt drwy hashnod.",
"compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich tŵtiau dilynwyr-yn-unig.",
"compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth beryglus dros Mastodon.",
"compose_form.hashtag_warning": "Ni fydd y post hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond postiadau cyhoeddus gellid chwilio amdanynt drwy hashnod.",
"compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich postiadau dilynwyr-yn-unig.",
"compose_form.lock_disclaimer.lock": "wedi ei gloi",
"compose_form.placeholder": "Beth sydd ar eich meddwl?",
"compose_form.poll.add_option": "Ychwanegu Dewisiad",
@ -106,7 +108,7 @@
"compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
"compose_form.publish": "Tŵt",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.save_changes": "Cadw newidiadau",
"compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif",
"compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif",
"compose_form.sensitive.unmarked": "Nid yw'r cyfryngau wedi'u marcio'n sensitif",
@ -118,11 +120,11 @@
"confirmations.block.confirm": "Blocio",
"confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
"confirmations.delete.confirm": "Dileu",
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y t hwn?",
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
"confirmations.delete_list.confirm": "Dileu",
"confirmations.delete_list.message": "Ydych chi'n sicr eich bod eisiau dileu y rhestr hwn am byth?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.discard_edit_media.confirm": "Gwaredu",
"confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
"confirmations.domain_block.confirm": "Cuddio parth cyfan",
"confirmations.domain_block.message": "A ydych yn hollol, hollol sicr eich bod am flocio y {domain} cyfan? Yn y nifer helaeth o achosion mae blocio neu tawelu ambell gyfrif yn ddigonol ac yn well. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn unrhyw ffrydiau cyhoeddus na chwaith yn eich hysbysiadau. Bydd hyn yn cael gwared o'ch dilynwyr o'r parth hwnnw.",
"confirmations.logout.confirm": "Allgofnodi",
@ -131,7 +133,7 @@
"confirmations.mute.explanation": "Bydd hyn yn cuddio pyst oddi wrthynt a physt sydd yn sôn amdanynt, ond bydd hyn dal yn gadael iddyn nhw gweld eich pyst a'ch dilyn.",
"confirmations.mute.message": "Ydych chi'n sicr eich bod am ddistewi {name}?",
"confirmations.redraft.confirm": "Dileu & ailddrafftio",
"confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y tŵt hwn a'i ailddrafftio? Bydd ffefrynnau a bwstiau'n cael ei colli, a bydd ymatebion i'r tŵt gwreiddiol yn cael eu hamddifadu.",
"confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y post hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael ei colli, a bydd ymatebion i'r post gwreiddiol yn cael eu hamddifadu.",
"confirmations.reply.confirm": "Ateb",
"confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?",
"confirmations.unfollow.confirm": "Dad-ddilynwch",
@ -140,13 +142,14 @@
"conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
"conversation.open": "Gweld sgwrs",
"conversation.with": "Gyda {names}",
"directory.federated": "O ffedysawd hysbys",
"directory.federated": "O'r ffedysawd cyfan",
"directory.local": "O {domain} yn unig",
"directory.new_arrivals": "Newydd-ddyfodiaid",
"directory.recently_active": "Yn weithredol yn ddiweddar",
"embed.instructions": "Mewnblannwch y tŵt hwn ar eich gwefan drwy gopïo'r côd isod.",
"embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.",
"embed.preview": "Dyma sut olwg fydd arno:",
"emoji_button.activity": "Gweithgarwch",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Unigryw",
"emoji_button.flags": "Baneri",
"emoji_button.food": "Bwyd a Diod",
@ -160,42 +163,42 @@
"emoji_button.search_results": "Canlyniadau chwilio",
"emoji_button.symbols": "Symbolau",
"emoji_button.travel": "Teithio & Llefydd",
"empty_column.account_suspended": "Account suspended",
"empty_column.account_timeline": "Dim tŵtiau fama!",
"empty_column.account_suspended": "Cyfrif wedi'i atal",
"empty_column.account_timeline": "Dim postiadau yma!",
"empty_column.account_unavailable": "Proffil ddim ar gael",
"empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
"empty_column.bookmarked_statuses": "Nid oes gennych unrhyw dwtiau tudalnodiedig eto. Pan y byddwch yn tudalnodi un, mi fydd yn ymddangos yma.",
"empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
"empty_column.direct": "Nid oes gennych unrhyw negeseuon preifat eto. Pan y byddwch yn anfon neu derbyn un, mi fydd yn ymddangos yma.",
"empty_column.direct": "Does gennych unrhyw negeseuon preifat eto. Pan byddwch yn anfon neu derbyn un, bydd yn ymddangos yma.",
"empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff dwtiau eto. Pan y byddwch yn hoffi un, mi fydd yn ymddangos yma.",
"empty_column.favourites": "Nid oes neb wedi hoffi'r tŵt yma eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
"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.",
"empty_column.explore_statuses": "Does dim byd yn trendio ar hyn o bryd. Gwiriwch yn ôl yn nes ymlaen!",
"empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff bostiadau eto. Pan y byddwch yn hoffi un, mi fydd yn ymddangos yma.",
"empty_column.favourites": "Does neb wedi hoffi'r post hwn eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
"empty_column.follow_recommendations": "Does dim awgrymiadau yma i chi. Gallwch geisio chwilio am bobl yr ydych yn eu hadnabod neu archwilio hashnodau sy'n trendio.",
"empty_column.follow_requests": "Nid oes gennych unrhyw geisiadau dilyn eto. Pan dderbyniwch chi un, byddent yn ymddangos yma.",
"empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.",
"empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch a {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd a defnyddwyr eraill.",
"empty_column.home.suggestions": "See some suggestions",
"empty_column.home.suggestions": "Gweler awgrymiadau",
"empty_column.list": "Nid oes dim yn y rhestr yma eto. Pan y bydd aelodau'r rhestr yn cyhoeddi statws newydd, mi fydd yn ymddangos yma.",
"empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan grëwch chi un, mi fydd yn ymddangos yma.",
"empty_column.mutes": "Nid ydych wedi tawelu unrhyw ddefnyddwyr eto.",
"empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ac eraill i ddechrau'r sgwrs.",
"empty_column.public": "Does dim byd yma! Ysgrifennwch rhywbeth yn gyhoeddus, neu dilynwch ddefnyddwyr o achosion eraill i'w lenwi",
"error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.",
"error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
"error.unexpected_crash.explanation_addons": "Ni ellid arddangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
"error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho y dudalen. Os nad yw hyn yn eich helpu, efallai gallech defnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"error.unexpected_crash.next_steps_addons": "Ceisiwch eu hanalluogi ac adnewyddu'r dudalen. Os nad yw hynny'n helpu, efallai y byddwch yn dal i allu defnyddio Mastodon trwy borwr neu ap cynhenid arall.",
"errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd",
"errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem",
"explore.search_results": "Search results",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"explore.search_results": "Canlyniadau chwilio",
"explore.suggested_follows": "I chi",
"explore.title": "Archwilio",
"explore.trending_links": "Newyddion",
"explore.trending_statuses": "Postiadau",
"explore.trending_tags": "Hashnodau",
"follow_recommendations.done": "Wedi gorffen",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
"follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
"follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!",
"follow_request.authorize": "Caniatau",
"follow_request.reject": "Gwrthod",
"follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
@ -218,36 +221,36 @@
"hashtag.column_settings.tag_mode.none": "Dim o'r rhain",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Syml",
"home.column_settings.show_reblogs": "Dangos bŵstiau",
"home.column_settings.show_reblogs": "Dangos hybiau",
"home.column_settings.show_replies": "Dangos ymatebion",
"home.hide_announcements": "Cuddio cyhoeddiadau",
"home.show_announcements": "Dangos cyhoeddiadau",
"intervals.full.days": "{number, plural, one {# ddydd} other {# o ddyddiau}}",
"intervals.full.days": "{number, plural, one {# dydd} two {# ddydd} other {# o ddyddiau}}",
"intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}",
"intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}",
"keyboard_shortcuts.back": "i lywio nôl",
"keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
"keyboard_shortcuts.boost": "i fŵstio",
"keyboard_shortcuts.column": "i ffocysu tŵt yn un o'r colofnau",
"keyboard_shortcuts.column": "Ffocysu colofn",
"keyboard_shortcuts.compose": "i ffocysu yr ardal cyfansoddi testun",
"keyboard_shortcuts.description": "Disgrifiad",
"keyboard_shortcuts.direct": "i agor colofn negeseuon preifat",
"keyboard_shortcuts.down": "i symud lawr yn y rhestr",
"keyboard_shortcuts.enter": "i agor tŵt",
"keyboard_shortcuts.enter": "Agor post",
"keyboard_shortcuts.favourite": "i hoffi",
"keyboard_shortcuts.favourites": "i agor rhestr hoffi",
"keyboard_shortcuts.federated": "i agor ffrwd y ffederasiwn",
"keyboard_shortcuts.heading": "Llwybrau byr allweddell",
"keyboard_shortcuts.home": "i agor ffrwd cartref",
"keyboard_shortcuts.hotkey": "Bysell brys",
"keyboard_shortcuts.legend": "i ddangos yr arwr yma",
"keyboard_shortcuts.legend": "i ddangos y rhestr hon",
"keyboard_shortcuts.local": "i agor ffrwd lleol",
"keyboard_shortcuts.mention": "i grybwyll yr awdur",
"keyboard_shortcuts.muted": "i agor rhestr defnyddwyr a dawelwyd",
"keyboard_shortcuts.my_profile": "i agor eich proffil",
"keyboard_shortcuts.notifications": "i agor colofn hysbysiadau",
"keyboard_shortcuts.open_media": "i agor cyfryngau",
"keyboard_shortcuts.pinned": "i agor rhestr tŵtiau wedi'i pinio",
"keyboard_shortcuts.pinned": "Agor rhestr postiadau wedi'u pinio",
"keyboard_shortcuts.profile": "i agor proffil yr awdur",
"keyboard_shortcuts.reply": "i ateb",
"keyboard_shortcuts.requests": "i agor rhestr ceisiadau dilyn",
@ -256,7 +259,7 @@
"keyboard_shortcuts.start": "i agor colofn \"dechrau arni\"",
"keyboard_shortcuts.toggle_hidden": "i ddangos/cuddio testun tu ôl i CW",
"keyboard_shortcuts.toggle_sensitivity": "i ddangos/gyddio cyfryngau",
"keyboard_shortcuts.toot": "i ddechrau tŵt newydd sbon",
"keyboard_shortcuts.toot": "Dechrau post newydd",
"keyboard_shortcuts.unfocus": "i ddad-ffocysu ardal cyfansoddi testun/chwilio",
"keyboard_shortcuts.up": "i symud yn uwch yn y rhestr",
"lightbox.close": "Cau",
@ -264,6 +267,8 @@
"lightbox.expand": "Ehangu blwch gweld delwedd",
"lightbox.next": "Nesaf",
"lightbox.previous": "Blaenorol",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Ychwanegwch at restr",
"lists.account.remove": "Dileu o'r rhestr",
"lists.delete": "Dileu rhestr",
@ -275,7 +280,7 @@
"lists.replies_policy.list": "Aelodau'r rhestr",
"lists.replies_policy.none": "Neb",
"lists.replies_policy.title": "Dangos ymatebion i:",
"lists.search": "Chwilio ymysg pobl yr ydych yn ei ddilyn",
"lists.search": "Chwilio ymysg pobl yr ydych yn eu dilyn",
"lists.subheading": "Eich rhestrau",
"load_pending": "{count, plural, one {# eitem newydd} other {# eitemau newydd}}",
"loading_indicator.label": "Llwytho...",
@ -289,12 +294,12 @@
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
"navigation_bar.bookmarks": "Tudalnodau",
"navigation_bar.community_timeline": "Ffrwd leol",
"navigation_bar.compose": "Cyfansoddi t newydd",
"navigation_bar.compose": "Cyfansoddi post newydd",
"navigation_bar.direct": "Negeseuon preifat",
"navigation_bar.discover": "Darganfod",
"navigation_bar.domain_blocks": "Parthau cuddiedig",
"navigation_bar.edit_profile": "Golygu proffil",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "Archwilio",
"navigation_bar.favourites": "Ffefrynnau",
"navigation_bar.filters": "Geiriau a dawelwyd",
"navigation_bar.follow_requests": "Ceisiadau dilyn",
@ -305,28 +310,28 @@
"navigation_bar.logout": "Allgofnodi",
"navigation_bar.mutes": "Defnyddwyr a dawelwyd",
"navigation_bar.personal": "Personol",
"navigation_bar.pins": "Tŵtiau wedi eu pinio",
"navigation_bar.pins": "Postiadau wedi eu pinio",
"navigation_bar.preferences": "Dewisiadau",
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
"navigation_bar.security": "Diogelwch",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "hoffodd {name} eich tŵt",
"notification.follow": "dilynodd {name} chi",
"notification.admin.sign_up": "Cofrestrodd {name}",
"notification.favourite": "Hoffodd {name} eich post",
"notification.follow": "Dilynodd {name} chi",
"notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
"notification.mention": "Soniodd {name} amdanoch chi",
"notification.own_poll": "Mae eich pôl wedi diweddu",
"notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
"notification.reblog": "Hysbysebodd {name} eich tŵt",
"notification.reblog": "Hybodd {name} eich post",
"notification.status": "{name} newydd ei bostio",
"notification.update": "{name} edited a post",
"notification.update": "Golygodd {name} bost",
"notifications.clear": "Clirio hysbysiadau",
"notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
"notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
"notifications.column_settings.favourite": "Ffefrynnau:",
"notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
"notifications.column_settings.filter_bar.category": "Bar hidlo",
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
"notifications.column_settings.filter_bar.show_bar": "Dangos bar hidlo",
"notifications.column_settings.follow": "Dilynwyr newydd:",
"notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
"notifications.column_settings.mention": "Crybwylliadau:",
@ -336,10 +341,10 @@
"notifications.column_settings.show": "Dangos yn y golofn",
"notifications.column_settings.sound": "Chwarae sain",
"notifications.column_settings.status": "New toots:",
"notifications.column_settings.unread_notifications.category": "Unread notifications",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.update": "Edits:",
"notifications.filter.all": "Pob",
"notifications.column_settings.unread_notifications.category": "Hysbysiadau heb eu darllen",
"notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
"notifications.column_settings.update": "Golygiadau:",
"notifications.filter.all": "Popeth",
"notifications.filter.boosts": "Hybiadau",
"notifications.filter.favourites": "Ffefrynnau",
"notifications.filter.follows": "Yn dilyn",
@ -362,116 +367,116 @@
"poll.total_votes": "{count, plural, one {# bleidlais} other {# o bleidleisiau}}",
"poll.vote": "Pleidleisio",
"poll.voted": "Pleidleisioch chi am yr ateb hon",
"poll.votes": "{votes, plural, one {# vote} other {# votes}}",
"poll.votes": "{votes, plural, one {# bleidlais} other {# o bleidleisiau}}",
"poll_button.add_poll": "Ychwanegu pleidlais",
"poll_button.remove_poll": "Tynnu pleidlais",
"privacy.change": "Addasu preifatrwdd y t",
"privacy.change": "Addasu preifatrwdd y post",
"privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
"privacy.direct.short": "Uniongyrchol",
"privacy.direct.short": "Pobl sy wedi'u crybwyll yn unig",
"privacy.private.long": "Cyhoeddi i ddilynwyr yn unig",
"privacy.private.short": "Dilynwyr-yn-unig",
"privacy.public.long": "Cyhoeddi i ffrydiau cyhoeddus",
"privacy.private.short": "Dilynwyr yn unig",
"privacy.public.long": "Gweladwy i bawb",
"privacy.public.short": "Cyhoeddus",
"privacy.unlisted.long": "Peidio a chyhoeddi i ffrydiau cyhoeddus",
"privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod",
"privacy.unlisted.short": "Heb ei restru",
"refresh": "Adnewyddu",
"regeneration_indicator.label": "Llwytho…",
"regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
"relative_time.days": "{number}dydd",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.just_now": "just now",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.hours": "{number}awr",
"relative_time.days": "{number} dydd",
"relative_time.full.days": "{number, plural, one {# dydd} other {# o ddyddiau}} yn ôl",
"relative_time.full.hours": "{number, plural, one {# awr} other {# o oriau}} yn ôl",
"relative_time.full.just_now": "jyst nawr",
"relative_time.full.minutes": "{number, plural, one {# funud} other {# o funudau}} yn ôl",
"relative_time.full.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} yn ôl",
"relative_time.hours": "{number} awr",
"relative_time.just_now": "nawr",
"relative_time.minutes": "{number}munud",
"relative_time.seconds": "{number}eiliad",
"relative_time.minutes": "{number} munud",
"relative_time.seconds": "{number} eiliad",
"relative_time.today": "heddiw",
"reply_indicator.cancel": "Canslo",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.block": "Blocio",
"report.block_explanation": "Ni welwch chi eu postiadau. Ni allan nhw weld eich postiadau na'ch dilyn. Byddan nhw'n gallu gweld eu bod nhw wedi'u rhwystro.",
"report.categories.other": "Arall",
"report.categories.spam": "Sbam",
"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.categories.violation": "Mae cynnwys yn torri un neu fwy o reolau'r gweinydd",
"report.category.subtitle": "Dewiswch yr ateb gorau",
"report.category.title": "Beth sy'n bod â'r {type} hwn?",
"report.category.title_account": "proffil",
"report.category.title_status": "post",
"report.close": "Done",
"report.comment.title": "Is there anything else you think we should know?",
"report.close": "Iawn",
"report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?",
"report.forward": "Ymlaen i {target}",
"report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
"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.next": "Next",
"report.mute": "Mudo",
"report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.",
"report.next": "Nesaf",
"report.placeholder": "Sylwadau ychwanegol",
"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": "Dydw i ddim yn ei hoffi",
"report.reasons.dislike_description": "Nid yw'n rhywbeth yr ydych am ei weld",
"report.reasons.other": "Mae'n rhywbeth arall",
"report.reasons.other_description": "Nid yw'r mater yn ffitio i gategorïau eraill",
"report.reasons.spam": "Sothach yw e",
"report.reasons.spam_description": "Cysylltiadau maleisus, ymgysylltu ffug, neu atebion ailadroddus",
"report.reasons.violation": "Mae'n torri rheolau'r gweinydd",
"report.reasons.violation_description": "Rydych yn ymwybodol ei fod yn torri rheolau penodol",
"report.rules.subtitle": "Dewiswch bob un sy'n berthnasol",
"report.rules.title": "Pa reolau sy'n cael eu torri?",
"report.statuses.subtitle": "Dewiswch bob un sy'n berthnasol",
"report.statuses.title": "Oes postiadau eraill sy'n cefnogi'r adroddiad hwn?",
"report.submit": "Cyflwyno",
"report.target": "Cwyno am {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.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report.thanks.take_action": "Dyma'ch opsiynau ar gyfer rheoli'r hyn a welwch ar Mastodon:",
"report.thanks.take_action_actionable": "Tra byddwn yn edrych ar hyn, gallwch gymryd camau yn erbyn @{name}:",
"report.thanks.title": "Ddim eisiau gweld hwn?",
"report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.",
"report.unfollow": "Dad-ddilyn @{name}",
"report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
"search.placeholder": "Chwilio",
"search_popout.search_format": "Fformat chwilio uwch",
"search_popout.tips.full_text": "Mae testun syml yn dychwelyd tŵtiau yr ydych wedi ysgrifennu, hoffi, wedi'u bŵstio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
"search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
"search_popout.tips.hashtag": "hashnod",
"search_popout.tips.status": "t",
"search_popout.tips.status": "post",
"search_popout.tips.text": "Mae testun syml yn dychwelyd enwau arddangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
"search_popout.tips.user": "defnyddiwr",
"search_results.accounts": "Pobl",
"search_results.all": "All",
"search_results.hashtags": "Hanshnodau",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.statuses": "Tŵtiau",
"search_results.statuses_fts_disabled": "Nid yw chwilio Tŵtiau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"search_results.all": "Popeth",
"search_results.hashtags": "Hashnodau",
"search_results.nothing_found": "Methu dod o hyd i unrhyw beth ar gyfer y termau chwilio hyn",
"search_results.statuses": "Postiadau",
"search_results.statuses_fts_disabled": "Nid yw chwilio postiadau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
"search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}",
"status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
"status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio",
"status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio",
"status.block": "Blocio @{name}",
"status.bookmark": "Tudalnodi",
"status.cancel_reblog_private": "Dadfŵstio",
"status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn",
"status.copy": "Copïo cysylltiad i'r tŵt",
"status.cannot_reblog": "Ni ellir hybio'r post hwn",
"status.copy": "Copïo dolen i'r post",
"status.delete": "Dileu",
"status.detailed_status": "Golwg manwl o'r sgwrs",
"status.direct": "Neges breifat @{name}",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.edit": "Golygu",
"status.edited": "Ymunodd {date}",
"status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
"status.embed": "Plannu",
"status.favourite": "Hoffi",
"status.filtered": "Wedi'i hidlo",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.history.created": "{name} greuodd {date}",
"status.history.edited": "{name} olygodd {date}",
"status.load_more": "Llwythwch mwy",
"status.media_hidden": "Cyfryngau wedi'u cuddio",
"status.mention": "Crybwyll @{name}",
"status.more": "Mwy",
"status.mute": "Tawelu @{name}",
"status.mute_conversation": "Tawelu sgwrs",
"status.open": "Ehangu'r t hwn",
"status.open": "Ehangu'r post hwn",
"status.pin": "Pinio ar y proffil",
"status.pinned": "Pinio tŵt",
"status.pinned": "Post wedi'i binio",
"status.read_more": "Darllen mwy",
"status.reblog": "Hybu",
"status.reblog_private": "Hybu i'r gynulleidfa wreiddiol",
"status.reblogged_by": "Bŵstio {name}",
"status.reblogs.empty": "Does neb wedi bŵstio'r tŵt yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
"status.reblogged_by": "Hybodd {name}",
"status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
"status.redraft": "Dileu & ailddrafftio",
"status.remove_bookmark": "Tynnu'r tudalnod",
"status.reply": "Ateb",
@ -502,7 +507,7 @@
"timeline_hint.remote_resource_not_displayed": "ni chaiff {resource} o gweinyddion eraill ei ddangos.",
"timeline_hint.resources.followers": "Dilynwyr",
"timeline_hint.resources.follows": "Yn dilyn",
"timeline_hint.resources.statuses": "Tŵtiau henach",
"timeline_hint.resources.statuses": "Postiadau hŷn",
"trends.counter_by_accounts": "{count, plural, one {{counter} berson} other {{counter} o bobl}}",
"trends.trending_now": "Yn tueddu nawr",
"ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
@ -515,20 +520,20 @@
"upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.",
"upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw",
"upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Dim disgrifiad wedi'i ychwanegu",
"upload_form.edit": "Golygu",
"upload_form.thumbnail": "Newid mân-lun",
"upload_form.undo": "Dileu",
"upload_form.video_description": "Disgrifio ar gyfer pobl sydd â cholled clyw neu amhariad golwg",
"upload_modal.analyzing_picture": "Dadansoddi llun…",
"upload_modal.apply": "Gweithredu",
"upload_modal.applying": "Applying…",
"upload_modal.applying": "Gweithio…",
"upload_modal.choose_image": "Dewis delwedd",
"upload_modal.description_placeholder": "Mae ei phen bach llawn jocs, 'run peth a fy nghot golff, rhai dyddiau",
"upload_modal.detect_text": "Canfod testun o'r llun",
"upload_modal.edit_media": "Golygu cyfryngau",
"upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob mân-lunau.",
"upload_modal.preparing_ocr": "Preparing OCR…",
"upload_modal.preparing_ocr": "Paratoi OCR…",
"upload_modal.preview_label": "Rhagolwg ({ratio})",
"upload_progress.label": "Uwchlwytho...",
"video.close": "Cau fideo",

View File

@ -92,8 +92,10 @@
"community.column_settings.local_only": "Kun lokalt",
"community.column_settings.media_only": "Kun medier",
"community.column_settings.remote_only": "Kun udefra",
"compose_form.direct_message_warning": "Indlægget sendes kun til de nævnte brugere.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Få mere at vide",
"compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende krypteret. Del derfor ikke sensitiv information over Mastodon.",
"compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, idet kun offentlige indlæg kan søges via hashtags.",
"compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.",
"compose_form.lock_disclaimer.lock": "låst",
@ -147,6 +149,7 @@
"embed.instructions": "Indlejr dette indlæg på dit websted ved at kopiere nedenstående kode.",
"embed.preview": "Sådan kommer det til at se ud:",
"emoji_button.activity": "Aktivitet",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Tilpasset",
"emoji_button.flags": "Flag",
"emoji_button.food": "Mad og drikke",
@ -166,7 +169,7 @@
"empty_column.blocks": "Ingen brugere blokeret endnu.",
"empty_column.bookmarked_statuses": "Du har ingen bogmærkede indlæg endnu. Når du bogmærker ét, vil det dukke op hér.",
"empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!",
"empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager én, vil den dukke op hér.",
"empty_column.direct": "Der er endnu ingen direkte beskeder. Når en sendes eller modtages, dukker den 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 favoritmarkerer ét, vil det dukke op hér.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "Fokusér kolonne",
"keyboard_shortcuts.compose": "Fokusér skriveområdet",
"keyboard_shortcuts.description": "Beskrivelse",
"keyboard_shortcuts.direct": "Åbn Direkte beskeder-kolonnen",
"keyboard_shortcuts.direct": "for at åbne direkte beskeder-kolonnen",
"keyboard_shortcuts.down": "Flyt nedad på listen",
"keyboard_shortcuts.enter": "Åbn indlæg",
"keyboard_shortcuts.favourite": "Favoritmarkér indlæg",
@ -264,6 +267,8 @@
"lightbox.expand": "Udvid billedevisningsfelt",
"lightbox.next": "Næste",
"lightbox.previous": "Forrige",
"limited_account_hint.action": "Vis profil alligevel",
"limited_account_hint.title": "Denne profil er blevet skjult af servermoderatorerne.",
"lists.account.add": "Føj til liste",
"lists.account.remove": "Fjern fra liste",
"lists.delete": "Slet liste",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Fjern afstemning",
"privacy.change": "Justér indlægsfortrolighed",
"privacy.direct.long": "Kun synlig for nævnte brugere",
"privacy.direct.short": "Direkte",
"privacy.direct.short": "Kun nævnte personer",
"privacy.private.long": "Kun synlig for følgere",
"privacy.private.short": "Kun for følgere",
"privacy.public.long": "Synlig for alle, fremgår på offentlige tidslinjer",
"privacy.private.short": "Kun følgere",
"privacy.public.long": "Synlig for alle",
"privacy.public.short": "Offentlig",
"privacy.unlisted.long": "Synlig for alle, fremgår ikke på offentlige tidslinjer",
"privacy.unlisted.long": "Synlig for alle, men med fravalgt visning i opdagelsesfunktioner",
"privacy.unlisted.short": "Diskret",
"refresh": "Genindlæs",
"regeneration_indicator.label": "Indlæser…",
@ -515,7 +520,7 @@
"upload_error.poll": "Filupload ikke tilladt for afstemninger.",
"upload_form.audio_description": "Beskrivelse til hørehæmmede",
"upload_form.description": "Beskrivelse til svagtseende",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Ingen beskrivelse tilføjet",
"upload_form.edit": "Redigér",
"upload_form.thumbnail": "Skift miniature",
"upload_form.undo": "Slet",

View File

@ -19,16 +19,16 @@
"account.followers.empty": "Diesem Profil folgt noch niemand.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
"account.following": "Folgt",
"account.following_counter": "{count, plural, one {{counter} Folgender} other {{counter} Folgende}}",
"account.following_counter": "{count, plural, one {{counter} Folgt} other {{counter} Folgt}}",
"account.follows.empty": "Dieses Profil folgt noch niemandem.",
"account.follows_you": "Folgt dir",
"account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
"account.joined": "Beigetreten am {date}",
"account.link_verified_on": "Besitz dieses Links wurde geprüft am {date}",
"account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf gesperrt gesetzt. Die Person bestimmt manuell wer ihm/ihr folgen darf.",
"account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf gesperrt gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.",
"account.media": "Medien",
"account.mention": "@{name} erwähnen",
"account.moved_to": "{name} ist umgezogen auf:",
"account.moved_to": "{name} ist umgezogen nach:",
"account.mute": "@{name} stummschalten",
"account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
"account.muted": "Stummgeschaltet",
@ -39,26 +39,26 @@
"account.share": "Profil von @{name} teilen",
"account.show_reblogs": "Von @{name} geteilte Beiträge anzeigen",
"account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
"account.unblock": "@{name} entblocken",
"account.unblock": "Blockierung von @{name} aufheben",
"account.unblock_domain": "{domain} wieder anzeigen",
"account.unblock_short": "Blockierung aufheben",
"account.unendorse": "Nicht auf Profil hervorheben",
"account.unendorse": "Nicht mehr im Profil anzeigen",
"account.unfollow": "Entfolgen",
"account.unmute": "@{name} nicht mehr stummschalten",
"account.unmute": "Stummschaltung von @{name} aufheben",
"account.unmute_notifications": "Benachrichtigungen von @{name} einschalten",
"account.unmute_short": "Nicht mehr stummschalten",
"account.unmute_short": "Stummschaltung aufheben",
"account_note.placeholder": "Notiz durch Klicken hinzufügen",
"admin.dashboard.daily_retention": "Benutzerverbleibrate nach Tag nach Anmeldung",
"admin.dashboard.monthly_retention": "Benutzerverbleibrate nach Monat nach Anmeldung",
"admin.dashboard.retention.average": "Durchschnitt",
"admin.dashboard.retention.cohort": "Anmeldemonat",
"admin.dashboard.retention.cohort": "Monat der Anmeldung",
"admin.dashboard.retention.cohort_size": "Neue Benutzer",
"alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium}.",
"alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium} erneut.",
"alert.rate_limited.title": "Anfragelimit überschritten",
"alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.",
"alert.unexpected.title": "Hoppla!",
"announcement.announcement": "Ankündigung",
"attachments_list.unprocessed": "(unverarbeitet)",
"attachments_list.unprocessed": "(ausstehend)",
"autosuggest_hashtag.per_week": "{count} pro Woche",
"boost_modal.combo": "Drücke {combo}, um dieses Fenster zu überspringen",
"bundle_column_error.body": "Etwas ist beim Laden schiefgelaufen.",
@ -70,7 +70,7 @@
"column.blocks": "Blockierte Profile",
"column.bookmarks": "Lesezeichen",
"column.community": "Lokale Zeitleiste",
"column.direct": "Direktnachrichten",
"column.direct": "Mensaxes directas",
"column.directory": "Profile durchsuchen",
"column.domain_blocks": "Blockierte Domains",
"column.favourites": "Favoriten",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Nur lokal",
"community.column_settings.media_only": "Nur Medien",
"community.column_settings.remote_only": "Nur entfernt",
"compose_form.direct_message_warning": "Dieser Beitrag wird nur für die erwähnten Nutzer sichtbar sein.",
"compose.language.change": "Sprache ändern",
"compose.language.search": "Sprachen durchsuchen...",
"compose_form.direct_message_warning_learn_more": "Mehr erfahren",
"compose_form.encryption_warning": "Beiträge auf Mastodon sind nicht Ende-zu-Ende-verschlüsselt. Teile keine sensiblen Informationen über Mastodon.",
"compose_form.hashtag_warning": "Dieser Beitrag wird nicht durch Hashtags entdeckbar sein, weil er ungelistet ist. Nur öffentliche Beiträge tauchen in Hashtag-Zeitleisten auf.",
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
"compose_form.lock_disclaimer.lock": "gesperrt",
@ -133,7 +135,7 @@
"confirmations.redraft.confirm": "Löschen und neu erstellen",
"confirmations.redraft.message": "Bist du dir sicher, dass du diesen Beitrag löschen und neu machen möchtest? Favoriten und Boosts werden verloren gehen und Antworten zu diesem Beitrag werden verwaist sein.",
"confirmations.reply.confirm": "Antworten",
"confirmations.reply.message": "Wenn du jetzt antwortest wird es die gesamte Nachricht verwerfen, die du gerade schreibst. Möchtest du wirklich fortfahren?",
"confirmations.reply.message": "Wenn du jetzt antwortest wird die gesamte Nachricht verworfen, die du gerade schreibst. Möchtest du wirklich fortfahren?",
"confirmations.unfollow.confirm": "Entfolgen",
"confirmations.unfollow.message": "Bist du dir sicher, dass du {name} entfolgen möchtest?",
"conversation.delete": "Unterhaltung löschen",
@ -147,6 +149,7 @@
"embed.instructions": "Du kannst diesen Beitrag auf deiner Webseite einbetten, indem du den folgenden Code einfügst.",
"embed.preview": "So wird es aussehen:",
"emoji_button.activity": "Aktivitäten",
"emoji_button.clear": "Leeren",
"emoji_button.custom": "Eigene",
"emoji_button.flags": "Flaggen",
"emoji_button.food": "Essen und Trinken",
@ -165,8 +168,8 @@
"empty_column.account_unavailable": "Konto nicht verfügbar",
"empty_column.blocks": "Du hast keine Profile blockiert.",
"empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!",
"empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.",
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
"empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.",
"empty_column.domain_blocks": "Es sind noch keine Domains versteckt.",
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder!",
"empty_column.favourited_statuses": "Du hast noch keine favorisierten Tröts. Wenn du einen favorisierst, wird er hier erscheinen.",
@ -174,9 +177,9 @@
"empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen nach Leuten zu suchen, die du vielleicht kennst oder du kannst angesagte Hashtags erkunden.",
"empty_column.follow_requests": "Du hast noch keine Folge-Anfragen. Sobald du eine erhältst, wird sie hier angezeigt.",
"empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.",
"empty_column.home": "Deine Startseite ist leer! Besuche {public} oder nutze die Suche, um loszulegen und andere Leute zu finden.",
"empty_column.home": "Deine Startseite ist leer! Folge mehr Leuten, um sie zu füllen. {suggestions}",
"empty_column.home.suggestions": "Ein paar Vorschläge ansehen",
"empty_column.list": "Diese Liste ist derzeit leer. Wenn Wesen auf dieser Liste neue Beiträge veröffentlichen werden sie hier erscheinen.",
"empty_column.list": "Diese Liste ist derzeit leer. Wenn Konten auf dieser Liste neue Beiträge veröffentlichen werden sie hier erscheinen.",
"empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt.",
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
"empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.",
@ -198,7 +201,7 @@
"follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!",
"follow_request.authorize": "Erlauben",
"follow_request.reject": "Ablehnen",
"follow_requests.unlocked_explanation": "Auch wenn dein Konto nicht gesperrt ist, haben die Mitarbeiter von {domain} gedacht, dass es besser wäre den Follow manuell zu bestätigen.",
"follow_requests.unlocked_explanation": "Auch wenn dein Konto nicht gesperrt ist, haben die Moderator_innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
"generic.saved": "Gespeichert",
"getting_started.developers": "Entwickler",
"getting_started.directory": "Profilverzeichnis",
@ -225,13 +228,13 @@
"intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
"intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
"intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
"keyboard_shortcuts.back": "zurück navigieren",
"keyboard_shortcuts.back": "Zurück navigieren",
"keyboard_shortcuts.blocked": "Liste blockierter Profile öffnen",
"keyboard_shortcuts.boost": "teilen",
"keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren",
"keyboard_shortcuts.compose": "fokussiere das Eingabefeld",
"keyboard_shortcuts.description": "Beschreibung",
"keyboard_shortcuts.direct": "Direct-Message-Spalte öffnen",
"keyboard_shortcuts.direct": "um Direktnachrichtenspalte zu öffnen",
"keyboard_shortcuts.down": "sich in der Liste hinunter bewegen",
"keyboard_shortcuts.enter": "Beitrag öffnen",
"keyboard_shortcuts.favourite": "um zu favorisieren",
@ -264,6 +267,8 @@
"lightbox.expand": "Bildansicht erweitern",
"lightbox.next": "Weiter",
"lightbox.previous": "Zurück",
"limited_account_hint.action": "Profil trotzdem anzeigen",
"limited_account_hint.title": "Dieses Profil wurde von den Moderatoren deines Servers versteckt.",
"lists.account.add": "Zur Liste hinzufügen",
"lists.account.remove": "Von der Liste entfernen",
"lists.delete": "Liste löschen",
@ -279,7 +284,7 @@
"lists.subheading": "Deine Listen",
"load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}",
"loading_indicator.label": "Wird geladen …",
"media_gallery.toggle_visible": "Sichtbarkeit umschalten",
"media_gallery.toggle_visible": "{number, plural, one {Bild verbergen} other {Bilder verbergen}}",
"missing_indicator.label": "Nicht gefunden",
"missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden",
"mute_modal.duration": "Dauer",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Umfrage entfernen",
"privacy.change": "Sichtbarkeit des Beitrags anpassen",
"privacy.direct.long": "Wird an erwähnte Profile gesendet",
"privacy.direct.short": "Direktnachricht",
"privacy.direct.short": "Nur erwähnte Personen",
"privacy.private.long": "Nur für Folgende sichtbar",
"privacy.private.short": "Nur für Folgende",
"privacy.public.long": "Wird in öffentlichen Zeitleisten erscheinen",
"privacy.private.short": "Nur Follower",
"privacy.public.long": "Für alle sichtbar",
"privacy.public.short": "Öffentlich",
"privacy.unlisted.long": "Wird in öffentlichen Zeitleisten nicht gezeigt",
"privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen",
"privacy.unlisted.short": "Nicht gelistet",
"refresh": "Aktualisieren",
"regeneration_indicator.label": "Laden…",
@ -393,23 +398,23 @@
"report.block_explanation": "Du wirst die Beiträge von diesem Konto nicht sehen. Das Konto wird nicht in der Lage sein, deine Beiträge zu sehen oder dir zu folgen. Die Person hinter dem Konto wird wissen, dass du das Konto blockiert hast.",
"report.categories.other": "Andere",
"report.categories.spam": "Spam",
"report.categories.violation": "Inhalt verletzt ein oder mehrere Server-Regeln",
"report.category.subtitle": "Wähle die beste Zugehörigkeit",
"report.category.title": "Sag uns, was mit diesem {type} vor sich geht",
"report.categories.violation": "Der Inhalt verletzt eine oder mehrere Server-Regeln",
"report.category.subtitle": "Wähle die passendste Kategorie",
"report.category.title": "Sag uns, was das Problem mit diesem {type} ist",
"report.category.title_account": "Profil",
"report.category.title_status": "Beitrag",
"report.close": "Fertig",
"report.comment.title": "Gibt es etwas anderes, was wir wissen sollten?",
"report.forward": "An {target} weiterleiten",
"report.forward_hint": "Dieses Konto ist von einem anderen Server. Soll eine anonymisierte Kopie des Berichts auch dorthin geschickt werden?",
"report.forward_hint": "Dieses Konto gehört zu einem anderen Server. Soll eine anonymisierte Kopie der Meldung auch dorthin geschickt werden?",
"report.mute": "Stummschalten",
"report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immernoch folgen und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stumm geschaltet hast.",
"report.next": "Weiter",
"report.placeholder": "Zusätzliche Kommentare",
"report.reasons.dislike": "Das gefällt mir nicht",
"report.reasons.dislike_description": "Das ist nicht etwas, was ihr nicht sehen wollt",
"report.reasons.dislike_description": "Es ist etwas, das du nicht sehen willst",
"report.reasons.other": "Da ist was anderes",
"report.reasons.other_description": "Das Problem passt nicht in eine der Kategorien",
"report.reasons.other_description": "Das Problem passt nicht in die Kategorien",
"report.reasons.spam": "Das ist Spam",
"report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
"report.reasons.violation": "Es verstößt gegen Serverregeln",
@ -420,10 +425,10 @@
"report.statuses.title": "Gibt es Beiträge, die diesen Bericht unterstützen?",
"report.submit": "Absenden",
"report.target": "{target} melden",
"report.thanks.take_action": "Hier sind deine Optionen, die es dir erlauben zu kontrollieren, was du auf Mastodon sehen möchtest:",
"report.thanks.take_action": "Das sind deine Möglichkeiten, zu bestimmen, was du auf Mastodon sehen möchtest:",
"report.thanks.take_action_actionable": "Während wir dies überprüfen, kannst du gegen @{name} vorgehen:",
"report.thanks.title": "Möchtest du das nicht sehen?",
"report.thanks.title_actionable": "Vielen Dank für die Berichterstattung, wir werden uns damit befassen.",
"report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.",
"report.unfollow": "@{name} entfolgen",
"report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.",
"search.placeholder": "Suche",
@ -515,7 +520,7 @@
"upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
"upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen",
"upload_form.description": "Für Menschen mit Sehbehinderung beschreiben",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Keine Beschreibung hinzugefügt",
"upload_form.edit": "Bearbeiten",
"upload_form.thumbnail": "Miniaturansicht ändern",
"upload_form.undo": "Löschen",
@ -524,7 +529,7 @@
"upload_modal.apply": "Übernehmen",
"upload_modal.applying": "Anwenden…",
"upload_modal.choose_image": "Bild auswählen",
"upload_modal.description_placeholder": "Die heiße Zypernsonne quälte Max und Victoria ja böse auf dem Weg bis zur Küste",
"upload_modal.description_placeholder": "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich",
"upload_modal.detect_text": "Text aus Bild erkennen",
"upload_modal.edit_media": "Medien bearbeiten",
"upload_modal.hint": "Klicke oder ziehe den Kreis auf die Vorschau, um den Brennpunkt auszuwählen, der immer auf allen Vorschaubilder angezeigt wird.",

View File

@ -75,6 +75,14 @@
{
"defaultMessage": "Unmute notifications from @{name}",
"id": "account.unmute_notifications"
},
{
"defaultMessage": "Mute @{name}",
"id": "account.mute"
},
{
"defaultMessage": "Block @{name}",
"id": "account.block"
}
],
"path": "app/javascript/mastodon/components/account.json"
@ -206,7 +214,7 @@
{
"descriptors": [
{
"defaultMessage": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"defaultMessage": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
"id": "account.statuses_counter"
},
{
@ -659,7 +667,7 @@
"id": "privacy.private.short"
},
{
"defaultMessage": "Direct",
"defaultMessage": "Mentioned people only",
"id": "privacy.direct.short"
},
{
@ -671,7 +679,7 @@
"id": "status.filtered"
},
{
"defaultMessage": "Pinned toot",
"defaultMessage": "Pinned post",
"id": "status.pinned"
},
{
@ -773,11 +781,11 @@
{
"descriptors": [
{
"defaultMessage": "Toots",
"defaultMessage": "Posts",
"id": "account.posts"
},
{
"defaultMessage": "Toots and replies",
"defaultMessage": "Posts and replies",
"id": "account.posts_with_replies"
},
{
@ -787,6 +795,19 @@
],
"path": "app/javascript/mastodon/features/account_timeline/components/header.json"
},
{
"descriptors": [
{
"defaultMessage": "This profile has been hidden by the moderators of your server.",
"id": "limited_account_hint.title"
},
{
"defaultMessage": "Show profile anyway",
"id": "limited_account_hint.action"
}
],
"path": "app/javascript/mastodon/features/account_timeline/components/limited_account_hint.json"
},
{
"descriptors": [
{
@ -820,7 +841,7 @@
{
"descriptors": [
{
"defaultMessage": "Older toots",
"defaultMessage": "Older posts",
"id": "timeline_hint.resources.statuses"
},
{
@ -832,7 +853,7 @@
"id": "empty_column.account_unavailable"
},
{
"defaultMessage": "No toots here!",
"defaultMessage": "No posts found",
"id": "empty_column.account_timeline"
}
],
@ -946,7 +967,7 @@
"id": "account.disable_notifications"
},
{
"defaultMessage": "Pinned toots",
"defaultMessage": "Pinned posts",
"id": "navigation_bar.pins"
},
{
@ -1069,7 +1090,7 @@
"id": "column.bookmarks"
},
{
"defaultMessage": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"defaultMessage": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
"id": "empty_column.bookmarked_statuses"
}
],
@ -1104,7 +1125,7 @@
"id": "account.edit_profile"
},
{
"defaultMessage": "Pinned toots",
"defaultMessage": "Pinned posts",
"id": "navigation_bar.pins"
},
{
@ -1236,6 +1257,23 @@
],
"path": "app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.json"
},
{
"descriptors": [
{
"defaultMessage": "Change language",
"id": "compose.language.change"
},
{
"defaultMessage": "Search languages...",
"id": "compose.language.search"
},
{
"defaultMessage": "Clear",
"id": "emoji_button.clear"
}
],
"path": "app/javascript/mastodon/features/compose/components/language_dropdown.json"
},
{
"descriptors": [
{
@ -1306,7 +1344,7 @@
"id": "privacy.public.short"
},
{
"defaultMessage": "Visible for all, shown in public timelines",
"defaultMessage": "Visible for all",
"id": "privacy.public.long"
},
{
@ -1314,11 +1352,11 @@
"id": "privacy.unlisted.short"
},
{
"defaultMessage": "Visible for all, but not in public timelines",
"defaultMessage": "Visible for all, but opted-out of discovery features",
"id": "privacy.unlisted.long"
},
{
"defaultMessage": "Followers-only",
"defaultMessage": "Followers only",
"id": "privacy.private.short"
},
{
@ -1326,7 +1364,7 @@
"id": "privacy.private.long"
},
{
"defaultMessage": "Direct",
"defaultMessage": "Mentioned people only",
"id": "privacy.direct.short"
},
{
@ -1364,11 +1402,11 @@
"id": "search_results.accounts"
},
{
"defaultMessage": "Toots",
"defaultMessage": "Posts",
"id": "search_results.statuses"
},
{
"defaultMessage": "Searching toots by their content is not enabled on this Mastodon server.",
"defaultMessage": "Searching posts by their content is not enabled on this Mastodon server.",
"id": "search_results.statuses_fts_disabled"
},
{
@ -1504,12 +1542,12 @@
"id": "compose_form.lock_disclaimer.lock"
},
{
"defaultMessage": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"defaultMessage": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"id": "compose_form.hashtag_warning"
},
{
"defaultMessage": "This toot will only be sent to all the mentioned users.",
"id": "compose_form.direct_message_warning"
"defaultMessage": "Posts on Mastodon are not end-to-end encrypted. Do not share any sensitive information over Mastodon.",
"id": "compose_form.encryption_warning"
},
{
"defaultMessage": "Learn more",
@ -1549,7 +1587,7 @@
"id": "navigation_bar.logout"
},
{
"defaultMessage": "Compose new toot",
"defaultMessage": "Compose new post",
"id": "navigation_bar.compose"
},
{
@ -1619,6 +1657,14 @@
"defaultMessage": "Direct messages",
"id": "column.direct"
},
{
"defaultMessage": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"id": "compose_form.encryption_warning"
},
{
"defaultMessage": "Learn more",
"id": "compose_form.direct_message_warning_learn_more"
},
{
"defaultMessage": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"id": "empty_column.direct"
@ -1665,7 +1711,7 @@
"id": "confirmations.unfollow.message"
},
{
"defaultMessage": "Toots",
"defaultMessage": "Posts",
"id": "account.posts"
},
{
@ -1769,7 +1815,7 @@
"id": "search_results.hashtags"
},
{
"defaultMessage": "Toots",
"defaultMessage": "Posts",
"id": "search_results.statuses"
}
],
@ -1791,7 +1837,7 @@
"id": "column.favourites"
},
{
"defaultMessage": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"defaultMessage": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"id": "empty_column.favourited_statuses"
}
],
@ -1804,7 +1850,7 @@
"id": "refresh"
},
{
"defaultMessage": "No one has favourited this toot yet. When someone does, they will show up here.",
"defaultMessage": "No one has favourited this post yet. When someone does, they will show up here.",
"id": "empty_column.favourites"
}
],
@ -1880,6 +1926,10 @@
"defaultMessage": "Followers",
"id": "timeline_hint.resources.followers"
},
{
"defaultMessage": "Account suspended",
"id": "empty_column.account_suspended"
},
{
"defaultMessage": "Profile unavailable",
"id": "empty_column.account_unavailable"
@ -1897,6 +1947,10 @@
"defaultMessage": "Follows",
"id": "timeline_hint.resources.follows"
},
{
"defaultMessage": "Account suspended",
"id": "empty_column.account_suspended"
},
{
"defaultMessage": "Profile unavailable",
"id": "empty_column.account_unavailable"
@ -1997,7 +2051,7 @@
"id": "navigation_bar.mutes"
},
{
"defaultMessage": "Pinned toots",
"defaultMessage": "Pinned posts",
"id": "navigation_bar.pins"
},
{
@ -2186,7 +2240,7 @@
"id": "keyboard_shortcuts.compose"
},
{
"defaultMessage": "to start a brand new toot",
"defaultMessage": "to start a brand new post",
"id": "keyboard_shortcuts.toot"
},
{
@ -2234,7 +2288,7 @@
"id": "keyboard_shortcuts.favourites"
},
{
"defaultMessage": "to open pinned toots list",
"defaultMessage": "to open pinned posts list",
"id": "keyboard_shortcuts.pinned"
},
{
@ -2468,7 +2522,7 @@
"id": "notifications.column_settings.poll"
},
{
"defaultMessage": "New toots:",
"defaultMessage": "New posts:",
"id": "notifications.column_settings.status"
},
{
@ -2690,7 +2744,7 @@
{
"descriptors": [
{
"defaultMessage": "Pinned toot",
"defaultMessage": "Pinned post",
"id": "column.pins"
}
],
@ -2729,7 +2783,7 @@
"id": "refresh"
},
{
"defaultMessage": "No one has boosted this toot yet. When someone does, they will show up here.",
"defaultMessage": "No one has boosted this post yet. When someone does, they will show up here.",
"id": "status.reblogs.empty"
}
],
@ -3657,4 +3711,4 @@
],
"path": "app/javascript/mastodon/features/video/index.json"
}
]
]

View File

@ -92,8 +92,10 @@
"community.column_settings.local_only": "Τοπικά μόνο",
"community.column_settings.media_only": "Μόνο πολυμέσα",
"community.column_settings.remote_only": "Απομακρυσμένα μόνο",
"compose_form.direct_message_warning": "Αυτό το τουτ θα σταλεί μόνο στους αναφερόμενους χρήστες.",
"compose.language.change": "Αλλαγή γλώσσας",
"compose.language.search": "Αναζήτηση γλωσσών...",
"compose_form.direct_message_warning_learn_more": "Μάθετε περισσότερα",
"compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μην μοιράζεστε επικίνδυνες πληροφορίες μέσω του Mastodon.",
"compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.",
"compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.",
"compose_form.lock_disclaimer.lock": "κλειδωμένο",
@ -147,6 +149,7 @@
"embed.instructions": "Ενσωματώστε αυτή την κατάσταση στην ιστοσελίδα σας αντιγράφοντας τον παρακάτω κώδικα.",
"embed.preview": "Ορίστε πως θα φαίνεται:",
"emoji_button.activity": "Δραστηριότητα",
"emoji_button.clear": "Καθαρισμός",
"emoji_button.custom": "Προσαρμοσμένα",
"emoji_button.flags": "Σημαίες",
"emoji_button.food": "Φαγητά & Ποτά",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "εμφάνιση της κατάστασης σε μια από τις στήλες",
"keyboard_shortcuts.compose": "εστίαση στην περιοχή συγγραφής",
"keyboard_shortcuts.description": "Περιγραφή",
"keyboard_shortcuts.direct": "άνοιγμα στήλης απευθείας μηνυμάτων",
"keyboard_shortcuts.direct": "άνοιγμα στήλης προσωπικών μηνυμάτων",
"keyboard_shortcuts.down": "κίνηση προς τα κάτω στη λίστα",
"keyboard_shortcuts.enter": "εμφάνιση κατάστασης",
"keyboard_shortcuts.favourite": "σημείωση ως αγαπημένο",
@ -264,6 +267,8 @@
"lightbox.expand": "Ανάπτυξη πλαισίου εμφάνισης εικόνας",
"lightbox.next": "Επόμενο",
"lightbox.previous": "Προηγούμενο",
"limited_account_hint.action": "Εμφάνιση προφίλ ούτως ή άλλως",
"limited_account_hint.title": "Αυτό το προφίλ έχει αποκρυφτεί από τους διαχειριστές του διακομιστή σας.",
"lists.account.add": "Πρόσθεσε στη λίστα",
"lists.account.remove": "Βγάλε από τη λίστα",
"lists.delete": "Διαγραφή λίστας",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Αφαίρεση δημοσκόπησης",
"privacy.change": "Προσαρμογή ιδιωτικότητας δημοσίευσης",
"privacy.direct.long": "Δημοσίευση μόνο σε όσους και όσες αναφέρονται",
"privacy.direct.short": "Προσωπικά",
"privacy.direct.short": "Αναφερόμενα άτομα μόνο",
"privacy.private.long": "Δημοσίευση μόνο στους ακόλουθους",
"privacy.private.short": "Μόνο ακόλουθοι",
"privacy.public.long": "Δημοσίευσε στις δημόσιες ροές",
"privacy.public.long": "Ορατό σε όλους",
"privacy.public.short": "Δημόσιο",
"privacy.unlisted.long": "Μην δημοσιεύσεις στις δημόσιες ροές",
"privacy.unlisted.long": "Ορατό για όλους, αλλά opted-out των χαρακτηριστικών της ανακάλυψης",
"privacy.unlisted.short": "Μη καταχωρημένα",
"refresh": "Ανανέωση",
"regeneration_indicator.label": "Φορτώνει…",
@ -515,7 +520,7 @@
"upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
"upload_form.audio_description": "Περιγραφή για άτομα με προβλήματα ακοής",
"upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Δεν προστέθηκε περιγραφή",
"upload_form.edit": "Ενημέρωση",
"upload_form.thumbnail": "Αλλαγή μικρογραφίας",
"upload_form.undo": "Διαγραφή",

View File

@ -0,0 +1,549 @@
{
"account.account_note_header": "Note",
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "Block @{name}",
"account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.browse_more_on_origin_server": "Browse more on the original profile",
"account.cancel_follow_request": "Cancel follow request",
"account.direct": "Direct message @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Domain blocked",
"account.edit_profile": "Edit profile",
"account.enable_notifications": "Notify me when @{name} posts",
"account.endorse": "Feature on profile",
"account.follow": "Follow",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following": "Following",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.joined": "Joined {date}",
"account.link_verified_on": "Ownership of this link was checked on {date}",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.posts": "Posts",
"account.posts_with_replies": "Posts and replies",
"account.report": "Report @{name}",
"account.requested": "Awaiting approval. Click to cancel follow request",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unblock domain {domain}",
"account.unblock_short": "Unblock",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.unmute_short": "Unmute",
"account_note.placeholder": "Click to add a note",
"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.retention.average": "Average",
"admin.dashboard.retention.cohort": "Sign-up month",
"admin.dashboard.retention.cohort_size": "New users",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"announcement.announcement": "Announcement",
"attachments_list.unprocessed": "(unprocessed)",
"autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
"bundle_modal_error.close": "Close",
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Try again",
"column.blocks": "Blocked users",
"column.bookmarks": "Bookmarks",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.directory": "Browse profiles",
"column.domain_blocks": "Blocked domains",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.notifications": "Notifications",
"column.pins": "Pinned post",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_header.hide_settings": "Hide settings",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Remote only",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
"compose_form.poll.add_option": "Add a choice",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
"compose_form.poll.remove_option": "Remove this choice",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
"compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Cancel",
"confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"confirmations.reply.confirm": "Reply",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",
"conversation.open": "View conversation",
"conversation.with": "With {names}",
"directory.federated": "From known fediverse",
"directory.local": "From {domain} only",
"directory.new_arrivals": "New arrivals",
"directory.recently_active": "Recently active",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
"emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
"emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_suspended": "Account suspended",
"empty_column.account_timeline": "No posts found",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
"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.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
"empty_column.home.suggestions": "See some suggestions",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Search results",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"follow_recommendations.done": "Done",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"generic.saved": "Saved",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Getting started",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
"getting_started.security": "Security",
"getting_started.terms": "Terms of service",
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
"hashtag.column_settings.select.no_options_message": "No suggestions found",
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.hide_announcements": "Hide announcements",
"home.show_announcements": "Show announcements",
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "to boost",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
"keyboard_shortcuts.favourites": "to open favourites list",
"keyboard_shortcuts.federated": "to open federated timeline",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.home": "to open home timeline",
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "to open local timeline",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "to open pinned posts list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.requests": "to open follow requests list",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toot": "to start a brand new post",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
"lightbox.compress": "Compress image view box",
"lightbox.expand": "Expand image view box",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
"lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.replies_policy.followed": "Any followed user",
"lists.replies_policy.list": "Members of the list",
"lists.replies_policy.none": "No one",
"lists.replies_policy.title": "Show replies to:",
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
"media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Direct messages",
"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",
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.info": "About this server",
"navigation_bar.keyboard_shortcuts": "Hotkeys",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned posts",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.follow_request": "{name} has requested to follow you",
"notification.mention": "{name} mentioned you",
"notification.own_poll": "Your poll has ended",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notification.status": "{name} just posted",
"notification.update": "{name} edited a post",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
"notifications.column_settings.filter_bar.advanced": "Display all categories",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
"notifications.column_settings.status": "New posts:",
"notifications.column_settings.unread_notifications.category": "Unread notifications",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.update": "Edits:",
"notifications.filter.all": "All",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
"notifications.filter.polls": "Poll results",
"notifications.filter.statuses": "Updates from people you follow",
"notifications.grant_permission": "Grant permission.",
"notifications.group": "{count} notifications",
"notifications.mark_as_read": "Mark every notification as read",
"notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
"notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
"notifications_permission_banner.enable": "Enable desktop notifications",
"notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
"notifications_permission_banner.title": "Never miss a thing",
"picture_in_picture.restore": "Put it back",
"poll.closed": "Closed",
"poll.refresh": "Refresh",
"poll.total_people": "{count, plural, one {# person} other {# people}}",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
"poll.vote": "Vote",
"poll.voted": "You voted for this answer",
"poll.votes": "{votes, plural, one {# vote} other {# votes}}",
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Visible for mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Visible for followers only",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Unlisted",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.just_now": "just now",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.hours": "{number}h",
"relative_time.just_now": "now",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "today",
"reply_indicator.cancel": "Cancel",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Other",
"report.categories.spam": "Spam",
"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_status": "post",
"report.close": "Done",
"report.comment.title": "Is there anything else you think we should know?",
"report.forward": "Forward to {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"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.next": "Next",
"report.placeholder": "Type or paste additional comments",
"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.submit": "Submit report",
"report.target": "Report {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.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"search.placeholder": "Search",
"search_popout.search_format": "Advanced search format",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "status",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.all": "All",
"search_results.hashtags": "Hashtags",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.statuses": "Posts",
"search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.bookmark": "Bookmark",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Load more",
"status.media_hidden": "Media hidden",
"status.mention": "Mention @{name}",
"status.more": "More",
"status.mute": "Mute @{name}",
"status.mute_conversation": "Mute conversation",
"status.open": "Expand this status",
"status.pin": "Pin on profile",
"status.pinned": "Pinned post",
"status.read_more": "Read more",
"status.reblog": "Boost",
"status.reblog_private": "Boost with original visibility",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.show_thread": "Show thread",
"status.uncached_media_warning": "Not available",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.home": "Home",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
"timeline_hint.resources.followers": "Followers",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Older posts",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.trending_now": "Trending now",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add images, a video or an audio file",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
"upload_modal.applying": "Applying…",
"upload_modal.choose_image": "Choose image",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.preparing_ocr": "Preparing OCR…",
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "Uploading…",
"video.close": "Close video",
"video.download": "Download file",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",
"video.hide": "Hide video",
"video.mute": "Mute sound",
"video.pause": "Pause",
"video.play": "Play",
"video.unmute": "Unmute sound"
}

View File

@ -92,8 +92,10 @@
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media Only",
"community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This doot will only be sent to the mentioned users.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any sensitive information over Mastodon.",
"compose_form.hashtag_warning": "This doot won't be listed under any hashtag as it is unlisted. Only public doots can be searched by hashtag.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only doots.",
"compose_form.lock_disclaimer.lock": "locked",
@ -147,6 +149,7 @@
"embed.instructions": "Embed this doot on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "Focus column",
"keyboard_shortcuts.compose": "Focus compose textarea",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "Open direct messages column",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "Move down in the list",
"keyboard_shortcuts.enter": "Open doot",
"keyboard_shortcuts.favourite": "Favourite doot",
@ -264,6 +267,8 @@
"lightbox.expand": "Expand image view box",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
@ -316,9 +321,9 @@
"notification.mention": "{name} mentioned you",
"notification.own_poll": "Your poll has ended",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your doot",
"notification.status": "{name} just dooted",
"notification.update": "{name} edited a doot",
"notification.reblog": "{name} boosted your post",
"notification.status": "{name} just posted",
"notification.update": "{name} edited a post",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Change doot privacy",
"privacy.direct.long": "Visible for mentioned users only",
"privacy.direct.short": "Direct",
"privacy.direct.short": "Mentioned people only",
"privacy.private.long": "Visible for followers only",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all, shown in public timelines",
"privacy.private.short": "Followers only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Visible for all, but not in public timelines",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Unlisted",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",

View File

@ -18,7 +18,7 @@
"account.followers": "Sekvantoj",
"account.followers.empty": "Ankoraŭ neniu sekvas tiun uzanton.",
"account.followers_counter": "{count, plural, one{{counter} Sekvanto} other {{counter} Sekvantoj}}",
"account.following": "Following",
"account.following": "Sekvantaj",
"account.following_counter": "{count, plural, one {{counter} Sekvato} other {{counter} Sekvatoj}}",
"account.follows.empty": "Tiu uzanto ankoraŭ ne sekvas iun.",
"account.follows_you": "Sekvas vin",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Nur loka",
"community.column_settings.media_only": "Nur aŭdovidaĵoj",
"community.column_settings.remote_only": "Nur malproksima",
"compose_form.direct_message_warning": "Tiu mesaĝo estos sendita nur al menciitaj uzantoj.",
"compose.language.change": "Ŝanĝi lingvon",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Lerni pli",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "Ĉi tiu mesaĝo ne estos listigita per ajna kradvorto. Nur publikaj mesaĝoj estas serĉeblaj per kradvortoj.",
"compose_form.lock_disclaimer": "Via konta ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn, kiuj estas nur por sekvantoj.",
"compose_form.lock_disclaimer.lock": "ŝlosita",
@ -147,6 +149,7 @@
"embed.instructions": "Enkorpigu ĉi tiun mesaĝon en vian retejon per kopio de la suba kodo.",
"embed.preview": "Ĝi aperos tiel:",
"emoji_button.activity": "Agadoj",
"emoji_button.clear": "Forviŝi",
"emoji_button.custom": "Propraj",
"emoji_button.flags": "Flagoj",
"emoji_button.food": "Manĝi kaj trinki",
@ -166,7 +169,7 @@
"empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.",
"empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis mesaĝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.",
"empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!",
"empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.",
"empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!",
"empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis mesaĝon. Kiam vi stelumos iun, tiu aperos ĉi tie.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "fokusi mesaĝon en unu el la kolumnoj",
"keyboard_shortcuts.compose": "enfokusigi la tekstujon",
"keyboard_shortcuts.description": "Priskribo",
"keyboard_shortcuts.direct": "malfermi la kolumnon de rektaj mesaĝoj",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "iri suben en la listo",
"keyboard_shortcuts.enter": "malfermi mesaĝon",
"keyboard_shortcuts.favourite": "stelumi",
@ -264,6 +267,8 @@
"lightbox.expand": "Pligrandigi bildan vidkeston",
"lightbox.next": "Sekva",
"lightbox.previous": "Antaŭa",
"limited_account_hint.action": "Montru profilon ĉiukaze",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Aldoni al la listo",
"lists.account.remove": "Forigi de la listo",
"lists.delete": "Forigi la liston",
@ -326,7 +331,7 @@
"notifications.column_settings.favourite": "Stelumoj:",
"notifications.column_settings.filter_bar.advanced": "Montri ĉiujn kategoriojn",
"notifications.column_settings.filter_bar.category": "Rapida filtra breto",
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
"notifications.column_settings.filter_bar.show_bar": "Montru filtrilon",
"notifications.column_settings.follow": "Novaj sekvantoj:",
"notifications.column_settings.follow_request": "Novaj petoj de sekvado:",
"notifications.column_settings.mention": "Mencioj:",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Forigi balotenketon",
"privacy.change": "Agordi mesaĝan privatecon",
"privacy.direct.long": "Videbla nur al menciitaj uzantoj",
"privacy.direct.short": "Rekta",
"privacy.direct.short": "Direct",
"privacy.private.long": "Videbla nur al viaj sekvantoj",
"privacy.private.short": "Nur al sekvantoj",
"privacy.public.long": "Videbla al ĉiuj, afiŝita en publikaj templinioj",
"privacy.private.short": "Nur abonantoj",
"privacy.public.long": "Videbla por ĉiuj",
"privacy.public.short": "Publika",
"privacy.unlisted.long": "Videbla al ĉiuj, sed ne en publikaj templinioj",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Nelistigita",
"refresh": "Refreŝigu",
"regeneration_indicator.label": "Ŝargado…",
@ -403,7 +408,7 @@
"report.forward": "Plusendi al {target}",
"report.forward_hint": "La konto estas en alia servilo. Ĉu sendi sennomigitan kopion de la signalo ankaŭ tien?",
"report.mute": "Silentigi",
"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": "Vi ne vidos iliajn afiŝojn. Ili ankoraŭ povas sekvi vin kaj vidi viajn afiŝojn, kaj ne scios ke si estas silentigitaj.",
"report.next": "Sekva",
"report.placeholder": "Pliaj komentoj",
"report.reasons.dislike": "Mi ne ŝatas ĝin",
@ -415,7 +420,7 @@
"report.reasons.violation": "Ĝi malrespektas servilajn regulojn",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Elektu ĉiujn, kiuj validas",
"report.rules.title": "Which rules are being violated?",
"report.rules.title": "Kiuj reguloj estas malobservataj?",
"report.statuses.subtitle": "Elektu ĉiujn, kiuj validas",
"report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Sendi",
@ -515,7 +520,7 @@
"upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.",
"upload_form.audio_description": "Priskribi por homoj kiuj malfacile aŭdi",
"upload_form.description": "Priskribi por misvidantaj homoj",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Neniu priskribo aldonita",
"upload_form.edit": "Redakti",
"upload_form.thumbnail": "Ŝanĝi etigita bildo",
"upload_form.undo": "Forigi",

View File

@ -18,7 +18,7 @@
"account.followers": "Seguidores",
"account.followers.empty": "Todavía nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
"account.following": "Siguiendo",
"account.following": "Seguimientos",
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
"account.follows.empty": "Todavía este usuario no sigue a nadie.",
"account.follows_you": "Te sigue",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Sólo local",
"community.column_settings.media_only": "Sólo medios",
"community.column_settings.remote_only": "Sólo remoto",
"compose_form.direct_message_warning": "Este mensaje sólo será enviado a los usuarios mencionados.",
"compose.language.change": "Cambiar idioma",
"compose.language.search": "Buscar idiomas…",
"compose_form.direct_message_warning_learn_more": "Aprendé más",
"compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información sensible al usar Mastodon.",
"compose_form.hashtag_warning": "Este mensaje no se mostrará bajo ninguna etiqueta porque no es público. Sólo los mensajes públicos se pueden buscar por etiquetas.",
"compose_form.lock_disclaimer": "Tu cuenta no es {locked}. Todos pueden seguirte para ver tus mensajes marcados como \"Sólo para seguidores\".",
"compose_form.lock_disclaimer.lock": "privada",
@ -147,6 +149,7 @@
"embed.instructions": "Insertá este mensaje a tu sitio web copiando el código de abajo.",
"embed.preview": "Así es cómo se verá:",
"emoji_button.activity": "Actividad",
"emoji_button.clear": "Limpiar",
"emoji_button.custom": "Personalizado",
"emoji_button.flags": "Banderas",
"emoji_button.food": "Comida y bebida",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "Enfocar columna",
"keyboard_shortcuts.compose": "Enfocar el área de texto de redacción",
"keyboard_shortcuts.description": "Descripción",
"keyboard_shortcuts.direct": "Abrir columna de mensajes directos",
"keyboard_shortcuts.direct": "para abrir columna de mensajes directos",
"keyboard_shortcuts.down": "Bajar en la lista",
"keyboard_shortcuts.enter": "Abrir mensaje",
"keyboard_shortcuts.favourite": "Marcar mensaje como favorito",
@ -264,6 +267,8 @@
"lightbox.expand": "Expandir cuadro de vista de imagen",
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Mostrar perfil de todos modos",
"limited_account_hint.title": "Este perfil fue ocultado por los moderadores de tu servidor.",
"lists.account.add": "Agregar a lista",
"lists.account.remove": "Quitar de lista",
"lists.delete": "Eliminar lista",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Quitar encuesta",
"privacy.change": "Configurar privacidad del mensaje",
"privacy.direct.long": "Visible sólo para los usuarios mencionados",
"privacy.direct.short": "Directo",
"privacy.direct.short": "Sólo cuentas mencionadas",
"privacy.private.long": "Visible sólo para los seguidores",
"privacy.private.short": "Sólo para seguidores",
"privacy.public.long": "Visible para todos, mostrado en las líneas temporales públicas",
"privacy.public.long": "Visible para todos",
"privacy.public.short": "Público",
"privacy.unlisted.long": "Visible para todos, pero no en las líneas temporales públicas",
"privacy.unlisted.long": "Visible para todos, pero excluido de las características de descubrimiento",
"privacy.unlisted.short": "No listado",
"refresh": "Refrescar",
"regeneration_indicator.label": "Cargando…",
@ -515,7 +520,7 @@
"upload_error.poll": "No se permite la subida de archivos en encuestas.",
"upload_form.audio_description": "Agregá una descripción para personas con dificultades auditivas",
"upload_form.description": "Agregá una descripción para personas con dificultades visuales",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "No se agregó descripción",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
"upload_form.undo": "Eliminar",

View File

@ -92,8 +92,10 @@
"community.column_settings.local_only": "Solo local",
"community.column_settings.media_only": "Solo media",
"community.column_settings.remote_only": "Solo remoto",
"compose_form.direct_message_warning": "Este toot solo será enviado a los usuarios mencionados.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Aprender mas",
"compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información confidencial en Mastodon.",
"compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
"compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
@ -147,6 +149,7 @@
"embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
"embed.preview": "Así es como se verá:",
"emoji_button.activity": "Actividad",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Personalizado",
"emoji_button.flags": "Marcas",
"emoji_button.food": "Comida y bebida",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
"keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
"keyboard_shortcuts.description": "Descripción",
"keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
"keyboard_shortcuts.direct": "para abrir la columna de mensajes directos",
"keyboard_shortcuts.down": "mover hacia abajo en la lista",
"keyboard_shortcuts.enter": "abrir estado",
"keyboard_shortcuts.favourite": "añadir a favoritos",
@ -264,6 +267,8 @@
"lightbox.expand": "Expandir cuadro de visualización de imagen",
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Añadir a lista",
"lists.account.remove": "Quitar de lista",
"lists.delete": "Borrar lista",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Eliminar encuesta",
"privacy.change": "Ajustar privacidad",
"privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
"privacy.direct.short": "Directo",
"privacy.direct.short": "Sólo cuentas mencionadas",
"privacy.private.long": "Sólo mostrar a seguidores",
"privacy.private.short": "Privado",
"privacy.public.long": "Mostrar en la historia federada",
"privacy.private.short": "Solo seguidores",
"privacy.public.long": "Visible para todos",
"privacy.public.short": "Público",
"privacy.unlisted.long": "No mostrar en la historia federada",
"privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
"privacy.unlisted.short": "No listado",
"refresh": "Actualizar",
"regeneration_indicator.label": "Cargando…",
@ -515,7 +520,7 @@
"upload_error.poll": "Subida de archivos no permitida con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para los usuarios con dificultad visual",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Ninguna descripción añadida",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
"upload_form.undo": "Borrar",

View File

@ -4,7 +4,7 @@
"account.badges.bot": "Bot",
"account.badges.group": "Grupo",
"account.block": "Bloquear a @{name}",
"account.block_domain": "Ocultar todo de {domain}",
"account.block_domain": "Bloquear dominio {domain}",
"account.blocked": "Bloqueado",
"account.browse_more_on_origin_server": "Ver más en el perfil original",
"account.cancel_follow_request": "Cancelar la solicitud de seguimiento",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Solo local",
"community.column_settings.media_only": "Solo media",
"community.column_settings.remote_only": "Solo remoto",
"compose_form.direct_message_warning": "Esta nueva publicación solo será enviada a los usuarios mencionados.",
"compose.language.change": "Cambiar idioma",
"compose.language.search": "Buscar idiomas...",
"compose_form.direct_message_warning_learn_more": "Aprender más",
"compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información confidencial en Mastodon.",
"compose_form.hashtag_warning": "Esta publicación no se mostrará bajo ningún hashtag porque no está listada. Sólo las publicaciones públicas se pueden buscar por hashtag.",
"compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus publicaciones solo para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
@ -147,6 +149,7 @@
"embed.instructions": "Añade esta publicación a tu sitio web con el siguiente código.",
"embed.preview": "Así es como se verá:",
"emoji_button.activity": "Actividad",
"emoji_button.clear": "Limpiar",
"emoji_button.custom": "Personalizado",
"emoji_button.flags": "Marcas",
"emoji_button.food": "Comida y bebida",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
"keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
"keyboard_shortcuts.description": "Descripción",
"keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
"keyboard_shortcuts.direct": "para abrir la columna de mensajes directos",
"keyboard_shortcuts.down": "mover hacia abajo en la lista",
"keyboard_shortcuts.enter": "abrir estado",
"keyboard_shortcuts.favourite": "añadir a favoritos",
@ -264,6 +267,8 @@
"lightbox.expand": "Expandir cuadro de visualización de imagen",
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Mostrar perfil de todos modos",
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de tu servidor.",
"lists.account.add": "Añadir a lista",
"lists.account.remove": "Quitar de lista",
"lists.delete": "Borrar lista",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Eliminar encuesta",
"privacy.change": "Ajustar privacidad",
"privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
"privacy.direct.short": "Directo",
"privacy.direct.short": "Sólo cuentas mencionadas",
"privacy.private.long": "Sólo mostrar a seguidores",
"privacy.private.short": "Privado",
"privacy.public.long": "Mostrar en la historia federada",
"privacy.private.short": "Solo seguidores",
"privacy.public.long": "Visible para todos",
"privacy.public.short": "Público",
"privacy.unlisted.long": "No mostrar en la historia federada",
"privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
"privacy.unlisted.short": "No listado",
"refresh": "Actualizar",
"regeneration_indicator.label": "Cargando…",
@ -515,7 +520,7 @@
"upload_error.poll": "Subida de archivos no permitida con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para los usuarios con dificultad visual",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Ninguna descripción añadida",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
"upload_form.undo": "Borrar",

View File

@ -1,5 +1,5 @@
{
"account.account_note_header": "Note",
"account.account_note_header": "Märge",
"account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest",
"account.badges.bot": "Robot",
"account.badges.group": "Grupp",
@ -8,7 +8,7 @@
"account.blocked": "Blokeeritud",
"account.browse_more_on_origin_server": "Browse more on the original profile",
"account.cancel_follow_request": "Tühista jälgimistaotlus",
"account.direct": "Otsesõnum @{name}",
"account.direct": "Saada otsesõnum @{name}'ile",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Domeen peidetud",
"account.edit_profile": "Muuda profiili",
@ -17,28 +17,28 @@
"account.follow": "Jälgi",
"account.followers": "Jälgijad",
"account.followers.empty": "Keegi ei jälgi seda kasutajat veel.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.followers_counter": "{count, plural, one {{counter} jälgija} other {{counter} jälgijat}}",
"account.following": "Following",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.following_counter": "{count, plural, one {{counter} jälgitav} other {{counter} jälgitavat}}",
"account.follows.empty": "See kasutaja ei jälgi veel kedagi.",
"account.follows_you": "Jälgib Teid",
"account.hide_reblogs": "Peida upitused kasutajalt @{name}",
"account.joined": "Joined {date}",
"account.joined": "Liitus {date}",
"account.link_verified_on": "Selle lingi autorsust kontrolliti {date}",
"account.locked_info": "Selle konto privaatsussätteks on lukustatud. Omanik vaatab manuaalselt üle, kes teda jägida saab.",
"account.media": "Meedia",
"account.mention": "Maini @{name}",
"account.mention": "Maini @{name}'i",
"account.moved_to": "{name} on kolinud:",
"account.mute": "Vaigista @{name}",
"account.mute_notifications": "Vaigista teated kasutajalt @{name}",
"account.muted": "Vaigistatud",
"account.posts": "Tuututused",
"account.posts_with_replies": "Tuututused ja vastused",
"account.posts": "Postitused",
"account.posts_with_replies": "Postitused ja vastused",
"account.report": "Raporteeri @{name}",
"account.requested": "Ootab kinnitust. Klõpsa jälgimise soovi tühistamiseks",
"account.share": "Jaga @{name} profiili",
"account.show_reblogs": "Näita kasutaja @{name} upitusi",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.statuses_counter": "{count, plural, one {{counter} postitus} other {{counter} postitust}}",
"account.unblock": "Eemalda blokeering @{name}",
"account.unblock_domain": "Tee {domain} nähtavaks",
"account.unblock_short": "Unblock",
@ -47,7 +47,7 @@
"account.unmute": "Ära vaigista @{name}",
"account.unmute_notifications": "Ära vaigista teateid kasutajalt @{name}",
"account.unmute_short": "Unmute",
"account_note.placeholder": "Click to add a note",
"account_note.placeholder": "Klõpsa märkme lisamiseks",
"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.retention.average": "Average",
@ -70,7 +70,7 @@
"column.blocks": "Blokeeritud kasutajad",
"column.bookmarks": "Järjehoidjad",
"column.community": "Kohalik ajajoon",
"column.direct": "Otsesõnumid",
"column.direct": "Direct messages",
"column.directory": "Sirvi profiile",
"column.domain_blocks": "Peidetud domeenid",
"column.favourites": "Lemmikud",
@ -92,19 +92,21 @@
"community.column_settings.local_only": "Ainult kohalik",
"community.column_settings.media_only": "Ainult meedia",
"community.column_settings.remote_only": "Ainult kaug",
"compose_form.direct_message_warning": "See tuut saadetakse ainult mainitud kasutajatele.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Vaata veel",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "Seda tuuti ei kuvata ühegi sildi all, sest see on kirjendamata. Ainult avalikud tuutid on sildi järgi otsitavad.",
"compose_form.lock_disclaimer": "Teie konto ei ole {locked}. Igaüks saab Teid jälgida ja näha Teie ainult-jälgijatele postitusi.",
"compose_form.lock_disclaimer.lock": "lukus",
"compose_form.placeholder": "Millest mõtlete?",
"compose_form.placeholder": "Millest mõtled?",
"compose_form.poll.add_option": "Lisa valik",
"compose_form.poll.duration": "Küsitluse kestus",
"compose_form.poll.option_placeholder": "Valik {number}",
"compose_form.poll.remove_option": "Eemalda see valik",
"compose_form.poll.switch_to_multiple": "Muuda küsitlust lubamaks mitut valikut",
"compose_form.poll.switch_to_single": "Muuda küsitlust lubamaks ainult ühte valikut",
"compose_form.publish": "Tuut",
"compose_form.publish": "Tuututa",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.sensitive.hide": "Märgista meedia tundlikuks",
@ -147,9 +149,10 @@
"embed.instructions": "Manusta see staatus oma veebilehele, kopeerides alloleva koodi.",
"embed.preview": "Nii näeb see välja:",
"emoji_button.activity": "Tegevus",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Mugandatud",
"emoji_button.flags": "Lipud",
"emoji_button.food": "Toit & Jook",
"emoji_button.food": "Toit & jook",
"emoji_button.label": "Sisesta emoji",
"emoji_button.nature": "Loodus",
"emoji_button.not_found": "Ei ole emojosi!! (╯°□°)╯︵ ┻━┻",
@ -159,20 +162,20 @@
"emoji_button.search": "Otsi...",
"emoji_button.search_results": "Otsitulemused",
"emoji_button.symbols": "Sümbolid",
"emoji_button.travel": "Reisimine & Kohad",
"emoji_button.travel": "Reisimine & kohad",
"empty_column.account_suspended": "Account suspended",
"empty_column.account_timeline": "Siin tuute ei ole!",
"empty_column.account_unavailable": "Profiil pole saadaval",
"empty_column.blocks": "Sa ei ole veel ühtegi kasutajat blokeerinud.",
"empty_column.bookmarked_statuses": "Teil pole veel järjehoidjatesse lisatud tuututusi. Kui lisate mõne, näete neid siin.",
"empty_column.community": "Kohalik ajajoon on tühi. Kirjutage midagi avalikult, et pall veerema ajada!",
"empty_column.direct": "Teil ei ole veel otsesõnumeid. Kui saadate või võtate mõne vastu, ilmuvad nad siia.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "Siin ei ole veel peidetud domeene.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.explore_statuses": "Ükski postitus pole hetkel populaarne. Tule hiljem tagasi!",
"empty_column.favourited_statuses": "Teil pole veel lemmikuid tuute. Kui märgite mõne, näete neid siin.",
"empty_column.favourites": "Keegi pole veel seda tuuti lemmikuks märkinud. Kui seegi seda teeb, näed seda siin.",
"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.",
"empty_column.follow_requests": "Teil pole veel ühtegi jälgimise taotlust. Kui saate mõne, näete neid siin.",
"empty_column.follow_requests": "Teil pole hetkel ühtegi jälgimistaotlust. Kui saate mõne, näete neid siin.",
"empty_column.hashtag": "Selle sildiga pole veel midagi.",
"empty_column.home": "Teie kodu ajajoon on tühi! Külastage {public} või kasutage otsingut alustamaks ja kohtamaks teisi kasutajaid.",
"empty_column.home.suggestions": "See some suggestions",
@ -187,12 +190,12 @@
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale",
"errors.unexpected_crash.report_issue": "Teavita veast",
"explore.search_results": "Search results",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"explore.search_results": "Otsingutulemused",
"explore.suggested_follows": "Sinu jaoks",
"explore.title": "Avasta",
"explore.trending_links": "Uudised",
"explore.trending_statuses": "Postitused",
"explore.trending_tags": "Sildid",
"follow_recommendations.done": "Done",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
@ -231,9 +234,9 @@
"keyboard_shortcuts.column": "fokuseerimaks staatust ühele tulpadest",
"keyboard_shortcuts.compose": "fokuseerimaks tekstikoostamise alale",
"keyboard_shortcuts.description": "Kirjeldus",
"keyboard_shortcuts.direct": "avamaks otsesõnumite tulpa",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "liikumaks nimstus alla",
"keyboard_shortcuts.enter": "staatuse avamiseks",
"keyboard_shortcuts.enter": "Ava postitus",
"keyboard_shortcuts.favourite": "lemmikuks märkimiseks",
"keyboard_shortcuts.favourites": "avamaks lemmikute nimistut",
"keyboard_shortcuts.federated": "avamaks föderatsiooni ajajoont",
@ -264,6 +267,8 @@
"lightbox.expand": "Expand image view box",
"lightbox.next": "Järgmine",
"lightbox.previous": "Eelmine",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Lisa nimistusse",
"lists.account.remove": "Eemalda nimistust",
"lists.delete": "Kustuta nimistu",
@ -279,22 +284,22 @@
"lists.subheading": "Teie nimistud",
"load_pending": "{count, plural, one {# uus kirje} other {# uut kirjet}}",
"loading_indicator.label": "Laeb..",
"media_gallery.toggle_visible": "Lülita nähtavus",
"media_gallery.toggle_visible": "{number, plural, one {Varja pilt} other {Varja pildid}}",
"missing_indicator.label": "Ei leitud",
"missing_indicator.sublabel": "Seda ressurssi ei leitud",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?",
"mute_modal.indefinite": "Indefinite",
"navigation_bar.apps": "Mobiilrakendused",
"navigation_bar.apps": "Mobiilirakendused",
"navigation_bar.blocks": "Blokeeritud kasutajad",
"navigation_bar.bookmarks": "Järjehoidjad",
"navigation_bar.community_timeline": "Kohalik ajajoon",
"navigation_bar.compose": "Koosta uus tuut",
"navigation_bar.direct": "Otsesõnumid",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Avasta",
"navigation_bar.domain_blocks": "Peidetud domeenid",
"navigation_bar.edit_profile": "Muuda profiili",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "Avasta",
"navigation_bar.favourites": "Lemmikud",
"navigation_bar.filters": "Vaigistatud sõnad",
"navigation_bar.follow_requests": "Jälgimistaotlused",
@ -359,27 +364,27 @@
"poll.closed": "Suletud",
"poll.refresh": "Värskenda",
"poll.total_people": "{count, plural,one {# inimene} other {# inimest}}",
"poll.total_votes": "{count, plural, one {# hääl} other {# hääli}}",
"poll.total_votes": "{count, plural, one {# hääl} other {# häält}}",
"poll.vote": "Hääleta",
"poll.voted": "Teie hääletasite selle poolt",
"poll.votes": "{votes, plural, one {# vote} other {# votes}}",
"poll.votes": "{votes, plural, one {# hääl} other {# häält}}",
"poll_button.add_poll": "Lisa küsitlus",
"poll_button.remove_poll": "Eemalda küsitlus",
"privacy.change": "Muuda staatuse privaatsust",
"privacy.change": "Muuda postituse nähtavust",
"privacy.direct.long": "Postita ainult mainitud kasutajatele",
"privacy.direct.short": "Otsene",
"privacy.direct.short": "Direct",
"privacy.private.long": "Postita ainult jälgijatele",
"privacy.private.short": "Ainult jälgijatele",
"privacy.public.long": "Postita avalikele ajajoontele",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Avalik",
"privacy.unlisted.long": "Ära postita avalikele ajajoontele",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Määramata",
"refresh": "Värskenda",
"regeneration_indicator.label": "Laeb…",
"regeneration_indicator.sublabel": "Teie kodu voog on ettevalmistamisel!",
"relative_time.days": "{number}p",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.hours": "{number, plural, one {# tund} other {# tundi}} tagasi",
"relative_time.full.just_now": "just now",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
@ -434,7 +439,7 @@
"search_popout.tips.text": "Lihtne tekst toob esile kattuvad kuvanimed, kasutajanimed ning sildid",
"search_popout.tips.user": "kasutaja",
"search_results.accounts": "Inimesed",
"search_results.all": "All",
"search_results.all": "Kõik",
"search_results.hashtags": "Sildid",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.statuses": "Tuudid",
@ -446,10 +451,10 @@
"status.bookmark": "Järjehoidja",
"status.cancel_reblog_private": "Äraupita",
"status.cannot_reblog": "Seda postitust ei saa upitada",
"status.copy": "Kopeeri link staatusesse",
"status.copy": "Kopeeri postituse link",
"status.delete": "Kustuta",
"status.detailed_status": "Detailne vestluskuva",
"status.direct": "Otsesõnum @{name}",
"status.direct": "Saada otsesõnum @{name}'ile",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
@ -458,13 +463,13 @@
"status.filtered": "Filtreeritud",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Lae veel",
"status.load_more": "Lae rohkem",
"status.media_hidden": "Meedia peidetud",
"status.mention": "Mainimine @{name}",
"status.mention": "Maini @{name}'i",
"status.more": "Veel",
"status.mute": "Vaigista @{name}",
"status.mute_conversation": "Vaigista vestlus",
"status.open": "Laienda see staatus",
"status.open": "Laienda see postitus",
"status.pin": "Kinnita profiilile",
"status.pinned": "Kinnitatud tuut",
"status.read_more": "Loe veel",
@ -476,7 +481,7 @@
"status.remove_bookmark": "Eemalda järjehoidja",
"status.reply": "Vasta",
"status.replyAll": "Vasta lõimele",
"status.report": "Raport @{name}",
"status.report": "Raporteeri @{name}",
"status.sensitive_warning": "Tundlik sisu",
"status.share": "Jaga",
"status.show_less": "Näita vähem",
@ -494,17 +499,17 @@
"tabs_bar.local_timeline": "Kohalik",
"tabs_bar.notifications": "Teated",
"tabs_bar.search": "Otsi",
"time_remaining.days": "{number, plural, one {# päev} other {# päeva}} left",
"time_remaining.hours": "{number, plural, one {# tund} other {# tundi}} left",
"time_remaining.minutes": "{number, plural, one {# minut} other {# minutit}} left",
"time_remaining.days": "{number, plural, one {# päev} other {# päeva}} jäänud",
"time_remaining.hours": "{number, plural, one {# tund} other {# tundi}} jäänud",
"time_remaining.minutes": "{number, plural, one {# minut} other {# minutit}} jäänud",
"time_remaining.moments": "Hetked jäänud",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} left",
"time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} jäänud",
"timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
"timeline_hint.resources.followers": "Followers",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Older toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.trending_now": "Praegu populaarne",
"trends.trending_now": "Hetkel populaarne",
"ui.beforeunload": "Teie mustand läheb kaotsi, kui lahkute Mastodonist.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",

View File

@ -70,7 +70,7 @@
"column.blocks": "Blokeatutako erabiltzaileak",
"column.bookmarks": "Laster-markak",
"column.community": "Denbora-lerro lokala",
"column.direct": "Mezu zuzenak",
"column.direct": "Direct messages",
"column.directory": "Arakatu profilak",
"column.domain_blocks": "Ezkutatutako domeinuak",
"column.favourites": "Gogokoak",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Lokala soilik",
"community.column_settings.media_only": "Multimedia besterik ez",
"community.column_settings.remote_only": "Urrunekoa soilik",
"compose_form.direct_message_warning": "Bidalketa hau aipatutako erabiltzaileei besterik ez zaie bidaliko.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Ikasi gehiago",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "Bidalketa hau ez da traoletan agertuko zerrendatu gabekoa baita. Traoletan bidalketa publikoak besterik ez dira agertzen.",
"compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren bidalketak ikusteko.",
"compose_form.lock_disclaimer.lock": "giltzapetuta",
@ -147,6 +149,7 @@
"embed.instructions": "Txertatu bidalketa hau zure webgunean beheko kodea kopiatuz.",
"embed.preview": "Hau da izango duen itxura:",
"emoji_button.activity": "Jarduera",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Pertsonalizatua",
"emoji_button.flags": "Banderak",
"emoji_button.food": "Janari eta edaria",
@ -166,7 +169,7 @@
"empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.",
"empty_column.bookmarked_statuses": "Oraindik ez dituzu bidalketa laster-markatutarik. Bat laster-markatzerakoan, hemen agertuko da.",
"empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!",
"empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "Ez dago ezkutatutako domeinurik oraindik.",
"empty_column.explore_statuses": "Ez dago joerarik une honetan. Begiratu beranduago!",
"empty_column.favourited_statuses": "Ez duzu gogokorik oraindik. Gogokoren bat duzunean hemen agertuko da.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "mezu bat zutabe batean fokatzea",
"keyboard_shortcuts.compose": "testua konposatzeko arean fokatzea",
"keyboard_shortcuts.description": "Deskripzioa",
"keyboard_shortcuts.direct": "mezu zuzenen zutabea irekitzeko",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "zerrendan behera mugitzea",
"keyboard_shortcuts.enter": "Ireki bidalketa",
"keyboard_shortcuts.favourite": "Egin gogoko bidalketa",
@ -264,6 +267,8 @@
"lightbox.expand": "Zabaldu irudia ikusteko kaxa",
"lightbox.next": "Hurrengoa",
"lightbox.previous": "Aurrekoa",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Gehitu zerrendara",
"lists.account.remove": "Kendu zerrendatik",
"lists.delete": "Ezabatu zerrenda",
@ -290,7 +295,7 @@
"navigation_bar.bookmarks": "Laster-markak",
"navigation_bar.community_timeline": "Denbora-lerro lokala",
"navigation_bar.compose": "Idatzi bidalketa berria",
"navigation_bar.direct": "Mezu zuzenak",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Aurkitu",
"navigation_bar.domain_blocks": "Ezkutatutako domeinuak",
"navigation_bar.edit_profile": "Aldatu profila",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Kendu inkesta",
"privacy.change": "Aldatu bidalketaren pribatutasuna",
"privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
"privacy.direct.short": "Zuzena",
"privacy.direct.short": "Direct",
"privacy.private.long": "Bidali jarraitzaileei besterik ez",
"privacy.private.short": "Jarraitzaileak soilik",
"privacy.public.long": "Bistaratu denbora-lerro publikoetan",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Publikoa",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Zerrendatu gabea",
"refresh": "Berritu",
"regeneration_indicator.label": "Kargatzen…",

View File

@ -92,8 +92,10 @@
"community.column_settings.local_only": "فقط محلّی",
"community.column_settings.media_only": "فقط رسانه",
"community.column_settings.remote_only": "تنها دوردست",
"compose_form.direct_message_warning": "این فرسته تنها به کاربرانی که از آن‌ها نام برده شده فرستاده خواهد شد.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "بیشتر بدانید",
"compose_form.encryption_warning": "فرسته‌های ماستودون رمزگذاری سرتاسری نشده‌اند. هیچ اطّلاعات خطرناکی را روی ماستودون هم‌رسانی نکنید.",
"compose_form.hashtag_warning": "از آن‌جا که این فرسته فهرست نشده است، در نتایج جست‌وجوی هشتگ‌ها پیدا نخواهد شد. تنها فرسته‌های عمومی را می‌توان با جست‌وجوی هشتگ یافت.",
"compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پی‌گیرتان شده و فرسته‌های ویژهٔ پی‌گیرانتان را ببیند.",
"compose_form.lock_disclaimer.lock": "قفل‌شده",
@ -147,6 +149,7 @@
"embed.instructions": "برای جاسازی این فرسته در سایت خودتان، کد زیر را رونوشت کنید.",
"embed.preview": "این گونه دیده خواهد شد:",
"emoji_button.activity": "فعالیت",
"emoji_button.clear": "Clear",
"emoji_button.custom": "سفارشی",
"emoji_button.flags": "پرچم‌ها",
"emoji_button.food": "غذا و نوشیدنی",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "برای تمرکز روی یک فرسته در یکی از ستون‌ها",
"keyboard_shortcuts.compose": "تمرکز روی محیط نوشتن",
"keyboard_shortcuts.description": "توضیح",
"keyboard_shortcuts.direct": "گشودن ستون پیام‌های مستقیم",
"keyboard_shortcuts.direct": "برای گشودن ستون پیغام‌های مستقیم",
"keyboard_shortcuts.down": "پایین بردن در سیاهه",
"keyboard_shortcuts.enter": "گشودن فرسته",
"keyboard_shortcuts.favourite": "پسندیدن فرسته",
@ -264,6 +267,8 @@
"lightbox.expand": "گسترش جعبهٔ نمایش تصویر",
"lightbox.next": "بعدی",
"lightbox.previous": "قبلی",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "افزودن به سیاهه",
"lists.account.remove": "برداشتن از سیاهه",
"lists.delete": "حذف سیاهه",
@ -366,13 +371,13 @@
"poll_button.add_poll": "افزودن نظرسنجی",
"poll_button.remove_poll": "برداشتن نظرسنجی",
"privacy.change": "تغییر محرمانگی فرسته",
"privacy.direct.long": "فقط برای کاربران نام‌برده نمایان است",
"privacy.direct.short": "مستقیم",
"privacy.direct.long": "نمایان فقط برای کاربران اشاره شده",
"privacy.direct.short": "فقط افراد اشاره شده",
"privacy.private.long": "نمایان فقط برای پی‌گیرندگان",
"privacy.private.short": "فقط پی‌گیرندگان",
"privacy.public.long": "نمایان برای همه، در خط‌های زمانی همگانی نمایش داده خواهد شد",
"privacy.public.long": "نمایان برای همه",
"privacy.public.short": "عمومی",
"privacy.unlisted.long": "نمایان برای همه، ولی در خط‌های زمانی همگانی نمایش داده نخواهد شد",
"privacy.unlisted.long": "نمایان برای همه، ولی خارج از قابلیت‌های کشف",
"privacy.unlisted.short": "فهرست نشده",
"refresh": "نوسازی",
"regeneration_indicator.label": "در حال بار شدن…",
@ -515,7 +520,7 @@
"upload_error.poll": "بارگذاری پرونده در نظرسنجی‌ها مجاز نیست.",
"upload_form.audio_description": "برای ناشنوایان توصیفش کنید",
"upload_form.description": "برای کم‌بینایان توصیفش کنید",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "شرحی افزوده نشده",
"upload_form.edit": "ویرایش",
"upload_form.thumbnail": "تغییر بندانگشتی",
"upload_form.undo": "حذف",

View File

@ -70,7 +70,7 @@
"column.blocks": "Estetyt käyttäjät",
"column.bookmarks": "Kirjanmerkit",
"column.community": "Paikallinen aikajana",
"column.direct": "Pikaviestit",
"column.direct": "Direct messages",
"column.directory": "Selaa profiileja",
"column.domain_blocks": "Piilotetut verkkotunnukset",
"column.favourites": "Suosikit",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Vain paikalliset",
"community.column_settings.media_only": "Vain media",
"community.column_settings.remote_only": "Vain etäkäyttö",
"compose_form.direct_message_warning": "Tämä viesti näkyy vain mainituille käyttäjille.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Lisätietoja",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "Tätä julkaisua listata minkään hastagin alle, koska se on listaamaton. Ainoastaan julkisia julkaisuja etsiä hastageilla.",
"compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.",
"compose_form.lock_disclaimer.lock": "lukittu",
@ -147,6 +149,7 @@
"embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.",
"embed.preview": "Se tulee näyttämään tältä:",
"emoji_button.activity": "Aktiviteetit",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Mukautetut",
"emoji_button.flags": "Liput",
"emoji_button.food": "Ruoka ja juoma",
@ -166,7 +169,7 @@
"empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
"empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
"empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
"empty_column.direct": "Sinulla ei ole vielä yhtään viestiä yksittäiselle käyttäjälle. Kun lähetät tai vastaanotat sellaisen, se näkyy täällä.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä estetty.",
"empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!",
"empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "Kohdista sarakkeeseen",
"keyboard_shortcuts.compose": "siirry tekstinsyöttöön",
"keyboard_shortcuts.description": "Kuvaus",
"keyboard_shortcuts.direct": "Avaa pikaviestisarake",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "Siirry listassa alaspäin",
"keyboard_shortcuts.enter": "Avaa julkaisu",
"keyboard_shortcuts.favourite": "Lisää suosikkeihin",
@ -264,6 +267,8 @@
"lightbox.expand": "Laajenna kuvan näkymälaatikko",
"lightbox.next": "Seuraava",
"lightbox.previous": "Edellinen",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Lisää listaan",
"lists.account.remove": "Poista listasta",
"lists.delete": "Poista lista",
@ -290,7 +295,7 @@
"navigation_bar.bookmarks": "Kirjanmerkit",
"navigation_bar.community_timeline": "Paikallinen aikajana",
"navigation_bar.compose": "Luo uusi viesti",
"navigation_bar.direct": "Pikaviestit",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Löydä uutta",
"navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
"navigation_bar.edit_profile": "Muokkaa profiilia",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Poista kysely",
"privacy.change": "Muuta julkaisun näkyvyyttä",
"privacy.direct.long": "Julkaise vain mainituille käyttäjille",
"privacy.direct.short": "Suora viesti",
"privacy.direct.short": "Direct",
"privacy.private.long": "Julkaise vain seuraajille",
"privacy.private.short": "Vain seuraajat",
"privacy.public.long": "Julkaise julkisille aikajanoille",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Julkinen",
"privacy.unlisted.long": "Älä julkaise julkisilla aikajanoilla",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Listaamaton julkinen",
"refresh": "Päivitä",
"regeneration_indicator.label": "Ladataan…",

View File

@ -1,25 +1,25 @@
{
"account.account_note_header": "Note",
"account.add_or_remove_from_list": "Ajouter ou retirer des listes",
"account.badges.bot": "Robot",
"account.badges.bot": "Bot",
"account.badges.group": "Groupe",
"account.block": "Bloquer @{name}",
"account.block_domain": "Bloquer le domaine {domain}",
"account.blocked": "Bloqué",
"account.blocked": "Bloqué·e",
"account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
"account.cancel_follow_request": "Annuler la demande de suivi",
"account.direct": "Envoyer un message direct à @{name}",
"account.disable_notifications": "Arrêter de me notifier quand @{name} publie",
"account.disable_notifications": "Ne plus me notifier quand @{name} publie quelque chose",
"account.domain_blocked": "Domaine bloqué",
"account.edit_profile": "Modifier le profil",
"account.enable_notifications": "Me notifier quand @{name} publie",
"account.enable_notifications": "Me notifier quand @{name} publie quelque chose",
"account.endorse": "Recommander sur votre profil",
"account.follow": "Suivre",
"account.followers": "Abonnés",
"account.followers": "Abonné·e·s",
"account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour linstant.",
"account.followers_counter": "{count, plural, one {{counter} Abonné·e} other {{counter} Abonné·e·s}}",
"account.following": "Abonnements",
"account.following_counter": "{count, plural, other {{counter} Abonnements}}",
"account.following_counter": "{count, plural, one {{counter} Abonnement} other {{counter} Abonnements}}",
"account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour linstant.",
"account.follows_you": "Vous suit",
"account.hide_reblogs": "Masquer les partages de @{name}",
@ -30,12 +30,12 @@
"account.mention": "Mentionner @{name}",
"account.moved_to": "{name} a déménagé vers:",
"account.mute": "Masquer @{name}",
"account.mute_notifications": "Ignorer les notifications de @{name}",
"account.mute_notifications": "Masquer les notifications de @{name}",
"account.muted": "Masqué·e",
"account.posts": "Messages",
"account.posts_with_replies": "Messages et réponses",
"account.report": "Signaler @{name}",
"account.requested": "En attente dapprobation. Cliquez pour annuler la requête",
"account.requested": "En attente dapprobation. Cliquez pour annuler la demande",
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les partages de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Message} other {{counter} Messages}}",
@ -48,8 +48,8 @@
"account.unmute_notifications": "Ne plus masquer les notifications de @{name}",
"account.unmute_short": "Ne plus masquer",
"account_note.placeholder": "Cliquez pour ajouter une note",
"admin.dashboard.daily_retention": "Taux de maintien des utilisateur·rice·s par jour après inscription",
"admin.dashboard.monthly_retention": "Brugerfastholdelsesrate efter måned efter tilmelding",
"admin.dashboard.daily_retention": "Taux de rétention des utilisateur·rice·s par jour après inscription",
"admin.dashboard.monthly_retention": "Taux de rétention des utilisateur·rice·s par mois après inscription",
"admin.dashboard.retention.average": "Moyenne",
"admin.dashboard.retention.cohort": "Mois d'inscription",
"admin.dashboard.retention.cohort_size": "Nouveaux utilisateurs",
@ -92,8 +92,10 @@
"community.column_settings.local_only": "Local seulement",
"community.column_settings.media_only": "Média uniquement",
"community.column_settings.remote_only": "Distant seulement",
"compose_form.direct_message_warning": "Ce message sera uniquement envoyé aux personnes mentionnées. Cependant, ladministration de votre instance et des instances réceptrices pourront inspecter ce message.",
"compose.language.change": "Changer de langue",
"compose.language.search": "Rechercher des langues …",
"compose_form.direct_message_warning_learn_more": "En savoir plus",
"compose_form.encryption_warning": "Les messages sur Mastodon ne sont pas chiffrés de bout en bout. Ne partagez aucune information confidentielle sur Mastodon.",
"compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur « non listé ». Seuls les pouets avec une visibilité « publique » peuvent être recherchés par hashtag.",
"compose_form.lock_disclaimer": "Votre compte nest pas {locked}. Tout le monde peut vous suivre et voir vos messages privés.",
"compose_form.lock_disclaimer.lock": "verrouillé",
@ -146,10 +148,11 @@
"directory.recently_active": "Actif·ve·s récemment",
"embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.",
"embed.preview": "Il apparaîtra comme cela:",
"emoji_button.activity": "Activité",
"emoji_button.activity": "Activités",
"emoji_button.clear": "Effacer",
"emoji_button.custom": "Personnalisés",
"emoji_button.flags": "Drapeaux",
"emoji_button.food": "Nourriture & Boisson",
"emoji_button.food": "Nourriture et boisson",
"emoji_button.label": "Insérer un émoji",
"emoji_button.nature": "Nature",
"emoji_button.not_found": "Aucun émoji correspondant n'a été trouvé",
@ -159,7 +162,7 @@
"emoji_button.search": "Recherche...",
"emoji_button.search_results": "Résultats de la recherche",
"emoji_button.symbols": "Symboles",
"emoji_button.travel": "Lieux & Voyages",
"emoji_button.travel": "Voyage et lieux",
"empty_column.account_suspended": "Compte suspendu",
"empty_column.account_timeline": "Aucun message ici !",
"empty_column.account_unavailable": "Profil non disponible",
@ -231,7 +234,7 @@
"keyboard_shortcuts.column": "Se placer dans une colonne",
"keyboard_shortcuts.compose": "Se placer dans la zone de rédaction",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "Ouvrir la colonne des messages directs",
"keyboard_shortcuts.direct": "pour ouvrir la colonne des messages directs",
"keyboard_shortcuts.down": "Descendre dans la liste",
"keyboard_shortcuts.enter": "Ouvrir le message",
"keyboard_shortcuts.favourite": "Ajouter le message aux favoris",
@ -264,6 +267,8 @@
"lightbox.expand": "Agrandir la fenêtre de visualisation des images",
"lightbox.next": "Suivant",
"lightbox.previous": "Précédent",
"limited_account_hint.action": "Afficher le profil quand même",
"limited_account_hint.title": "Ce profil a été masqué par la modération de votre serveur.",
"lists.account.add": "Ajouter à la liste",
"lists.account.remove": "Supprimer de la liste",
"lists.delete": "Supprimer la liste",
@ -279,7 +284,7 @@
"lists.subheading": "Vos listes",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
"media_gallery.toggle_visible": "Intervertir la visibilité",
"media_gallery.toggle_visible": "{number, plural, one {Cacher limage} other {Cacher les images}}",
"missing_indicator.label": "Non trouvé",
"missing_indicator.sublabel": "Ressource introuvable",
"mute_modal.duration": "Durée",
@ -367,12 +372,12 @@
"poll_button.remove_poll": "Supprimer le sondage",
"privacy.change": "Ajuster la confidentialité du message",
"privacy.direct.long": "Visible uniquement par les comptes mentionnés",
"privacy.direct.short": "Direct",
"privacy.direct.short": "Personnes mentionnées uniquement",
"privacy.private.long": "Visible uniquement par vos abonné·e·s",
"privacy.private.short": "Abonné·e·s uniquement",
"privacy.public.long": "Visible par tou·te·s, affiché dans les fils publics",
"privacy.public.long": "Visible pour tous",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Visible par tou·te·s, mais pas dans les fils publics",
"privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalités de découverte",
"privacy.unlisted.short": "Non listé",
"refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…",
@ -515,7 +520,7 @@
"upload_error.poll": "Lenvoi de fichiers nest pas autorisé avec les sondages.",
"upload_form.audio_description": "Décrire pour les personnes ayant des difficultés daudition",
"upload_form.description": "Décrire pour les malvoyant·e·s",
"upload_form.description_missing": "No description added",
"upload_form.description_missing": "Description manquante",
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",
"upload_form.undo": "Supprimer",

View File

@ -1,54 +1,54 @@
{
"account.account_note_header": "Your note for @{name}",
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "Block @{name}",
"account.block_domain": "Hide everything from {domain}",
"account.blocked": "Blocked",
"account.browse_more_on_origin_server": "Browse more on the original profile",
"account.cancel_follow_request": "Cancel follow request",
"account.direct": "Direct message @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Edit profile",
"account.enable_notifications": "Notify me when @{name} posts",
"account.endorse": "Feature on profile",
"account.follow": "Follow",
"account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following": "Following",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.joined": "Joined {date}",
"account.account_note_header": "Nóta",
"account.add_or_remove_from_list": "Cuir Le nó Bain De na liostaí",
"account.badges.bot": "Bota",
"account.badges.group": "Grúpa",
"account.block": "Bac @{name}",
"account.block_domain": "Bac ainm fearainn {domain}",
"account.blocked": "Bactha",
"account.browse_more_on_origin_server": "Brabhsáil níos mó ar an phróifíl bhunaidh",
"account.cancel_follow_request": "Cealaigh iarratas leanúnaí",
"account.direct": "Seol teachtaireacht dhíreach chuig @{name}",
"account.disable_notifications": "Éirigh as ag cuir mé in eol nuair bpostálann @{name}",
"account.domain_blocked": "Ainm fearainn bactha",
"account.edit_profile": "Cuir an phróifíl in eagar",
"account.enable_notifications": "Cuir mé in eol nuair bpostálann @{name}",
"account.endorse": "Cuir ar an phróifíl mar ghné",
"account.follow": "Lean",
"account.followers": "Leantóirí",
"account.followers.empty": "Ní leanann éinne an t-úsáideoir seo fós.",
"account.followers_counter": "{count, plural, one {Leantóir amháin} other {{counter} Leantóir}}",
"account.following": "Ag leanúint",
"account.following_counter": "{count, plural, one {Ag leanúint cúntas amháin} other {Ag leanúint {counter} cúntas}}",
"account.follows.empty": "Ní leanann an t-úsáideoir seo duine ar bith fós.",
"account.follows_you": "Do do leanúint",
"account.hide_reblogs": "Folaigh athphostálacha ó @{name}",
"account.joined": "Ina bhall ó {date}",
"account.link_verified_on": "Ownership of this link was checked on {date}",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.report": "Report @{name}",
"account.requested": "Awaiting approval",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unhide {domain}",
"account.unblock_short": "Unblock",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.unmute_short": "Unmute",
"account_note.placeholder": "No comment provided",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"account.locked_info": "Tá an socrú príobháideachais don cuntas seo curtha go 'faoi ghlas'. Déanann an t-úinéir léirmheas ar cén daoine atá ceadaithe an cuntas leanúint.",
"account.media": "Ábhair",
"account.mention": "Luaigh @{name}",
"account.moved_to": "Tá {name} bogtha go:",
"account.mute": "Balbhaigh @{name}",
"account.mute_notifications": "Balbhaigh fógraí ó @{name}",
"account.muted": "Balbhaithe",
"account.posts": "Postálacha",
"account.posts_with_replies": "Postálacha agus freagraí",
"account.report": "Tuairiscigh @{name}",
"account.requested": "Ag fanacht le ceadú. Cliceáil chun an iarratas leanúnaí a chealú",
"account.share": "Roinn próifíl @{name}",
"account.show_reblogs": "Taispeáin athphostálacha ó @{name}",
"account.statuses_counter": "{count, plural, one {Postáil amháin} other {{counter} Postáil}}",
"account.unblock": "Bain bac de @{name}",
"account.unblock_domain": "Bain bac den ainm fearainn {domain}",
"account.unblock_short": "Bain bac de",
"account.unendorse": "Ná chuir ar an phróifíl mar ghné",
"account.unfollow": "Ná lean a thuilleadh",
"account.unmute": "Díbhalbhaigh @{name}",
"account.unmute_notifications": "Díbhalbhaigh fógraí ó @{name}",
"account.unmute_short": "Díbhalbhaigh",
"account_note.placeholder": "Cliceáil chun nóta a chuir leis",
"admin.dashboard.daily_retention": "Ráta coinneála an úsáideora de réir an lae tar éis clárú",
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
"admin.dashboard.retention.average": "Average",
"admin.dashboard.retention.cohort": "Sign-up month",
@ -56,48 +56,50 @@
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"announcement.announcement": "Announcement",
"alert.unexpected.title": "Hiúps!",
"announcement.announcement": "Fógra",
"attachments_list.unprocessed": "(unprocessed)",
"autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.retry": "Bain triail as arís",
"bundle_column_error.title": "Network error",
"bundle_modal_error.close": "Close",
"bundle_modal_error.close": "Dún",
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Try again",
"column.blocks": "Blocked users",
"column.bookmarks": "Bookmarks",
"bundle_modal_error.retry": "Bain triail as arís",
"column.blocks": "Cuntais choiscthe",
"column.bookmarks": "Leabharmharcanna",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.directory": "Browse profiles",
"column.domain_blocks": "Hidden domains",
"column.domain_blocks": "Blocked domains",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.home": "Baile",
"column.lists": "Liostaí",
"column.mutes": "Úsáideoirí balbhaithe",
"column.notifications": "Notifications",
"column.pins": "Pinned toot",
"column.pins": "Pinned post",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_back_button.label": "Siar",
"column_header.hide_settings": "Hide settings",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin",
"column_header.pin": "Greamaigh",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"column_header.unpin": "Díghreamaigh",
"column_subheading.settings": "Socruithe",
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
"compose_form.placeholder": "Cad atá ag tarlú?",
"compose_form.poll.add_option": "Add a choice",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
@ -121,20 +123,20 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.discard_edit_media.confirm": "Faigh réidh de",
"confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.logout.confirm": "Log out",
"confirmations.domain_block.message": "An bhfuil tú iontach cinnte gur mhaith leat bac an t-ainm fearainn {domain} in iomlán? I bhformhór na gcásanna, is leor agus is fearr cúpla baic a cur i bhfeidhm nó cúpla úsáideoirí a balbhú. Ní fheicfidh tú ábhair ón t-ainm fearainn sin in amlíne ar bith, nó i d'fhógraí. Scaoilfear do leantóirí ón ainm fearainn sin.",
"confirmations.logout.confirm": "Logáil amach",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.confirm": "Balbhaigh",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
"confirmations.mute.message": "An bhfuil tú cinnte gur mhaith leat {name} a bhalbhú?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"confirmations.reply.confirm": "Reply",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.confirm": "Ná lean",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",
@ -146,40 +148,41 @@
"directory.recently_active": "Recently active",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.activity": "Gníomhaíocht",
"emoji_button.clear": "Clear",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.food": "Bia ⁊ Ól",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.nature": "Nádur",
"emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
"emoji_button.people": "Daoine",
"emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
"emoji_button.search": "Cuardaigh...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"emoji_button.travel": "Taisteal ⁊ Áiteanna",
"empty_column.account_suspended": "Account suspended",
"empty_column.account_timeline": "No toots here!",
"empty_column.account_timeline": "No posts found",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
"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.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
"empty_column.home.suggestions": "See some suggestions",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
"empty_column.mutes": "Níl aon úsáideoir balbhaithe agat fós.",
"empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
@ -189,15 +192,15 @@
"errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Search results",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"follow_recommendations.done": "Done",
"explore.title": "Féach thart",
"explore.trending_links": "Nuacht",
"explore.trending_statuses": "Postálacha",
"explore.trending_tags": "Haischlibeanna",
"follow_recommendations.done": "Déanta",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"follow_request.authorize": "Ceadaigh",
"follow_request.reject": "Diúltaigh",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"generic.saved": "Saved",
"getting_started.developers": "Developers",
@ -243,11 +246,11 @@
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "to open local timeline",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.pinned": "to open pinned posts list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.requests": "to open follow requests list",
@ -256,7 +259,7 @@
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.toot": "to start a brand new post",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
@ -264,11 +267,13 @@
"lightbox.expand": "Expand image view box",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
"lists.edit.submit": "Change title",
"lists.edit": "Cuir an liosta in eagar",
"lists.edit.submit": "Athraigh teideal",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.replies_policy.followed": "Any followed user",
@ -279,46 +284,46 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
"media_gallery.toggle_visible": "Hide media",
"media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite",
"mute_modal.duration": "Tréimhse",
"mute_modal.hide_notifications": "Cuir póstalacha ón t-úsáideoir seo i bhfolach?",
"mute_modal.indefinite": "Gan téarma",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.edit_profile": "Cuir an phróifíl in eagar",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.filters": "Focail bhalbhaithe",
"navigation_bar.follow_requests": "Follow requests",
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.follows_and_followers": "Ag leanúint agus do do leanúint",
"navigation_bar.info": "About this server",
"navigation_bar.keyboard_shortcuts": "Hotkeys",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.keyboard_shortcuts": "Eochracha Aicearra",
"navigation_bar.lists": "Liostaí",
"navigation_bar.logout": "Logáil Amach",
"navigation_bar.mutes": "Úsáideoirí balbhaithe",
"navigation_bar.personal": "Pearsanta",
"navigation_bar.pins": "Pinned posts",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.follow_request": "{name} has requested to follow you",
"notification.follow": "Lean {name} thú",
"notification.follow_request": "D'iarr {name} ort do chuntas a leanúint",
"notification.mention": "{name} mentioned you",
"notification.own_poll": "Your poll has ended",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notification.status": "{name} just posted",
"notification.update": "{name} edited a post",
"notification.update": "Chuir {name} postáil in eagar",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
@ -327,18 +332,18 @@
"notifications.column_settings.filter_bar.advanced": "Display all categories",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.follow": "Leantóirí nua:",
"notifications.column_settings.follow_request": "Iarratais leanúnaí nua:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
"notifications.column_settings.status": "New toots:",
"notifications.column_settings.status": "New posts:",
"notifications.column_settings.unread_notifications.category": "Unread notifications",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.update": "Edits:",
"notifications.column_settings.update": "Eagair:",
"notifications.filter.all": "All",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favourites",
@ -366,16 +371,16 @@
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.long": "Visible for mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only",
"privacy.private.long": "Sofheicthe do Leantóirí amháin",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Post to public timelines",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.public.long": "Visible for all",
"privacy.public.short": "Poiblí",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Unlisted",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.label": "Ag lódáil…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
@ -387,38 +392,38 @@
"relative_time.just_now": "now",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "today",
"relative_time.today": "inniu",
"reply_indicator.cancel": "Cancel",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Other",
"report.categories.spam": "Spam",
"report.categories.spam": "Turscar",
"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_status": "post",
"report.close": "Done",
"report.close": "Déanta",
"report.comment.title": "Is there anything else you think we should know?",
"report.forward": "Forward to {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"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": "Balbhaigh",
"report.mute_explanation": "Ní fheicfidh tú a postálacha. Is féidir an té seo tú a leanúint agus do phostálacha a fheiceáil, agus ní fhios go bhfuil iad balbhaithe.",
"report.next": "Next",
"report.placeholder": "Additional comments",
"report.reasons.dislike": "I don't like it",
"report.placeholder": "Type or paste additional comments",
"report.reasons.dislike": "Ní maith liom é",
"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 repetetive replies",
"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.submit": "Submit",
"report.submit": "Submit report",
"report.target": "Report {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}:",
@ -426,19 +431,19 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"search.placeholder": "Search",
"search.placeholder": "Cuardaigh",
"search_popout.search_format": "Advanced search format",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.hashtag": "haischlib",
"search_popout.tips.status": "status",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.accounts": "Daoine",
"search_results.all": "All",
"search_results.hashtags": "Hashtags",
"search_results.hashtags": "Haischlibeanna",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.statuses": "Toots",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
"search_results.statuses": "Postálacha",
"search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
@ -447,31 +452,31 @@
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
"status.delete": "Scrios",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.edit": "Cuir in eagar",
"status.edited": "Curtha in eagar in {date}",
"status.edited_x_times": "Curtha in eagar {count, plural, one {{count} uair amháin} two {{count} uair} few {{count} uair} many {{count} uair} other {{count} uair}}",
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.history.edited": "Curtha in eagar ag {name} in {date}",
"status.load_more": "Load more",
"status.media_hidden": "Media hidden",
"status.mention": "Mention @{name}",
"status.more": "More",
"status.mute": "Mute @{name}",
"status.mute_conversation": "Mute conversation",
"status.more": "Tuilleadh",
"status.mute": "Balbhaigh @{name}",
"status.mute_conversation": "Balbhaigh comhrá",
"status.open": "Expand this status",
"status.pin": "Pin on profile",
"status.pinned": "Pinned toot",
"status.pinned": "Pinned post",
"status.read_more": "Read more",
"status.reblog": "Boost",
"status.reblog_private": "Boost with original visibility",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
"status.reply": "Reply",
@ -485,24 +490,24 @@
"status.show_more_all": "Show more for all",
"status.show_thread": "Show thread",
"status.uncached_media_warning": "Not available",
"status.unmute_conversation": "Unmute conversation",
"status.unmute_conversation": "Díbhalbhaigh comhrá",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.home": "Home",
"tabs_bar.home": "Baile",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
"tabs_bar.search": "Cuardaigh",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
"timeline_hint.resources.followers": "Followers",
"timeline_hint.resources.followers": "Leantóirí",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Older toots",
"timeline_hint.resources.statuses": "Older posts",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.trending_now": "Trending now",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
@ -510,13 +515,13 @@
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media ({formats})",
"upload_button.label": "Add images, a video or an audio file",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.edit": "Cuir in eagar",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
@ -526,19 +531,19 @@
"upload_modal.choose_image": "Choose image",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media",
"upload_modal.edit_media": "Cuir gné in eagar",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.preparing_ocr": "Preparing OCR…",
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "Uploading...",
"upload_progress.label": "Uploading",
"video.close": "Close video",
"video.download": "Download file",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",
"video.hide": "Hide video",
"video.mute": "Mute sound",
"video.pause": "Pause",
"video.play": "Play",
"video.unmute": "Unmute sound"
"video.mute": "Ciúnaigh fuaim",
"video.pause": "Cuir ar sos",
"video.play": "Cuir ar siúl",
"video.unmute": "Díchiúnaigh fuaim"
}

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