Compare commits

...

144 Commits

Author SHA1 Message Date
ida schmidt 97b8b23158 Merge tag 'v4.0.2' of https://github.com/mastodon/mastodon into HEAD 2022-11-15 13:43:11 -07:00
Eugen Rochko 03b0f3ac83
Bump version to 4.0.2 (#20725) 2022-11-15 03:57:18 +01:00
Eugen Rochko 43b0b2f3f4
Fix wrong directive `unsafe-wasm-eval` to `wasm-unsafe-eval` (#20729) 2022-11-15 03:39:06 +01:00
prplecake b46b7c3d5e
Use "unsafe-wasm-eval" instead of "unsafe-eval" in script-src CSP (#20606)
* Add "unsafe-eval" to script-src CSP

* Use 'unsafe-wasm-eval' instead of 'unsafe-eval'
2022-11-15 03:22:38 +01:00
dependabot[bot] b59683c156
Bump nokogiri from 1.13.8 to 1.13.9 (#20041)
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.8 to 1.13.9.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.8...v1.13.9)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-15 03:19:56 +01:00
Eugen Rochko 17bd9a87b9
Fix wrong color on mentions hidden behind content warning in web UI (#20724) 2022-11-15 02:58:00 +01:00
Claire 8c3c6dcae9
Fix filters from other users being used in the streaming service (#20719) 2022-11-15 02:09:58 +01:00
ida schmidt 6f0c1d8c28 Merge tag 'v4.0.0' of https://github.com/mastodon/mastodon into HEAD 2022-11-14 14:54:23 -07:00
Eugen Rochko 4415dd6036
Bump version to 4.0.1 (#20696) 2022-11-14 22:21:14 +01:00
Claire ccbca50a25
Fix nodes order being sometimes mangled when rewriting emoji (#20677)
* Fix front-end emoji tests

* Fix nodes order being sometimes mangled when rewriting emoji
2022-11-14 22:14:55 +01:00
Eugen Rochko fb389bd73c
Bump version to 4.0.0 (#20636) 2022-11-14 20:27:12 +01:00
Eugen Rochko 21fd25a269
Fix rate limiting for paths with formats (#20675) 2022-11-14 20:26:31 +01:00
Claire 71c92d3f56
Fix emoji substitution not applying only to text nodes in backend code (#20641)
Signed-off-by: Claire <claire.github-309c@sitedethib.com>

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-11-14 20:26:21 +01:00
Claire 625e086996
Fix emoji substitution not applying only to text nodes in Web UI (#20640)
Signed-off-by: Claire <claire.github-309c@sitedethib.com>

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-11-14 20:26:03 +01:00
Claire 2d54986a03
Fix media metadata being only editable once (#20665) 2022-11-14 17:52:31 +01:00
Eugen Rochko 75299a042c
Bump version to 4.0.0rc4 (#20634) 2022-11-14 08:50:14 +01:00
trwnh b59ce0a60f
Move V2 Filter methods under /api/v2 prefix (#20622)
* Move V2 Filter methods under /api/v2 prefix

* move over the tests too
2022-11-14 08:34:07 +01:00
Claire 457c37e47a
Fix index name in fix-duplicates task (#20632) 2022-11-14 08:33:48 +01:00
Eugen Rochko 1e83092e47
Update AUTHORS.md (#20630) 2022-11-14 08:33:24 +01:00
Eugen Rochko 552d69ad96
Fix error when invalid domain name is submitted (#19474)
Fix #19175
2022-11-14 08:07:14 +01:00
Eugen Rochko 523e106cbf
Fix style of username in navigation bar above compose form in web UI (#20628)
Regression from #20540
2022-11-14 08:06:17 +01:00
Eugen Rochko b31afc6294
Fix error when passing unknown filter param in REST API (#20626)
Fix #19156
2022-11-14 08:06:06 +01:00
Eugen Rochko 5c826c408d
Fix image type not being set after conversion for convertible image types (#20624) 2022-11-14 07:13:14 +01:00
Eugen Rochko 167d86d21d
Fix `role_ids` not accepting arrays in admin API (#20625)
Fix #19157
2022-11-14 06:56:15 +01:00
Eugen Rochko 2e2ba39abf
Fix rules with same priority being sorted non-deterministically (#20623) 2022-11-14 06:28:19 +01:00
Eugen Rochko 6da9df774e
Fix dropdown menu on profiles not being accessible on narrow screens in web UI (#20620) 2022-11-14 06:05:10 +01:00
Hampton Lintorn-Catlin 147d8bd8fc
Support UTF-8 Characters in Domains During CSV Import (#20592)
* Support UTF-8 Characters in Domains During Import

* Update Changelong
2022-11-14 05:52:13 +01:00
Matt Corallo 9d039209cc
Add `Cache-Control` header to openstack-stored files (#20610)
When storing files in S3, paperclip is configured with a Cache-Control header
indicating the file is immutable, however no such header was added when using
OpenStack storage.

Luckily Paperclip's fog integration makes this trivial, with a simple
`fog_file` `Cache-Control` default doing the trick.
2022-11-14 05:26:49 +01:00
Eugen Rochko d0b7bd4250
Fix wrong cut-off point for "Read more" in web UI (#20599) 2022-11-14 00:43:24 +01:00
Eugen Rochko 24b2c60beb
Fix icons having an image role (#20600) 2022-11-14 00:38:56 +01:00
Erik Sundell 87fbd08f74
helm: Add helm chart tests (#20394)
* helm: Fix consistent list indentation

* helm: Add helm lint and helm template tests

* helm: Add helm template --validate test

* helm: Add helm install test
2022-11-13 22:22:07 +01:00
trwnh 07229089a6
Change in-app links to keep you in-app (#20540)
* Change in-app links to keep you in-app

* refactor Permalink into Link

* rewrite link hrefs in status content

* please linter

* please linter again
2022-11-13 21:10:20 +01:00
Cees-Jan Kiewiet ad66bbed62
Add the option to configure external postgresql port (#20370)
While the normal assumption of port `5432` for a postgresql server is pretty reliable I found that DigitalOcean puts them on a somewhat random port. This adds the ability to specify the port in the helm chart.
2022-11-13 21:06:03 +01:00
Alex Nordlund 82c663300a
Helm: support statsd publishing (#20455)
* Allow statsd publishing from Helm

* Apply suggestions from code review

Co-authored-by: Erik Sundell <erik.i.sundell@gmail.com>

Co-authored-by: Erik Sundell <erik.i.sundell@gmail.com>
2022-11-13 21:05:30 +01:00
Samuel Kaiser e62b514e95
Stick batch table toolbar to the top (#20442)
Fixes #20441
2022-11-13 21:02:28 +01:00
Emily Strickland c2231539c7
Test blank account field verifiability (#20458)
* Test blank account field verifiability

This change tests the need for #20428, which ensures that we guard against a situation in which `at_xpath` returns `nil`.

* Test verifiability of blank fields for remote account profiles

This adds a counterpart test for remote account profiles' fields' verifiability when those fields are blank. I previously added the same test for local accounts.
2022-11-13 21:02:09 +01:00
Claire bd806a3090
Update fix-duplicates (#20502)
Fixes #19133
2022-11-13 21:01:38 +01:00
Nicholas La Roux a6186da983
Clean up GitHub sourced gem entry (#20542) 2022-11-13 21:00:38 +01:00
Claire cd5e98dbdb
Fix public/local timeline posts not being properly filtered (#20567)
* Fix streaming server using wrong property name for matching filters

Late in the PR, the `filter_results` property has been renamed to `filtered`,
but the change has not been reflected in the streaming server code.

* Fix filter_action attribute being an integer instead of a string
2022-11-13 20:59:49 +01:00
Claire 3d3bd344cb
Fix announcement dates not being validated client-side (#20577) 2022-11-13 20:58:54 +01:00
Arthur Isac 1af482659d
Copied Spaces support from packer .rake (#20573) 2022-11-13 20:58:40 +01:00
Eugen Rochko cf36ee99bb
New Crowdin updates (#20476)
* New translations en.json (Galician)

* New translations en.yml (Galician)

* New translations en.json (Japanese)

* New translations en.yml (Czech)

* New translations en.json (Esperanto)

* New translations en.yml (Norwegian)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Latvian)

* New translations en.json (Esperanto)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Esperanto)

* New translations activerecord.en.yml (Russian)

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

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations en.yml (Norwegian)

* New translations en.json (Welsh)

* New translations en.yml (Welsh)

* New translations en.json (Malayalam)

* New translations simple_form.en.yml (Thai)

* New translations simple_form.en.yml (Welsh)

* New translations doorkeeper.en.yml (Welsh)

* New translations activerecord.en.yml (Welsh)

* New translations devise.en.yml (Thai)

* New translations devise.en.yml (Welsh)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations en.yml (German)

* New translations en.json (German)

* New translations en.yml (Irish)

* New translations simple_form.en.yml (German)

* New translations simple_form.en.yml (Thai)

* New translations en.yml (Thai)

* New translations en.json (Esperanto)

* New translations en.yml (Irish)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.yml (Polish)

* New translations en.json (Slovak)

* New translations en.yml (Slovak)

* New translations en.json (Turkish)

* New translations en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Thai)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Polish)

* New translations en.json (Slovak)

* New translations en.yml (Slovak)

* New translations simple_form.en.yml (Slovak)

* New translations en.json (Thai)

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

* New translations doorkeeper.en.yml (Esperanto)

* New translations en.json (Norwegian)

* New translations en.json (Finnish)

* New translations en.json (Norwegian)

* New translations simple_form.en.yml (Norwegian)

* New translations en.yml (Thai)

* New translations en.json (Norwegian Nynorsk)

* New translations en.yml (Norwegian Nynorsk)

* New translations simple_form.en.yml (Arabic)

* New translations en.json (German)

* New translations en.json (Dutch)

* New translations en.yml (Greek)

* New translations en.yml (German)

* New translations en.yml (Hungarian)

* New translations en.yml (Hebrew)

* New translations en.yml (Finnish)

* New translations en.yml (Basque)

* New translations en.yml (Frisian)

* New translations en.yml (Danish)

* New translations en.yml (Catalan)

* New translations en.yml (Bulgarian)

* New translations en.yml (Arabic)

* New translations en.yml (Afrikaans)

* New translations en.yml (French)

* New translations en.yml (Romanian)

* New translations en.yml (Spanish)

* New translations en.yml (Czech)

* New translations en.yml (Armenian)

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

* New translations en.yml (Vietnamese)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Swedish)

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

* New translations en.yml (Slovenian)

* New translations en.yml (Thai)

* New translations en.yml (Galician)

* New translations en.yml (Russian)

* New translations en.yml (Icelandic)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Indonesian)

* New translations en.yml (Persian)

* New translations en.yml (Tamil)

* New translations en.yml (Slovak)

* New translations en.yml (Japanese)

* New translations en.yml (Portuguese)

* New translations en.yml (Polish)

* New translations en.yml (Punjabi)

* New translations en.yml (Norwegian)

* New translations en.yml (Dutch)

* New translations en.yml (Macedonian)

* New translations en.yml (Lithuanian)

* New translations en.yml (Korean)

* New translations en.yml (Georgian)

* New translations en.yml (Italian)

* New translations en.yml (Ukrainian)

* New translations en.yml (Albanian)

* New translations en.yml (Turkish)

* New translations en.yml (Ido)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Spanish, Mexico)

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

* New translations en.yml (Kannada)

* New translations en.yml (Scottish Gaelic)

* New translations en.yml (Asturian)

* New translations en.yml (Occitan)

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

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

* New translations en.yml (Corsican)

* New translations en.yml (Sinhala)

* New translations en.yml (Sardinian)

* New translations en.yml (Sanskrit)

* New translations en.yml (Kabyle)

* New translations en.yml (Taigi)

* New translations en.yml (Silesian)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Burmese)

* New translations en.yml (Cornish)

* New translations en.yml (Breton)

* 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 (Malayalam)

* New translations en.yml (Telugu)

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

* 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 (Igbo)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Afrikaans)

* New translations en.yml (Korean)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Thai)

* New translations en.yml (German)

* New translations en.yml (Czech)

* New translations en.yml (Catalan)

* New translations en.yml (Greek)

* New translations en.yml (Italian)

* New translations en.yml (Slovenian)

* New translations en.yml (Swedish)

* New translations simple_form.en.yml (Thai)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations en.yml (Basque)

* New translations en.yml (Norwegian)

* New translations en.yml (Portuguese)

* New translations en.yml (Icelandic)

* New translations en.json (Spanish, Argentina)

* New translations en.yml (Spanish, Argentina)

* New translations en.json (Albanian)

* New translations en.yml (Albanian)

* New translations en.yml (French)

* New translations en.yml (Hebrew)

* New translations en.yml (Italian)

* New translations en.yml (Japanese)

* New translations en.yml (Norwegian)

* New translations en.yml (Polish)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Esperanto)

* New translations en.yml (German)

* New translations en.json (German)

* New translations en.yml (Hebrew)

* New translations en.yml (Norwegian)

* New translations en.yml (German)

* New translations en.json (Spanish)

* New translations en.yml (Finnish)

* New translations en.json (Norwegian)

* New translations en.yml (Latvian)

* New translations en.yml (Esperanto)

* New translations en.json (German)

* New translations en.json (Esperanto)

* New translations en.yml (Dutch)

* New translations en.yml (Norwegian)

* New translations en.yml (Esperanto)

* New translations en.json (Catalan)

* New translations en.yml (Catalan)

* New translations doorkeeper.en.yml (Catalan)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-11-14 01:14:31 +09:00
David Hewitt 290d78cea4
Allow unsetting x-amz-acl S3 Permission headers (#20510)
Some "S3 Compatible" storage providers (Cloudflare R2 is one such example) don't support setting ACLs on individual uploads with the `x-amz-acl` header, and instead just have a visibility for the whole bucket. To support uploads to such providers without getting unsupported errors back, lets use a black `S3_PERMISSION` env var to indicate that these headers shouldn't be sent.

This is tested as working with Cloudflare R2.
2022-11-13 06:57:10 +01:00
Claire cf77d938f8
Fix saving server registration settings redirecting to branding settings (#20505) 2022-11-13 03:33:31 +01:00
helloworldstack e9e4938bc9
Fix casing and spacing of words (#20504) 2022-11-13 03:33:20 +01:00
Eugen Rochko d26c1cb2fe
Fix missing "not recommended" label on "Allow trends without review" (#20480) 2022-11-12 10:54:51 +01:00
Eugen Rochko e1af21cfd0
New Crowdin updates (#20258)
* New translations en.json (Asturian)

* New translations en.yml (Telugu)

* New translations en.yml (Tamil)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Spanish, Argentina)

* New translations en.yml (Spanish, Argentina)

* New translations en.json (Spanish, Mexico)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Bengali)

* New translations en.yml (Marathi)

* New translations en.yml (Croatian)

* New translations en.yml (Kazakh)

* New translations en.yml (Estonian)

* New translations en.json (Latvian)

* New translations en.yml (Hindi)

* New translations en.yml (Malay)

* New translations en.yml (Asturian)

* New translations en.json (Occitan)

* New translations simple_form.en.yml (Basque)

* 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 (Catalan)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (German)

* New translations simple_form.en.yml (Greek)

* New translations simple_form.en.yml (Frisian)

* New translations simple_form.en.yml (Finnish)

* New translations simple_form.en.yml (Romanian)

* New translations simple_form.en.yml (Irish)

* 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 (French)

* New translations simple_form.en.yml (Vietnamese)

* New translations en.yml (Occitan)

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

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

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

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

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

* New translations en.yml (Corsican)

* New translations simple_form.en.yml (Norwegian)

* New translations simple_form.en.yml (Polish)

* New translations simple_form.en.yml (Sinhala)

* New translations en.yml (Kabyle)

* New translations en.yml (Sardinian)

* New translations en.yml (Taigi)

* New translations en.yml (Silesian)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Sanskrit)

* New translations simple_form.en.yml (Tatar)

* New translations simple_form.en.yml (Welsh)

* New translations simple_form.en.yml (Esperanto)

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

* New translations simple_form.en.yml (Malayalam)

* New translations simple_form.en.yml (Kazakh)

* New translations simple_form.en.yml (Breton)

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

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

* New translations simple_form.en.yml (Asturian)

* New translations simple_form.en.yml (Occitan)

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

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

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

* New translations simple_form.en.yml (Estonian)

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

* New translations simple_form.en.yml (Portuguese)

* New translations simple_form.en.yml (Galician)

* 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 (Turkish)

* New translations simple_form.en.yml (Ukrainian)

* New translations simple_form.en.yml (Icelandic)

* New translations simple_form.en.yml (Croatian)

* New translations activerecord.en.yml (Icelandic)

* 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 (Corsican)

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

* New translations activerecord.en.yml (Slovak)

* New translations activerecord.en.yml (Dutch)

* New translations activerecord.en.yml (Norwegian)

* New translations activerecord.en.yml (Polish)

* New translations activerecord.en.yml (Portuguese)

* New translations activerecord.en.yml (Russian)

* New translations activerecord.en.yml (Japanese)

* New translations activerecord.en.yml (Albanian)

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

* New translations activerecord.en.yml (Swedish)

* New translations activerecord.en.yml (Turkish)

* New translations activerecord.en.yml (Ukrainian)

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

* New translations activerecord.en.yml (Vietnamese)

* New translations activerecord.en.yml (Galician)

* New translations activerecord.en.yml (Georgian)

* New translations activerecord.en.yml (Italian)

* New translations activerecord.en.yml (Catalan)

* New translations activerecord.en.yml (Czech)

* New translations activerecord.en.yml (Romanian)

* New translations activerecord.en.yml (French)

* New translations activerecord.en.yml (Spanish)

* New translations activerecord.en.yml (Afrikaans)

* New translations activerecord.en.yml (Arabic)

* New translations activerecord.en.yml (Bulgarian)

* New translations activerecord.en.yml (Armenian)

* New translations activerecord.en.yml (German)

* New translations activerecord.en.yml (Greek)

* New translations activerecord.en.yml (Frisian)

* New translations activerecord.en.yml (Basque)

* New translations activerecord.en.yml (Finnish)

* New translations activerecord.en.yml (Irish)

* New translations activerecord.en.yml (Hebrew)

* New translations activerecord.en.yml (Hungarian)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Kabyle)

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

* New translations simple_form.en.yml (Sardinian)

* New translations activerecord.en.yml (Indonesian)

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

* New translations activerecord.en.yml (Breton)

* New translations activerecord.en.yml (Persian)

* New translations activerecord.en.yml (Asturian)

* New translations activerecord.en.yml (Occitan)

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

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

* New translations activerecord.en.yml (Tatar)

* New translations activerecord.en.yml (Corsican)

* New translations en.yml (Burmese)

* New translations en.yml (Igbo)

* New translations activerecord.en.yml (Malayalam)

* New translations activerecord.en.yml (Sinhala)

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

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

* New translations activerecord.en.yml (Tamil)

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

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

* New translations activerecord.en.yml (Bengali)

* New translations activerecord.en.yml (Marathi)

* New translations activerecord.en.yml (Thai)

* New translations activerecord.en.yml (Croatian)

* New translations activerecord.en.yml (Kazakh)

* New translations activerecord.en.yml (Estonian)

* New translations activerecord.en.yml (Latvian)

* New translations activerecord.en.yml (Hindi)

* New translations activerecord.en.yml (Welsh)

* New translations activerecord.en.yml (Sardinian)

* New translations activerecord.en.yml (Kabyle)

* New translations activerecord.en.yml (Ido)

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

* New translations en.json (Afrikaans)

* New translations en.yml (Bulgarian)

* New translations en.json (Hungarian)

* New translations en.json (Korean)

* New translations en.yml (Korean)

* New translations en.yml (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Chinese Simplified)

* New translations en.json (Vietnamese)

* New translations en.json (Icelandic)

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

* New translations simple_form.en.yml (Bulgarian)

* New translations doorkeeper.en.yml (Korean)

* New translations activerecord.en.yml (Bulgarian)

* New translations devise.en.yml (Bulgarian)

* New translations en.yml (German)

* New translations en.json (German)

* New translations en.json (Romanian)

* New translations en.json (Catalan)

* New translations en.json (Korean)

* New translations en.yml (Korean)

* New translations en.json (Norwegian)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Latvian)

* New translations devise.en.yml (Bulgarian)

* New translations en.json (Hebrew)

* New translations en.json (Arabic)

* New translations en.json (Catalan)

* New translations en.yml (Korean)

* New translations en.json (Turkish)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.json (Scottish Gaelic)

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

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

* New translations devise.en.yml (Bulgarian)

* New translations en.json (Thai)

* New translations en.json (Bulgarian)

* New translations en.yml (Ukrainian)

* New translations en.json (Indonesian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.json (Scottish Gaelic)

* New translations en.json (Asturian)

* New translations en.json (German)

* New translations en.json (Portuguese)

* New translations en.json (Spanish)

* New translations en.json (Danish)

* New translations en.json (Ukrainian)

* New translations en.json (Tamil)

* New translations en.json (Chinese Traditional)

* New translations simple_form.en.yml (Occitan)

* New translations doorkeeper.en.yml (Occitan)

* New translations en.json (Norwegian)

* New translations en.json (Arabic)

* New translations en.yml (Arabic)

* New translations en.json (Korean)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Arabic)

* New translations en.json (Arabic)

* New translations en.json (Basque)

* New translations en.yml (Basque)

* New translations en.json (Norwegian)

* New translations en.yml (Norwegian)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Basque)

* New translations doorkeeper.en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations en.json (Norwegian)

* New translations en.yml (Norwegian)

* New translations en.json (Latvian)

* New translations simple_form.en.yml (Occitan)

* New translations devise.en.yml (Esperanto)

* New translations en.yml (Czech)

* New translations en.json (German)

* New translations en.json (Czech)

* New translations en.json (French)

* New translations en.yml (Hebrew)

* New translations en.json (Norwegian)

* New translations en.json (Irish)

* New translations en.yml (Dutch)

* New translations en.json (Ukrainian)

* New translations en.json (Romanian)

* New translations en.json (Russian)

* New translations en.json (Korean)

* New translations en.yml (Korean)

* New translations doorkeeper.en.yml (Korean)

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

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-11-12 15:56:25 +09:00
Alex Nordlund 628b3fa449
Uppercase chart readme.md to help tools discover it (#20438) 2022-11-12 05:11:07 +01:00
Bearice Ren 28cda42af5
fixes ArgumentError when proxy is used (#20420)
* fixes ArgumentError when proxy is used

* Update app/lib/request.rb

Co-authored-by: Claire <claire.github-309c@sitedethib.com>

Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2022-11-11 21:31:03 +01:00
Jeong Arm c4c1bee880
Fix trendable status without review (#20214) 2022-11-11 21:24:10 +01:00
Claire 93a6ebc83d
Fix WebUI crash when listing server blocks and rationale is not available (#20408)
Regression from #20391

Fixes #20405
2022-11-11 21:23:03 +01:00
Emily Strickland 96f51e593f
Guard against error extracting `body` from URL (#20428)
If `Nokogiri::HTML(value).at_xpath('//body')` fails to find the `body` element, it will return `nil`. We can guard against that with an early return. Avoids calling `children` on `Nilclass` in those cases.
2022-11-11 21:22:28 +01:00
Claire 31005aad12
Add the ability to edit media attachment metadata for any unattached media (#20402) 2022-11-11 21:22:17 +01:00
Cutls 553b169d48
Do not show drag&drop dialog when not logined (#20400)
* Cannot upload until login

* and do not fire upload

* change username props to context
2022-11-11 21:19:48 +01:00
Claire 5e796dc6f8
Remove “No description added” media warning in edit mode (#20393)
Editing media metadata is not currently possible in edit mode, the button would
open the modal but saving the changes would error out.
2022-11-11 09:20:24 +01:00
Eugen Rochko 9bc0a6c861
Fix metadata scrubbing removing color profile from images (#20389) 2022-11-11 09:20:10 +01:00
Eugen Rochko 53028af10e
Bump version to 4.0.0rc3 (#20378) 2022-11-11 08:39:38 +01:00
Eugen Rochko 6774c339b2
Fix domain blocks on about page not working well on small screens in web UI (#20391) 2022-11-11 08:26:58 +01:00
Pierre Bourdon 36bc90e8aa
blurhash_transcoder: prevent out-of-bound reads with <8bpp images (#20388)
The Blurhash library used by Mastodon requires an input encoded as 24
bits raw RGB data. The conversion to raw RGB using Imagemagick did not
previously specify the desired bit depth. In some situations, this leads
Imagemagick to output in a pixel format using less bpp than expected.
This then manifested as segfaults of the Sidekiq process due to
out-of-bounds read, or potentially a (highly noisy) memory infoleak.

Fixes #19235.
2022-11-11 07:45:16 +01:00
Eugen Rochko 73fecc3358
Change e-mail in SECURITY.md (#20384) 2022-11-11 05:26:43 +01:00
Connor Shea cf4992c918
Only remove padding when listing applications (#20382)
This prevents styling issues on the Authorization page.
2022-11-11 02:55:20 +01:00
F 97f657f818
Note that CircleCI auth may be required to run PR pipelines (#20371)
See #20284
2022-11-11 02:54:02 +01:00
Yamagishi Kazutoshi 53d26cfc1c
Delay workbox import (#20376) 2022-11-11 01:33:59 +01:00
Yamagishi Kazutoshi 19a8563905
Fix `ENV` (#20377) 2022-11-11 01:33:32 +01:00
F d4f973227c
Test the native_locale_name of a non-standard locale (#20284)
`:en` is English for both `standard_locale_name` and
`native_locale_name`, and so makes for a poor test candidate for
differentiating between them.
2022-11-11 00:06:18 +01:00
Erik Sundell 302a58c22b
helm: fix consistent indentation, chomping, and use of with (#19918) 2022-11-10 23:24:39 +01:00
Claire 86f6631d28
Remove dead code and refactor status threading code (#20357)
* Remove dead code

* Remove unneeded/broken parameters and refactor descendant computation
2022-11-10 22:30:00 +01:00
F a02a453a40
Add Scots to the supported locales (#20283)
Fixes #20249
2022-11-10 21:11:38 +01:00
Eugen Rochko c6c7c6223d
Change verification to only work for https links (#20304)
Fix #20242
2022-11-10 21:09:03 +01:00
F 9feba112a7
Make enable_starttls configurable by envvars (#20321)
ENABLE_STARTTLS is designed to replace ENABLE_STARTTLS_AUTO by accepting
three values: 'auto' (the default), 'always', and 'never'. If
ENABLE_STARTTLS isn't provided, we fall back to ENABLE_STARTTLS_AUTO. In
this way, this change should be fully backwards compatible.

Resolves #20311
2022-11-10 21:06:21 +01:00
Claire 1615c3eb6e
Change logged out /api/v1/statuses/:id/context logged out limits (#20355) 2022-11-10 21:06:08 +01:00
Claire 894ce3726a
Fix unnecessary service worker registration and preloading when logged out (#20341) 2022-11-10 20:26:04 +01:00
Alex Nordlund 397845453e
Update Helm README and bump version (#20346)
* Update Helm chart README and comments in values.yaml

* Bump next Helm chart to 2.2.0
2022-11-10 20:25:23 +01:00
Claire 8e1e7fe2e0
Add old logo files back (#20332)
Fixes #20221
2022-11-10 20:25:12 +01:00
Claire 99734ac936
Remove preview cards from fav and boost notifications (#20335)
Fixes #20329
2022-11-10 19:36:12 +01:00
Joe Friedl 86232e68a8
Give web container time to start (#19828) 2022-11-10 19:16:49 +01:00
mickkael 6c7cdedb24
Helm chart improved for ingress (#19826)
* ingressClassName

* ingress values must be optional
2022-11-10 19:11:25 +01:00
Alex Nordlund 60c4df3d1d
Bump next Helm chart to 2.1.0 (#20155) 2022-11-10 19:10:49 +01:00
Sheogorath e868f41923
fix(chart): Fix gitops-incompatible random rolling (#20184)
This patch reworks the Pod rolling mechanism, which is supposed to update Pods
with each migration run, but since the it generates a new random value on each
helm execution, this will constantly roll all pods in a GitOps driven deployment,
which reconciles the helm release.

This is resolved by fixing the upgrade to the `.Release.Revision`, which should
stay identical, unless config or helm release version have been changed. Further
it introduces automatic rolls based on adjustments to the environment variables
and secrets.

The implementation uses a helper template, following the 1-2-N rule, and omitting
code duplication.

References:
https://helm.sh/docs/chart_template_guide/builtin_objects/
https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
2022-11-10 19:10:38 +01:00
Alex Nordlund 86d4b6f7c9
Helm update readme.md (#20154)
* gitignore packaged helm charts

* Add upgrade instructions to helm chart/readme.md

* Note Helm secret changes that are necessary on failed upgrades
2022-11-10 19:10:06 +01:00
Alex Nordlund b907871604
Helm update readme.md (#20154)
* gitignore packaged helm charts

* Add upgrade instructions to helm chart/readme.md

* Note Helm secret changes that are necessary on failed upgrades
2022-11-10 19:09:54 +01:00
Eugen Rochko f8e8e622e5
Change incoming activity processing to happen in `ingress` queue (#20264) 2022-11-10 14:21:51 +01:00
Claire 89a6b76f99
Fix color of the “No description added“ media upload warning on light theme (#20328) 2022-11-10 14:21:31 +01:00
Effy Elden 8fdbb4d00d
Remove unused timeline_container to fix linter errors (#20305) 2022-11-10 08:50:45 +01:00
Eugen Rochko 7bdb2433f1
Change larger reblogs/favourites numbers to be shortened in web UI (#20303) 2022-11-10 08:49:59 +01:00
Eugen Rochko 16122761c5
Fix confusing wording in interaction modal in web UI (#20302) 2022-11-10 08:49:48 +01:00
Eugen Rochko ef582dc4f2
Add option to open original page in dropdowns of remote content in web UI (#20299)
Change profile picture click to open profile picture in modal in web UI
2022-11-10 08:49:35 +01:00
Eugen Rochko e37e8deb0f
Fix profile header being cut off in light theme in web UI (#20298) 2022-11-10 07:32:37 +01:00
Eugen Rochko 9965a23b04
Change link verification to ignore IDN domains (#20295)
Fix #3833
2022-11-10 06:27:45 +01:00
James Tucker 78a6b871fe
Improve performance by avoiding regex construction (#20215)
```ruby
10.times { p /#{FOO}/.object_id }
10.times { p FOO_RE.object_id }
```
2022-11-10 05:49:30 +01:00
Eugen Rochko 0cd0786aef
Revert filtering public timelines by locale by default (#20294) 2022-11-10 05:34:42 +01:00
trwnh b280a255c4
Change `master` branch to `main` branch (#20290) 2022-11-10 04:02:05 +01:00
Eugen Rochko 45ce858fd9
Fix `mailers` queue not being used for mailers (#20274)
Regression since Rails 6.1
2022-11-10 02:31:09 +01:00
Claire a5394980f2
Fix NameError in Webfinger redirect handling in ActivityPub::FetchRemoteActorService (#20260) 2022-11-09 20:10:38 +01:00
Eugen Rochko cd0a87f170
New Crowdin updates (#20016)
* New translations en.json (Telugu)

* New translations en.yml (Telugu)

* New translations en.yml (Occitan)

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

* New translations en.yml (Kabyle)

* New translations en.json (Igbo)

* New translations en.yml (Burmese)

* New translations en.json (Burmese)

* New translations activerecord.en.yml (Frisian)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.json (Standard Moroccan Tamazight)

* New translations en.yml (Silesian)

* New translations en.json (Silesian)

* New translations en.yml (Taigi)

* New translations en.json (Taigi)

* New translations en.json (Kabyle)

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

* New translations en.yml (Sanskrit)

* New translations en.json (Sanskrit)

* New translations en.yml (Sardinian)

* New translations en.json (Sardinian)

* New translations en.yml (Corsican)

* New translations en.json (Corsican)

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

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

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

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

* New translations en.yml (Igbo)

* New translations en.json (Hebrew)

* New translations en.json (Polish)

* New translations doorkeeper.en.yml (Frisian)

* New translations en.json (Latvian)

* New translations en.json (Icelandic)

* New translations en.yml (Swedish)

* New translations en.json (Swedish)

* New translations en.json (Slovenian)

* New translations en.json (Russian)

* New translations en.json (Italian)

* New translations en.json (German)

* New translations en.yml (Hebrew)

* New translations en.yml (Finnish)

* New translations en.json (Finnish)

* New translations en.yml (Danish)

* New translations en.json (Afrikaans)

* New translations en.json (Spanish)

* New translations en.json (French)

* New translations en.json (Dutch)

* New translations simple_form.en.yml (Hebrew)

* New translations en.json (Hebrew)

* New translations en.json (Spanish, Argentina)

* New translations activerecord.en.yml (Hebrew)

* New translations simple_form.en.yml (Occitan)

* New translations doorkeeper.en.yml (Hebrew)

* New translations simple_form.en.yml (Hebrew)

* New translations en.yml (Occitan)

* New translations en.json (Welsh)

* New translations en.yml (Chinese Traditional)

* New translations en.json (German)

* New translations en.json (Chinese Traditional)

* New translations en.json (Ukrainian)

* New translations en.json (Portuguese)

* New translations en.yml (Hebrew)

* New translations en.json (Finnish)

* New translations en.json (Japanese)

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

* New translations en.yml (Thai)

* New translations en.json (Hebrew)

* New translations en.json (Thai)

* New translations en.json (Greek)

* New translations en.yml (Hebrew)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Occitan)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Thai)

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

* New translations en.json (Thai)

* New translations en.json (Catalan)

* New translations en.yml (Dutch)

* New translations simple_form.en.yml (Dutch)

* New translations en.json (Polish)

* New translations simple_form.en.yml (Thai)

* New translations en.json (Esperanto)

* New translations en.json (Chinese Simplified)

* New translations en.json (Irish)

* New translations activerecord.en.yml (Irish)

* New translations en.json (Irish)

* New translations en.yml (Dutch)

* New translations en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Italian)

* New translations en.json (Danish)

* New translations en.json (Galician)

* New translations simple_form.en.yml (Galician)

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

* New translations en.json (Czech)

* New translations en.json (Turkish)

* New translations en.json (Vietnamese)

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

* New translations en.json (Bulgarian)

* New translations en.json (Czech)

* New translations en.json (Albanian)

* New translations en.json (Arabic)

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

* New translations en.json (Bulgarian)

* New translations en.json (Macedonian)

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

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

* New translations en.json (Bulgarian)

* New translations devise.en.yml (Polish)

* New translations en.json (Bulgarian)

* New translations en.json (Hungarian)

* New translations en.yml (Japanese)

* New translations en.json (Norwegian)

* New translations en.json (Bulgarian)

* New translations en.json (Korean)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (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.json (Bulgarian)

* New translations en.json (German)

* New translations en.json (Catalan)

* New translations en.yml (Catalan)

* New translations en.json (Latvian)

* New translations en.yml (Latvian)

* New translations simple_form.en.yml (Catalan)

* New translations simple_form.en.yml (Latvian)

* New translations en.json (Esperanto)

* New translations en.json (Catalan)

* New translations en.yml (Catalan)

* New translations en.json (Norwegian)

* New translations en.json (Vietnamese)

* New translations en.yml (Esperanto)

* New translations doorkeeper.en.yml (Frisian)

* New translations en.yml (Romanian)

* New translations en.yml (Frisian)

* New translations en.json (Norwegian)

* New translations en.yml (Russian)

* New translations en.yml (Esperanto)

* New translations doorkeeper.en.yml (Frisian)

* New translations en.json (Norwegian)

* New translations en.yml (Russian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.json (Norwegian)

* New translations en.json (Swedish)

* New translations en.json (Occitan)

* New translations en.json (Afrikaans)

* New translations en.json (Catalan)

* New translations en.json (Norwegian)

* New translations en.json (Swedish)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.json (Welsh)

* New translations en.yml (Esperanto)

* New translations en.json (Occitan)

* New translations doorkeeper.en.yml (French)

* New translations activerecord.en.yml (Norwegian)

* New translations activerecord.en.yml (Welsh)

* New translations devise.en.yml (Norwegian)

* New translations devise.en.yml (Esperanto)

* New translations en.json (Chinese Simplified)

* New translations en.json (Welsh)

* New translations doorkeeper.en.yml (Norwegian)

* New translations activerecord.en.yml (Norwegian)

* New translations devise.en.yml (Norwegian)

* New translations en.json (Dutch)

* New translations en.json (Irish)

* New translations en.yml (Norwegian)

* New translations doorkeeper.en.yml (Norwegian)

* New translations en.json (Dutch)

* New translations en.json (Irish)

* New translations en.yml (Dutch)

* New translations simple_form.en.yml (Dutch)

* New translations en.json (Norwegian)

* New translations simple_form.en.yml (Dutch)

* New translations en.json (Irish)

* New translations en.yml (Dutch)

* New translations simple_form.en.yml (Dutch)

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

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

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

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

* New translations en.json (Dutch)

* New translations en.json (Irish)

* New translations en.yml (Irish)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Irish)

* New translations en.json (Irish)

* New translations en.yml (Irish)

* New translations en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Irish)

* New translations doorkeeper.en.yml (Irish)

* New translations en.json (Bulgarian)

* New translations en.json (Irish)

* New translations en.yml (Irish)

* New translations simple_form.en.yml (Irish)

* New translations doorkeeper.en.yml (Irish)

* New translations en.json (Bulgarian)

* New translations en.yml (Irish)

* New translations en.json (Chinese Traditional)

* New translations en.json (Galician)

* New translations en.json (Bulgarian)

* New translations en.json (Latvian)

* New translations en.yml (Latvian)

* New translations simple_form.en.yml (Latvian)

* New translations en.json (Igbo)

* New translations en.json (Thai)

* New translations en.json (Bulgarian)

* New translations en.json (Esperanto)

* New translations en.json (Irish)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Turkish)

* New translations simple_form.en.yml (Esperanto)

* New translations en.yml (Czech)

* New translations en.json (Esperanto)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.json (Breton)

* New translations en.yml (Breton)

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

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

* New translations en.yml (Czech)

* New translations en.json (Bulgarian)

* New translations en.json (Esperanto)

* New translations en.json (Afrikaans)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Esperanto)

* New translations en.json (Breton)

* New translations en.yml (Breton)

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

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

* New translations simple_form.en.yml (Esperanto)

* New translations doorkeeper.en.yml (Esperanto)

* New translations activerecord.en.yml (Esperanto)

* New translations devise.en.yml (Esperanto)

* New translations en.json (Bulgarian)

* New translations en.json (Afrikaans)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.yml (Portuguese, Brazilian)

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

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

* New translations en.json (Occitan)

* Run `yarn manage:translations`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-11-10 00:43:48 +09:00
Vyr Cossont 104157bd01
Add Balaibalan, Láadan, Lingua Franca Nova, Lojban, Toki Pona to language list (#20168)
* Add Balaibalan, Láadan, Lojban, Toki Pona to language list

Fixes #8995.

* Correct translated names for Lojban and Toki Pona

* Correct translated name for Balaibalan

* Add Lingua Franca Nova aka Elefen

* Disable unhelpful Rubocop checks

* Re-enable Rubocop checks at end of file
2022-11-09 15:23:52 +01:00
trwnh 029b5cd5b1
Fix GET /api/v1/admin/ip_blocks/:id (#20207) 2022-11-09 15:22:58 +01:00
Claire 5333447be0
Change account deletion requests to spread out over time (#20222) 2022-11-09 14:08:19 +01:00
Eugen Rochko e98833748e
Fix being able to spoof link verification (#20217)
- Change verification to happen in `default` queue
- Change verification worker to only be queued if there's something to do
- Add `link` tags from metadata fields to page header of profiles
2022-11-09 08:24:21 +01:00
keiya 53817294fc
Fix nginx location matching (#20198) 2022-11-09 04:12:57 +01:00
Claire dd7176a4b5
Fix redirects from /web/ discarding everything after a dot (#20148)
Fixes #20145
2022-11-09 01:30:33 +01:00
luzpaz 6ba52306f9
Fix typos (#19849)
Found via `codespell -q 3 -S ./yarn.lock,./CHANGELOG.md,./AUTHORS.md,./config/locales,./app/javascript/mastodon/locales -L ba,followings,keypair,medias,pattens,pixelx,rememberable,ro,te`
2022-11-08 17:32:03 +01:00
Christian Clauss 6f1559ed0f
CHANGELOG.md: Fix typos (#19838) 2022-11-08 17:31:52 +01:00
Sasha Sorokin d055d75172
Remove aria-pressed where it's redundant (#19912)
This commit removes aria-pressed attribute from all elements which
contents or other descriptive attributes change in active state,
effectively replacing the meaning of the button, in which case
aria-pressed, an attribute specified whether the button is currently
pressed, would create a confusion. (Spoiler: it's everywhere).

See https://github.com/mastodon/mastodon/issues/13545#issuecomment-1304886969
2022-11-08 17:31:32 +01:00
Claire d70303bba6
Add server-side route so that legacy /web/statuses/:id URLs keep being supported (#19978) 2022-11-08 17:29:14 +01:00
trwnh b1a48e05b6
Change Report category to "violation" if rule IDs are provided (#20137)
* Change Report category to "violation" if rule IDs are provided

* Fix LiteralAsCondition

* Add parentheses to conditional statement
2022-11-08 17:28:02 +01:00
Claire c476dfc725
Fix nodeinfo metadata attribute being an array instead of an object (#20114)
Fixes #20111
2022-11-08 17:26:11 +01:00
Alex Nordlund 476e74b4c4
Assign unique set of labels to k8s deployments #19703 (#19706) 2022-11-08 17:21:06 +01:00
Sheogorath f4b78028a3
chore(chart): Update appVersion in helm chart (#19653)
This patch updates the helm chart appVersion to the current release and
removes the additional definition in the image tag field, to reduce
duplication.

Since the image will automatically default to the Charts' app version
anyway and this is the more common place to specifiy application
versions for helm charts, this patch switches the prefering this field.

The reason why to use the tag field for the chart itself, seems to be
gone. Since renovatebot is no longer used.
2022-11-08 17:20:34 +01:00
Moritz Hedtke f7613febb3
helm: Fix ingress pathType (#19729) 2022-11-08 17:20:09 +01:00
Alex Nordlund fd3c482104
Roll pods to pick up db migrations even if podAnnotations is empty (#19702) 2022-11-08 17:19:14 +01:00
Alex Nordlund d3afd7a2f1
Fix helm postgresql secret (#19678)
* Revert "Fix helm chart use of Postgres Password (#19537)"

This reverts commit 6094a916b1.

* Revert "Fix PostgreSQL password reference for jobs (#19504)"

This reverts commit dae954ef11.

* Revert "Fix PostgreSQL password reference (#19502)"

This reverts commit 9bf6a8af82.

* Correct default username in postgresql auth
2022-11-08 17:18:57 +01:00
k.bigwheel (kazufumi nishida) 9358fd295d
Add postgresql password settings hint (#19112) 2022-11-08 17:18:22 +01:00
trwnh c374729225
Add `sensitized` to Admin::Account serializer (fix #19148) (#20094)
* Add `sensitized` to Admin::Account serializer (fix #19148)

* remove whitespace, please linter
2022-11-08 17:15:54 +01:00
trwnh 89e1974f30
Make account endorsements idempotent (fix #19045) (#20118)
* Make account endorsements idempotent (fix #19045)

* Accept suggestion to use exists? instead of find_by + nil check

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>

* fix logic (unless, not if)

* switch to using `find_or_create_by!`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-11-08 16:39:15 +01:00
trwnh 455a754081
Fix missing cast of status and rule IDs to string (fix #19048) (#20122) 2022-11-08 16:37:41 +01:00
trwnh 68d9dcd425
Fix uncaught 500 error on invalid `replies_policy` (Fix #19097) (#20126) 2022-11-08 16:37:28 +01:00
Claire c989faaa62
Change Request connection logic to try both IPv6 and IPv4 when available (#20108)
Fixes #19751
2022-11-08 16:36:26 +01:00
Roni Laukkarinen 36b0ff57b7
Fix grammar (#20106) 2022-11-08 16:35:42 +01:00
Claire 782b6835f7
Fix redrafting a currently-editing post not leaving edit mode (#20023) 2022-11-08 04:06:54 +01:00
James Tucker 833d9c2f1c
Improve performance by avoiding method cache busts (#19957)
Switch to monkey-patching http.rb rather than a runtime extend of each
response, so as to avoid busting the global method cache. A guard is
included that will provide developer feedback in development and test
environments should the monkey patch ever collide.
2022-11-08 04:00:27 +01:00
Claire 9f4930ec11
Add password autocomplete hints (#20071)
Fixes #20067

Our password autocomplete hints were “off” but that does not prevent current
browsers from trying to autocomplete them anyway, so use `current-password` and
`new-password` so they don't put a newly-generated password in a password
confirmation prompt, or the old password for a password renewal prompt.
2022-11-08 03:53:06 +01:00
Claire 608343c135
Fix opening the language picker scrolling the single-column view to the top (#19983)
Fixes #19915
2022-11-08 03:52:52 +01:00
Postmodern ca80beb653
Micro-optimization: use `if`/`else` instead of `Array#compact` and `Array#min` (#19906)
* Technically `if`/`else` is faster than using `[value1, value2].compact.min` to find the lesser of two values, one of which may be `nil`.
2022-11-08 03:50:47 +01:00
Zach Flanders 0beb095a4b
Fix spoiler buttons css not rendering correct color in light theme (#19960)
* Updating status__content__spoiler-link css for mastodon-light theme to ensure correct rendering precedence

* Adding focus css selector to status__content__spoiler-link mastodon-light theme

* reformatting code to match convention of having css selectors on separate lines

* fixing code format for  scss linting issue
2022-11-07 22:37:36 +01:00
Claire bbf74498f5
Fix validation error in SynchronizeFeaturedTagsCollectionWorker (#20018)
* Fix followers count not being updated when migrating follows

Fixes #19900

* Fix validation error in SynchronizeFeaturedTagsCollectionWorker

Also saves remote user's chosen case for hashtags

* Limit remote featured tags before validation
2022-11-07 22:35:53 +01:00
Claire 3114c826a7
Fix filter handling in status cache hydration (#19963) 2022-11-07 19:47:48 +01:00
Postmodern 106648b456
Micro-optimization: only split `acct` into two Strings (#19901)
* Since `acct` is split by `@` and assigned to `username` and `domain`, we only need to split `acct` into two Strings.
2022-11-07 16:17:55 +01:00
Eugen Rochko 86a80acf40
New Crowdin updates (#19771)
* New translations en.yml (Vietnamese)

* New translations en.yml (Galician)

* New translations en.yml (Icelandic)

* New translations en.yml (Japanese)

* New translations en.yml (Armenian)

* New translations en.yml (German)

* New translations en.yml (Czech)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Ido)

* New translations en.json (Esperanto)

* New translations en.yml (Turkish)

* New translations en.yml (Albanian)

* New translations en.yml (Ukrainian)

* New translations en.yml (Romanian)

* New translations en.yml (Hungarian)

* New translations en.yml (Bulgarian)

* New translations en.yml (Catalan)

* New translations en.yml (Danish)

* New translations en.yml (Greek)

* New translations en.yml (Frisian)

* New translations en.yml (Basque)

* New translations en.json (Finnish)

* New translations en.yml (Finnish)

* New translations en.yml (Irish)

* New translations en.yml (Hebrew)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

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

* New translations en.yml (Sinhala)

* New translations en.yml (Cornish)

* New translations en.yml (Kannada)

* New translations en.yml (Asturian)

* New translations en.yml (Occitan)

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

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

* New translations en.yml (Corsican)

* New translations en.yml (Malayalam)

* New translations en.yml (Sardinian)

* New translations en.yml (Sanskrit)

* New translations en.yml (Kabyle)

* New translations en.yml (Taigi)

* New translations en.yml (Silesian)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations simple_form.en.yml (French)

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

* New translations en.yml (Burmese)

* New translations en.yml (Breton)

* New translations en.yml (Tatar)

* New translations en.yml (Indonesian)

* New translations en.yml (Kazakh)

* New translations en.yml (Persian)

* New translations en.yml (Tamil)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Bengali)

* New translations en.yml (Marathi)

* New translations en.yml (Croatian)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Estonian)

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

* New translations en.json (Latvian)

* New translations en.yml (Latvian)

* New translations en.yml (Hindi)

* New translations en.yml (Malay)

* New translations en.yml (Telugu)

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

* New translations en.yml (Welsh)

* New translations en.yml (Esperanto)

* New translations en.yml (Uyghur)

* New translations en.yml (Igbo)

* New translations en.json (Czech)

* New translations en.json (Dutch)

* New translations en.json (Hungarian)

* New translations en.yml (Hungarian)

* New translations en.yml (Dutch)

* New translations en.yml (Polish)

* New translations en.yml (Swedish)

* New translations en.json (Icelandic)

* New translations en.yml (Icelandic)

* New translations en.json (Dutch)

* New translations en.yml (Ukrainian)

* New translations en.yml (Swedish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations simple_form.en.yml (Irish)

* New translations simple_form.en.yml (Asturian)

* New translations devise.en.yml (Asturian)

* New translations en.json (Slovenian)

* New translations en.yml (Slovenian)

* New translations en.json (Vietnamese)

* New translations en.yml (Vietnamese)

* New translations en.yml (Asturian)

* New translations simple_form.en.yml (Vietnamese)

* New translations simple_form.en.yml (Asturian)

* New translations activerecord.en.yml (Asturian)

* New translations devise.en.yml (Asturian)

* New translations en.json (Japanese)

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

* New translations en.json (Japanese)

* New translations en.yml (Japanese)

* New translations en.json (Vietnamese)

* New translations en.yml (Vietnamese)

* New translations simple_form.en.yml (Vietnamese)

* New translations doorkeeper.en.yml (Vietnamese)

* New translations en.json (Afrikaans)

* New translations en.json (Galician)

* New translations en.yml (Turkish)

* New translations en.json (Afrikaans)

* New translations en.yml (Afrikaans)

* New translations en.yml (Galician)

* New translations simple_form.en.yml (Afrikaans)

* New translations en.json (Albanian)

* New translations en.yml (Albanian)

* New translations en.yml (French)

* New translations en.json (Arabic)

* New translations en.yml (Arabic)

* New translations en.json (Slovenian)

* New translations simple_form.en.yml (French)

* New translations simple_form.en.yml (Albanian)

* New translations activerecord.en.yml (French)

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

* New translations devise.en.yml (French)

* New translations en.json (Norwegian Nynorsk)

* New translations en.yml (Occitan)

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

* New translations simple_form.en.yml (Occitan)

* New translations doorkeeper.en.yml (Occitan)

* New translations activerecord.en.yml (Occitan)

* New translations en.yml (Spanish)

* New translations en.yml (Japanese)

* New translations en.json (Occitan)

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

* New translations simple_form.en.yml (Japanese)

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

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

* New translations doorkeeper.en.yml (Occitan)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations en.json (Irish)

* New translations en.json (Slovenian)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Scottish Gaelic)

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

* New translations simple_form.en.yml (Irish)

* New translations doorkeeper.en.yml (Irish)

* New translations simple_form.en.yml (Thai)

* New translations en.json (Thai)

* New translations en.json (German)

* New translations en.yml (Spanish)

* New translations en.json (Greek)

* New translations en.json (Slovenian)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Asturian)

* New translations simple_form.en.yml (Thai)

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

* New translations devise.en.yml (Asturian)

* New translations en.json (Danish)

* New translations en.json (Korean)

* New translations en.yml (Korean)

* New translations en.yml (Asturian)

* New translations simple_form.en.yml (Korean)

* New translations en.json (French)

* New translations en.json (Danish)

* New translations en.yml (Danish)

* New translations en.json (Ukrainian)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Scottish Gaelic)

* New translations simple_form.en.yml (Ukrainian)

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

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

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

* New translations en.json (German)

* New translations en.json (Catalan)

* New translations en.json (Danish)

* New translations en.yml (Danish)

* New translations en.json (Portuguese, Brazilian)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Spanish, Mexico)

* New translations en.json (Asturian)

* New translations en.json (Occitan)

* New translations doorkeeper.en.yml (Catalan)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Scottish Gaelic)

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

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

* New translations en.json (German)

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

* New translations en.json (Asturian)

* New translations en.yml (Asturian)

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

* New translations en.json (French)

* New translations en.yml (Dutch)

* New translations en.json (Welsh)

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

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

* New translations en.json (Dutch)

* New translations en.json (French)

* New translations en.yml (Dutch)

* New translations simple_form.en.yml (Dutch)

* New translations doorkeeper.en.yml (Dutch)

* New translations en.json (Irish)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (German)

* New translations en.json (Arabic)

* New translations en.yml (Arabic)

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

* New translations simple_form.en.yml (Arabic)

* New translations en.yml (Ukrainian)

* New translations en.json (Ukrainian)

* New translations simple_form.en.yml (Ukrainian)

* New translations doorkeeper.en.yml (Ukrainian)

* New translations activerecord.en.yml (Ukrainian)

* New translations en.json (Russian)

* New translations en.json (Bulgarian)

* New translations en.json (Hebrew)

* New translations en.json (Bulgarian)

* New translations en.json (Japanese)

* New translations en.yml (Finnish)

* New translations simple_form.en.yml (Japanese)

* New translations devise.en.yml (Finnish)

* New translations en.json (Hebrew)

* New translations en.yml (German)

* New translations en.json (Bulgarian)

* New translations en.yml (Polish)

* New translations simple_form.en.yml (Japanese)

* New translations activerecord.en.yml (Arabic)

* New translations activerecord.en.yml (Hebrew)

* New translations en.json (Bulgarian)

* New translations en.json (German)

* New translations en.json (Danish)

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

* New translations en.json (Bulgarian)

* New translations en.json (Frisian)

* New translations en.json (Russian)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations simple_form.en.yml (German)

* New translations simple_form.en.yml (Russian)

* New translations devise.en.yml (Frisian)

* New translations en.yml (Czech)

* New translations en.json (Bulgarian)

* New translations en.json (Czech)

* New translations en.json (Frisian)

* New translations en.json (Italian)

* New translations en.json (Polish)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-11-08 00:06:48 +09:00
Claire 622f603ac7
Add aria-expanded to content warning toggle button (#19975)
Fixes #19920
2022-11-07 15:48:46 +01:00
Claire 1e1289b024
Fix crash when external auth provider has no display_name set (#19962)
Fixes #19913
2022-11-07 15:43:24 +01:00
Claire e1227457f1
Fix links to the Web UI in notifications (#19981)
Most of the old routes are broken because of the /web removal.
2022-11-07 15:42:58 +01:00
Sunny Ripert 8515bc7962
Add form element on focal point modal (#19834)
* Add form element on focal point modal

* Add type="button" for detection button
2022-11-07 15:41:42 +01:00
Claire 5925a31b78
Fix followers count not being updated when migrating follows (#19998)
Fixes #19900
2022-11-07 15:38:55 +01:00
Chris Rose a70e2cd649
Tag the OTP field with autocomplete for password managers (#19946)
This is modeled on #19833, and based on the attribute values documented
in https://developer.apple.com/documentation/security/password_autofill/enabling_password_autofill_on_an_html_input_element?language=objc
2022-11-07 03:57:16 +01:00
Sunny Ripert 4b7f32a2a6
Fix double button to clear emoji search input (#19888) 2022-11-07 03:40:54 +01:00
Jeremy Kescher 02a34252ba
Add null check on application in dispute viewer (#19851) 2022-11-07 03:40:17 +01:00
Sunny Ripert ffe735344b
Fix JavaScript console error on Getting Started column (#19891)
* Fix JavaScript console error on Getting Started column

* Update app/javascript/mastodon/components/column_header.js

Co-authored-by: Ilias Tsangaris <iliastsangaris@gmail.com>

Co-authored-by: Ilias Tsangaris <iliastsangaris@gmail.com>
2022-11-07 03:40:04 +01:00
Sunny Ripert 34c269310d
Fix console log error on column settings load (#19886) 2022-11-07 03:39:48 +01:00
Claire 4cb2323458
Fix crash in legacy filter creation controller (#19878) 2022-11-07 03:38:53 +01:00
nightpool 54f0f1b9ef
Skip Webfinger cache during migrations as well (#19883) 2022-11-07 03:31:38 +01:00
Rob Petti 8c81db5a41
allow /api/v1/streaming to be used as per documentation (#19896) 2022-11-07 03:16:44 +01:00
rcombs e53fc34e9a
Set autocomplete attr for email field on signup page (#19833)
The email address will be used as the "username" for sign-in purposes, so it's the value that should be stored in password managers. We can inform the password manager of this by setting `autocomplete="email"`. Without this hint, password managers may instead store the `username` field, which isn't valid for sign-in (this happens with iCloud Keychain in Safari, for instance).
2022-11-07 03:16:10 +01:00
Yamagishi Kazutoshi bd220c32f1
Update SECURITY.md (#19869) 2022-11-06 16:13:53 +01:00
462 changed files with 10709 additions and 5746 deletions

138
.github/workflows/test-chart.yml vendored Normal file
View File

@ -0,0 +1,138 @@
# This is a GitHub workflow defining a set of jobs with a set of steps.
# ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
#
name: Test chart
on:
pull_request:
paths:
- "chart/**"
- "!**.md"
- ".github/workflows/test-chart.yml"
push:
paths:
- "chart/**"
- "!**.md"
- ".github/workflows/test-chart.yml"
branches-ignore:
- "dependabot/**"
workflow_dispatch:
permissions:
contents: read
defaults:
run:
working-directory: chart
jobs:
lint-templates:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install dependencies (yamllint)
run: pip install yamllint
- run: helm dependency update
- name: helm lint
run: |
helm lint . \
--values dev-values.yaml
- name: helm template
run: |
helm template . \
--values dev-values.yaml \
--output-dir rendered-templates
- name: yamllint (only on templates we manage)
run: |
rm -rf rendered-templates/mastodon/charts
yamllint rendered-templates \
--config-data "{rules: {indentation: {spaces: 2}, line-length: disable}}"
# This job helps us validate that rendered templates are valid k8s resources
# against a k8s api-server, via "helm template --validate", but also that a
# basic configuration can be used to successfully startup mastodon.
#
test-install:
runs-on: ubuntu-22.04
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
include:
# k3s-channel reference: https://update.k3s.io/v1-release/channels
- k3s-channel: latest
- k3s-channel: stable
# This represents the oldest configuration we test against.
#
# The k8s version chosen is based on the oldest still supported k8s
# version among two managed k8s services, GKE, EKS.
# - GKE: https://endoflife.date/google-kubernetes-engine
# - EKS: https://endoflife.date/amazon-eks
#
# The helm client's version can influence what helper functions is
# available for use in the templates, currently we need v3.6.0 or
# higher.
#
- k3s-channel: v1.21
helm-version: v3.6.0
steps:
- uses: actions/checkout@v3
# This action starts a k8s cluster with NetworkPolicy enforcement and
# installs both kubectl and helm.
#
# ref: https://github.com/jupyterhub/action-k3s-helm#readme
#
- uses: jupyterhub/action-k3s-helm@v3
with:
k3s-channel: ${{ matrix.k3s-channel }}
helm-version: ${{ matrix.helm-version }}
metrics-enabled: false
traefik-enabled: false
docker-enabled: false
- run: helm dependency update
# Validate rendered helm templates against the k8s api-server
- name: helm template --validate
run: |
helm template --validate mastodon . \
--values dev-values.yaml
- name: helm install
run: |
helm install mastodon . \
--values dev-values.yaml \
--timeout 10m
# This actions provides a report about the state of the k8s cluster,
# providing logs etc on anything that has failed and workloads marked as
# important.
#
# ref: https://github.com/jupyterhub/action-k8s-namespace-report#readme
#
- name: Kubernetes namespace report
uses: jupyterhub/action-k8s-namespace-report@v1
if: always()
with:
important-workloads: >-
deploy/mastodon-sidekiq
deploy/mastodon-streaming
deploy/mastodon-web
job/mastodon-assets-precompile
job/mastodon-chewy-upgrade
job/mastodon-create-admin
job/mastodon-db-migrate

3
.gitignore vendored
View File

@ -44,6 +44,9 @@
/redis
/elasticsearch
# ignore Helm charts
/chart/*.tgz
# ignore Helm dependency charts
/chart/charts/*.tgz

1121
AUTHORS.md

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,19 @@ Changelog
All notable changes to this project will be documented in this file.
## [Unreleased]
## [4.0.2] - 2022-11-15
### Fixed
- Fix wrong color on mentions hidden behind content warning in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20724))
- Fix filters from other users being used in the streaming service ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20719))
- Fix `unsafe-eval` being used when `wasm-unsafe-eval` is enough in Content Security Policy ([Gargron](https://github.com/mastodon/mastodon/pull/20729), [prplecake](https://github.com/mastodon/mastodon/pull/20606))
## [4.0.1] - 2022-11-14
### Fixed
- Fix nodes order being sometimes mangled when rewriting emoji ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20677))
## [4.0.0] - 2022-11-14
Some of the features in this release have been funded through the [NGI0 Discovery](https://nlnet.nl/discovery) Fund, a fund established by [NLnet](https://nlnet.nl/) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322.
@ -13,7 +25,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- **Add ability to follow hashtags** ([Gargron](https://github.com/mastodon/mastodon/pull/18809), [Gargron](https://github.com/mastodon/mastodon/pull/18862), [Gargron](https://github.com/mastodon/mastodon/pull/19472), [noellabo](https://github.com/mastodon/mastodon/pull/18924))
- Add ability to filter individual posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18945))
- **Add ability to translate posts** ([Gargron](https://github.com/mastodon/mastodon/pull/19218), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19433), [Gargron](https://github.com/mastodon/mastodon/pull/19453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19434), [Gargron](https://github.com/mastodon/mastodon/pull/19388), [ykzts](https://github.com/mastodon/mastodon/pull/19244), [Gargron](https://github.com/mastodon/mastodon/pull/19245))
- Add featured tags to web UI ([noellabo](https://github.com/mastodon/mastodon/pull/19408), [noellabo](https://github.com/mastodon/mastodon/pull/19380), [noellabo](https://github.com/mastodon/mastodon/pull/19358), [noellabo](https://github.com/mastodon/mastodon/pull/19409), [Gargron](https://github.com/mastodon/mastodon/pull/19382), [ykzts](https://github.com/mastodon/mastodon/pull/19418), [noellabo](https://github.com/mastodon/mastodon/pull/19403), [noellabo](https://github.com/mastodon/mastodon/pull/19404), [Gargron](https://github.com/mastodon/mastodon/pull/19398), [Gargron](https://github.com/mastodon/mastodon/pull/19712))
- Add featured tags to web UI ([noellabo](https://github.com/mastodon/mastodon/pull/19408), [noellabo](https://github.com/mastodon/mastodon/pull/19380), [noellabo](https://github.com/mastodon/mastodon/pull/19358), [noellabo](https://github.com/mastodon/mastodon/pull/19409), [Gargron](https://github.com/mastodon/mastodon/pull/19382), [ykzts](https://github.com/mastodon/mastodon/pull/19418), [noellabo](https://github.com/mastodon/mastodon/pull/19403), [noellabo](https://github.com/mastodon/mastodon/pull/19404), [Gargron](https://github.com/mastodon/mastodon/pull/19398), [Gargron](https://github.com/mastodon/mastodon/pull/19712), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20018))
- **Add support for language preferences for trending statuses and links** ([Gargron](https://github.com/mastodon/mastodon/pull/18288), [Gargron](https://github.com/mastodon/mastodon/pull/19349), [ykzts](https://github.com/mastodon/mastodon/pull/19335))
- Previously, you could only see trends in your current language
- For less popular languages, that meant empty trends
@ -21,6 +33,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Add server rules to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/19296))
- Add privacy icons to report modal in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19190))
- Add `noopener` to links to remote profiles in web UI ([shleeable](https://github.com/mastodon/mastodon/pull/19014))
- Add option to open original page in dropdowns of remote content in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20299))
- Add warning for sensitive audio posts in web UI ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17885))
- Add language attribute to posts in web UI ([tribela](https://github.com/mastodon/mastodon/pull/18544))
- Add support for uploading WebP files ([Saiv46](https://github.com/mastodon/mastodon/pull/18506))
@ -43,22 +56,27 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Add admin API for managing domain blocks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18247))
- Add admin API for managing e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19066))
- Add admin API for managing canonical e-mail blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19067))
- Add admin API for managing IP blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19065))
- Add admin API for managing IP blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19065), [trwnh](https://github.com/mastodon/mastodon/pull/20207))
- Add `sensitized` attribute to accounts in admin REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20094))
- Add `services` and `metadata` to the NodeInfo endpoint ([MFTabriz](https://github.com/mastodon/mastodon/pull/18563))
- Add `--remove-role` option to `tootctl accounts modify` ([Gargron](https://github.com/mastodon/mastodon/pull/19477))
- Add `--days` option to `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/18425))
- Add `EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18642))
- Add `IP_RETENTION_PERIOD` and `SESSION_RETENTION_PERIOD` environment variables ([kescherCode](https://github.com/mastodon/mastodon/pull/18757))
- Add `http_hidden_proxy` environment variable ([tribela](https://github.com/mastodon/mastodon/pull/18427))
- Add caching for payload serialization during fan-out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19637), [Gargron](https://github.com/mastodon/mastodon/pull/19642), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19746), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19747))
- Add `ENABLE_STARTTLS` environment variable ([erbridge](https://github.com/mastodon/mastodon/pull/20321))
- Add caching for payload serialization during fan-out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19637), [Gargron](https://github.com/mastodon/mastodon/pull/19642), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19746), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19747), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19963))
- Add assets from Twemoji 14.0 ([Gargron](https://github.com/mastodon/mastodon/pull/19733))
- Add reputation and followers score boost to SQL-only account search ([Gargron](https://github.com/mastodon/mastodon/pull/19251))
- Add Scots, Balaibalan, Láadan, Lingua Franca Nova, Lojban, Toki Pona to languages list ([VyrCossont](https://github.com/mastodon/mastodon/pull/20168))
- Set autocomplete hints for e-mail, password and OTP fields ([rcombs](https://github.com/mastodon/mastodon/pull/19833), [offbyone](https://github.com/mastodon/mastodon/pull/19946), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20071))
- Add support for DigitalOcean Spaces in setup wizard ([v-aisac](https://github.com/mastodon/mastodon/pull/20573))
### Changed
- **Change brand color and logotypes** ([Gargron](https://github.com/mastodon/mastodon/pull/18592), [Gargron](https://github.com/mastodon/mastodon/pull/18639), [Gargron](https://github.com/mastodon/mastodon/pull/18691), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18634), [Gargron](https://github.com/mastodon/mastodon/pull/19254), [mayaeh](https://github.com/mastodon/mastodon/pull/18710))
- **Change post editing to be enabled in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/19103))
- **Change web UI to work for logged-out users** ([Gargron](https://github.com/mastodon/mastodon/pull/18961), [Gargron](https://github.com/mastodon/mastodon/pull/19250), [Gargron](https://github.com/mastodon/mastodon/pull/19294), [Gargron](https://github.com/mastodon/mastodon/pull/19306), [Gargron](https://github.com/mastodon/mastodon/pull/19315), [ykzts](https://github.com/mastodon/mastodon/pull/19322), [Gargron](https://github.com/mastodon/mastodon/pull/19412), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19437), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19415), [Gargron](https://github.com/mastodon/mastodon/pull/19348), [Gargron](https://github.com/mastodon/mastodon/pull/19295), [Gargron](https://github.com/mastodon/mastodon/pull/19422), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19414), [Gargron](https://github.com/mastodon/mastodon/pull/19319), [Gargron](https://github.com/mastodon/mastodon/pull/19345), [Gargron](https://github.com/mastodon/mastodon/pull/19310), [Gargron](https://github.com/mastodon/mastodon/pull/19301), [Gargron](https://github.com/mastodon/mastodon/pull/19423), [ykzts](https://github.com/mastodon/mastodon/pull/19471), [ykzts](https://github.com/mastodon/mastodon/pull/19333), [ykzts](https://github.com/mastodon/mastodon/pull/19337), [ykzts](https://github.com/mastodon/mastodon/pull/19272), [ykzts](https://github.com/mastodon/mastodon/pull/19468), [Gargron](https://github.com/mastodon/mastodon/pull/19466), [Gargron](https://github.com/mastodon/mastodon/pull/19457), [Gargron](https://github.com/mastodon/mastodon/pull/19426), [Gargron](https://github.com/mastodon/mastodon/pull/19427), [Gargron](https://github.com/mastodon/mastodon/pull/19421), [Gargron](https://github.com/mastodon/mastodon/pull/19417), [Gargron](https://github.com/mastodon/mastodon/pull/19413), [Gargron](https://github.com/mastodon/mastodon/pull/19397), [Gargron](https://github.com/mastodon/mastodon/pull/19387), [Gargron](https://github.com/mastodon/mastodon/pull/19396), [Gargron](https://github.com/mastodon/mastodon/pull/19385), [ykzts](https://github.com/mastodon/mastodon/pull/19334), [ykzts](https://github.com/mastodon/mastodon/pull/19329), [Gargron](https://github.com/mastodon/mastodon/pull/19324), [Gargron](https://github.com/mastodon/mastodon/pull/19318), [Gargron](https://github.com/mastodon/mastodon/pull/19316), [Gargron](https://github.com/mastodon/mastodon/pull/19263), [trwnh](https://github.com/mastodon/mastodon/pull/19305), [ykzts](https://github.com/mastodon/mastodon/pull/19273), [Gargron](https://github.com/mastodon/mastodon/pull/19801), [Gargron](https://github.com/mastodon/mastodon/pull/19790), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19773), [Gargron](https://github.com/mastodon/mastodon/pull/19798), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19724), [Gargron](https://github.com/mastodon/mastodon/pull/19709), [Gargron](https://github.com/mastodon/mastodon/pull/19514), [Gargron](https://github.com/mastodon/mastodon/pull/19562))
- **Change web UI to work for logged-out users** ([Gargron](https://github.com/mastodon/mastodon/pull/18961), [Gargron](https://github.com/mastodon/mastodon/pull/19250), [Gargron](https://github.com/mastodon/mastodon/pull/19294), [Gargron](https://github.com/mastodon/mastodon/pull/19306), [Gargron](https://github.com/mastodon/mastodon/pull/19315), [ykzts](https://github.com/mastodon/mastodon/pull/19322), [Gargron](https://github.com/mastodon/mastodon/pull/19412), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19437), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19415), [Gargron](https://github.com/mastodon/mastodon/pull/19348), [Gargron](https://github.com/mastodon/mastodon/pull/19295), [Gargron](https://github.com/mastodon/mastodon/pull/19422), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19414), [Gargron](https://github.com/mastodon/mastodon/pull/19319), [Gargron](https://github.com/mastodon/mastodon/pull/19345), [Gargron](https://github.com/mastodon/mastodon/pull/19310), [Gargron](https://github.com/mastodon/mastodon/pull/19301), [Gargron](https://github.com/mastodon/mastodon/pull/19423), [ykzts](https://github.com/mastodon/mastodon/pull/19471), [ykzts](https://github.com/mastodon/mastodon/pull/19333), [ykzts](https://github.com/mastodon/mastodon/pull/19337), [ykzts](https://github.com/mastodon/mastodon/pull/19272), [ykzts](https://github.com/mastodon/mastodon/pull/19468), [Gargron](https://github.com/mastodon/mastodon/pull/19466), [Gargron](https://github.com/mastodon/mastodon/pull/19457), [Gargron](https://github.com/mastodon/mastodon/pull/19426), [Gargron](https://github.com/mastodon/mastodon/pull/19427), [Gargron](https://github.com/mastodon/mastodon/pull/19421), [Gargron](https://github.com/mastodon/mastodon/pull/19417), [Gargron](https://github.com/mastodon/mastodon/pull/19413), [Gargron](https://github.com/mastodon/mastodon/pull/19397), [Gargron](https://github.com/mastodon/mastodon/pull/19387), [Gargron](https://github.com/mastodon/mastodon/pull/19396), [Gargron](https://github.com/mastodon/mastodon/pull/19385), [ykzts](https://github.com/mastodon/mastodon/pull/19334), [ykzts](https://github.com/mastodon/mastodon/pull/19329), [Gargron](https://github.com/mastodon/mastodon/pull/19324), [Gargron](https://github.com/mastodon/mastodon/pull/19318), [Gargron](https://github.com/mastodon/mastodon/pull/19316), [Gargron](https://github.com/mastodon/mastodon/pull/19263), [trwnh](https://github.com/mastodon/mastodon/pull/19305), [ykzts](https://github.com/mastodon/mastodon/pull/19273), [Gargron](https://github.com/mastodon/mastodon/pull/19801), [Gargron](https://github.com/mastodon/mastodon/pull/19790), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19773), [Gargron](https://github.com/mastodon/mastodon/pull/19798), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19724), [Gargron](https://github.com/mastodon/mastodon/pull/19709), [Gargron](https://github.com/mastodon/mastodon/pull/19514), [Gargron](https://github.com/mastodon/mastodon/pull/19562), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19981), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19978), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20148), [Gargron](https://github.com/mastodon/mastodon/pull/20302), [cutls](https://github.com/mastodon/mastodon/pull/20400))
- The web app can now be accessed without being logged in
- No more `/web` prefix on web app paths
- Profiles, posts, and other public pages now use the same interface for logged in and logged out users
@ -74,14 +92,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Change label of publish button to be "Publish" again in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18583))
- Change language to be carried over on reply in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18557))
- Change "Unfollow" to "Cancel follow request" when request still pending in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/19363))
- **Change post filtering system** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18058), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19050), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18894), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19051), [noellabo](https://github.com/mastodon/mastodon/pull/18923), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18744))
- **Change post filtering system** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18058), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19050), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18894), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19051), [noellabo](https://github.com/mastodon/mastodon/pull/18923), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18744), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19878), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20567))
- Filtered keywords and phrases can now be grouped into named categories
- Filtered posts show which exact filter was hit
- Individual posts can be added to a filter
- You can peek inside filtered posts anyway
- Change path of privacy policy page from `/terms` to `/privacy-policy` ([Gargron](https://github.com/mastodon/mastodon/pull/19249))
- Change how hashtags are normalized ([Gargron](https://github.com/mastodon/mastodon/pull/18795), [Gargron](https://github.com/mastodon/mastodon/pull/18863), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18854))
- Change public (but not hashtag) timelines to be filtered by current locale by default ([Gargron](https://github.com/mastodon/mastodon/pull/19291), [Gargron](https://github.com/mastodon/mastodon/pull/19563))
- Change settings area to be separated into categories in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19407), [Gargron](https://github.com/mastodon/mastodon/pull/19533))
- Change "No accounts selected" errors to use the appropriate noun in admin UI ([prplecake](https://github.com/mastodon/mastodon/pull/19356))
- Change e-mail domain blocks to match subdomains of blocked domains ([Gargron](https://github.com/mastodon/mastodon/pull/18979))
@ -95,6 +112,14 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Change mentions of blocked users to not be processed ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19725))
- Change max. thumbnail dimensions to 640x360px (360p) ([Gargron](https://github.com/mastodon/mastodon/pull/19619))
- Change post-processing to be deferred only for large media types ([Gargron](https://github.com/mastodon/mastodon/pull/19617))
- Change link verification to only work for https links without unicode ([Gargron](https://github.com/mastodon/mastodon/pull/20304), [Gargron](https://github.com/mastodon/mastodon/pull/20295))
- Change account deletion requests to spread out over time ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20222))
- Change larger reblogs/favourites numbers to be shortened in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20303))
- Change incoming activity processing to happen in `ingress` queue ([Gargron](https://github.com/mastodon/mastodon/pull/20264))
- Change notifications to not link show preview cards in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20335))
- Change amount of replies returned for logged out users in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20355))
- Change in-app links to keep you in-app in web UI ([trwnh](https://github.com/mastodon/mastodon/pull/20540), [Gargron](https://github.com/mastodon/mastodon/pull/20628))
- Change table header to be sticky in admin UI ([sk22](https://github.com/mastodon/mastodon/pull/20442))
### Removed
@ -107,6 +132,28 @@ Some of the features in this release have been funded through the [NGI0 Discover
### Fixed
- Fix rules with same priority being sorted non-deterministically ([Gargron](https://github.com/mastodon/mastodon/pull/20623))
- Fix error when invalid domain name is submitted ([Gargron](https://github.com/mastodon/mastodon/pull/19474))
- Fix icons having an image role ([Gargron](https://github.com/mastodon/mastodon/pull/20600))
- Fix connections to IPv6-only servers ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20108))
- Fix unnecessary service worker registration and preloading when logged out in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20341))
- Fix unnecessary and slow regex construction ([raggi](https://github.com/mastodon/mastodon/pull/20215))
- Fix `mailers` queue not being used for mailers ([Gargron](https://github.com/mastodon/mastodon/pull/20274))
- Fix error in webfinger redirect handling ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20260))
- Fix report category not being set to `violation` if rule IDs are provided ([trwnh](https://github.com/mastodon/mastodon/pull/20137))
- Fix nodeinfo metadata attribute being an array instead of an object ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20114))
- Fix account endorsements not being idempotent ([trwnh](https://github.com/mastodon/mastodon/pull/20118))
- Fix status and rule IDs not being strings in admin reports REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20122))
- Fix error on invalid `replies_policy` in REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20126))
- Fix redrafting a currently-editing post not leaving edit mode in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20023))
- Fix performance by avoiding method cache busts ([raggi](https://github.com/mastodon/mastodon/pull/19957))
- Fix opening the language picker scrolling the single-column view to the top in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19983))
- Fix content warning button missing `aria-expanded` attribute in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19975))
- Fix redundant `aria-pressed` attributes in web UI ([Brawaru](https://github.com/mastodon/mastodon/pull/19912))
- Fix crash when external auth provider has no display name set ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19962))
- Fix followers count not being updated when migrating follows ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19998))
- Fix double button to clear emoji search input in web UI ([sunny](https://github.com/mastodon/mastodon/pull/19888))
- Fix missing null check on applications on strike disputes ([kescherCode](https://github.com/mastodon/mastodon/pull/19851))
- Fix featured tags not saving preferred casing ([Gargron](https://github.com/mastodon/mastodon/pull/19732))
- Fix language not being saved when editing status ([Gargron](https://github.com/mastodon/mastodon/pull/19543))
- Fix not being able to input featured tag with hash symbol ([Gargron](https://github.com/mastodon/mastodon/pull/19535))
@ -118,7 +165,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix account action type validation ([Gargron](https://github.com/mastodon/mastodon/pull/19476))
- Fix upload progress not communicating processing phase in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19530))
- Fix wrong host being used for custom.css when asset host configured ([Gargron](https://github.com/mastodon/mastodon/pull/19521))
- Fix account migration form ever using outdated account data ([Gargron](https://github.com/mastodon/mastodon/pull/18429))
- Fix account migration form ever using outdated account data ([Gargron](https://github.com/mastodon/mastodon/pull/18429), [nightpool](https://github.com/mastodon/mastodon/pull/19883))
- Fix error when uploading malformed CSV import ([Gargron](https://github.com/mastodon/mastodon/pull/19509))
- Fix avatars not using image tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19488))
- Fix handling of duplicate and out-of-order notifications in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19693))
@ -156,6 +203,15 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix `CDN_HOST` not being used in some asset URLs ([tribela](https://github.com/mastodon/mastodon/pull/18662))
- Fix `CAS_DISPLAY_NAME`, `SAML_DISPLAY_NAME` and `OIDC_DISPLAY_NAME` being ignored ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18568))
- Fix various typos in comments throughout the codebase ([luzpaz](https://github.com/mastodon/mastodon/pull/18604))
- Fix CSV import error when rows include unicode characters ([HamptonMakes](https://github.com/mastodon/mastodon/pull/20592))
### Security
- Fix being able to spoof link verification ([Gargron](https://github.com/mastodon/mastodon/pull/20217))
- Fix emoji substitution not applying only to text nodes in backend code ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20641))
- Fix emoji substitution not applying only to text nodes in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20640))
- Fix rate limiting for paths with formats ([Gargron](https://github.com/mastodon/mastodon/pull/20675))
- Fix out-of-bound reads in blurhash transcoder ([delroth](https://github.com/mastodon/mastodon/pull/20388))
## [3.5.3] - 2022-05-26
### Added
@ -276,7 +332,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
### Fixed
- Fix error resposes for `from` search prefix ([single-right-quote](https://github.com/mastodon/mastodon/pull/17963))
- Fix error responses for `from` search prefix ([single-right-quote](https://github.com/mastodon/mastodon/pull/17963))
- Fix dangling language-specific trends ([Gargron](https://github.com/mastodon/mastodon/pull/17997))
- Fix extremely rare race condition when deleting a status or account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17994))
- Fix trends returning less results per page when filtered in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17996))
@ -411,7 +467,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Remove profile directory link from main navigation panel in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17688))
- **Remove language detection through cld3** ([Gargron](https://github.com/mastodon/mastodon/pull/17478), [ykzts](https://github.com/mastodon/mastodon/pull/17539), [Gargron](https://github.com/mastodon/mastodon/pull/17496), [Gargron](https://github.com/mastodon/mastodon/pull/17722))
- cld3 is very inaccurate on short-form content even with unique alphabets
- Post language can be overriden individually using `language` param
- Post language can be overridden individually using `language` param
- Otherwise, it defaults to the user's interface language
- Remove support for `OAUTH_REDIRECT_AT_SIGN_IN` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17287))
- Use `OMNIAUTH_ONLY` instead

View File

@ -42,6 +42,8 @@ It is not always possible to phrase every change in such a manner, but it is des
- Code style rules (rubocop, eslint)
- Normalization of locale files (i18n-tasks)
**Note**: You may need to log in and authorise the GitHub account your fork of this repository belongs to with CircleCI to enable some of the automated checks to run.
## Documentation
The [Mastodon documentation](https://docs.joinmastodon.org) is a statically generated site. You can [submit merge requests to mastodon/documentation](https://github.com/mastodon/documentation).

View File

@ -92,7 +92,7 @@ gem 'tty-prompt', '~> 0.23', require: false
gem 'twitter-text', '~> 3.1.0'
gem 'tzinfo-data', '~> 1.2022'
gem 'webpacker', '~> 5.4'
gem 'webpush', git: 'https://github.com/ClearlyClaire/webpush.git', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9'
gem 'webpush', github: 'ClearlyClaire/webpush', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9'
gem 'webauthn', '~> 2.5'
gem 'json-ld'
@ -122,6 +122,7 @@ group :test do
gem 'simplecov', '~> 0.21', require: false
gem 'webmock', '~> 3.18'
gem 'rspec_junit_formatter', '~> 0.6'
gem 'rack-test', '~> 2.0'
end
group :development do
@ -152,7 +153,5 @@ end
gem 'concurrent-ruby', require: false
gem 'connection_pool', require: false
gem 'xorcist', '~> 1.1'
gem 'cocoon', '~> 1.2'

View File

@ -412,7 +412,7 @@ GEM
net-ssh (>= 2.6.5, < 8.0.0)
net-ssh (7.0.1)
nio4r (2.5.8)
nokogiri (1.13.8)
nokogiri (1.13.9)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nsa (0.2.8)
@ -815,6 +815,7 @@ DEPENDENCIES
rack (~> 2.2.4)
rack-attack (~> 6.6)
rack-cors (~> 1.1)
rack-test (~> 2.0)
rails (~> 6.1.7)
rails-controller-testing (~> 1.0)
rails-i18n (~> 6.0)

View File

@ -1,6 +1,6 @@
# Security Policy
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at <hello@joinmastodon.org>.
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at <security@joinmastodon.org>.
You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
@ -10,9 +10,8 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 3.5.x | Yes |
| 3.4.x | Yes |
| 3.3.x | No |
| < 3.3 | No |
| Version | Supported |
| ------- | ----------|
| 4.0.x | Yes |
| 3.5.x | Yes |
| < 3.5 | No |

View File

@ -79,8 +79,13 @@
"description": "SMTP server certificate verification mode. Defaults is 'peer'.",
"required": false
},
"SMTP_ENABLE_STARTTLS": {
"description": "Enable STARTTLS? Default is 'auto'.",
"value": "auto",
"required": false
},
"SMTP_ENABLE_STARTTLS_AUTO": {
"description": "Enable STARTTLS if SMTP server supports it? Default is true.",
"description": "Enable STARTTLS if SMTP server supports it? Deprecated by SMTP_ENABLE_STARTTLS.",
"required": false
}
},

View File

@ -57,7 +57,7 @@ class Api::BaseController < ApplicationController
render json: { error: I18n.t('errors.429') }, status: 429
end
rescue_from ActionController::ParameterMissing do |e|
rescue_from ActionController::ParameterMissing, Mastodon::InvalidParameterError do |e|
render json: { error: e.to_s }, status: 400
end

View File

@ -8,7 +8,7 @@ class Api::V1::Accounts::PinsController < Api::BaseController
before_action :set_account
def create
AccountPin.create!(account: current_account, target_account: @account)
AccountPin.find_or_create_by!(account: current_account, target_account: @account)
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter
end

View File

@ -52,7 +52,7 @@ class Api::V1::FiltersController < Api::BaseController
end
def resource_params
params.permit(:phrase, :expires_in, :irreversible, :whole_word, context: [])
params.permit(:phrase, :expires_in, :irreversible, context: [])
end
def filter_params

View File

@ -7,6 +7,10 @@ class Api::V1::ListsController < Api::BaseController
before_action :require_user!
before_action :set_list, except: [:index, :create]
rescue_from ArgumentError do |e|
render json: { error: e.to_s }, status: 422
end
def index
@lists = List.where(account: current_account).all
render json: @lists, each_serializer: REST::ListSerializer

View File

@ -18,14 +18,29 @@ class Api::V1::StatusesController < Api::BaseController
# than this anyway
CONTEXT_LIMIT = 4_096
# This remains expensive and we don't want to show everything to logged-out users
ANCESTORS_LIMIT = 40
DESCENDANTS_LIMIT = 60
DESCENDANTS_DEPTH_LIMIT = 20
def show
@status = cache_collection([@status], Status).first
render json: @status, serializer: REST::StatusSerializer
end
def context
ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(CONTEXT_LIMIT, current_account)
descendants_results = @status.descendants(CONTEXT_LIMIT, current_account)
ancestors_limit = CONTEXT_LIMIT
descendants_limit = CONTEXT_LIMIT
descendants_depth_limit = nil
if current_account.nil?
ancestors_limit = ANCESTORS_LIMIT
descendants_limit = DESCENDANTS_LIMIT
descendants_depth_limit = DESCENDANTS_DEPTH_LIMIT
end
ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(ancestors_limit, current_account)
descendants_results = @status.descendants(descendants_limit, current_account, descendants_depth_limit)
loaded_ancestors = cache_collection(ancestors_results, Status)
loaded_descendants = cache_collection(descendants_results, Status)

View File

@ -24,7 +24,7 @@ class Api::V1::TagsController < Api::BaseController
private
def set_or_create_tag
return not_found unless /\A(#{Tag::HASHTAG_NAME_RE})\z/.match?(params[:id])
return not_found unless Tag::HASHTAG_NAME_RE.match?(params[:id])
@tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id])
end
end

View File

@ -35,7 +35,6 @@ class Api::V1::Timelines::PublicController < Api::BaseController
def public_feed
PublicFeed.new(
current_account,
locale: content_locale,
local: truthy_param?(:local),
remote: truthy_param?(:remote),
only_media: truthy_param?(:only_media)

View File

@ -33,7 +33,7 @@ class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController
end
def filter_params
params.permit(*FILTER_PARAMS)
params.permit(*FILTER_PARAMS, role_ids: [])
end
def pagination_params(core_params)

View File

@ -1,6 +1,6 @@
# frozen_string_literal: true
class Api::V1::Filters::KeywordsController < Api::BaseController
class Api::V2::Filters::KeywordsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show]
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show]
before_action :require_user!

View File

@ -1,6 +1,6 @@
# frozen_string_literal: true
class Api::V1::Filters::StatusesController < Api::BaseController
class Api::V2::Filters::StatusesController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show]
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show]
before_action :require_user!

View File

@ -18,7 +18,8 @@ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
)
sign_in_and_redirect @user, event: :authentication
set_flash_message(:notice, :success, kind: Devise.omniauth_configs[provider].strategy.display_name.capitalize) if is_navigational_format?
label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize)
set_flash_message(:notice, :success, kind: label) if is_navigational_format?
else
session["devise.#{provider}_data"] = request.env['omniauth.auth']
redirect_to new_user_registration_url

View File

@ -1,87 +0,0 @@
# frozen_string_literal: true
module StatusControllerConcern
extend ActiveSupport::Concern
ANCESTORS_LIMIT = 40
DESCENDANTS_LIMIT = 60
DESCENDANTS_DEPTH_LIMIT = 20
def create_descendant_thread(starting_depth, statuses)
depth = starting_depth + statuses.size
if depth < DESCENDANTS_DEPTH_LIMIT
{
statuses: statuses,
starting_depth: starting_depth,
}
else
next_status = statuses.pop
{
statuses: statuses,
starting_depth: starting_depth,
next_status: next_status,
}
end
end
def set_ancestors
@ancestors = @status.reply? ? cache_collection(@status.ancestors(ANCESTORS_LIMIT, current_account), Status) : []
@next_ancestor = @ancestors.size < ANCESTORS_LIMIT ? nil : @ancestors.shift
end
def set_descendants
@max_descendant_thread_id = params[:max_descendant_thread_id]&.to_i
@since_descendant_thread_id = params[:since_descendant_thread_id]&.to_i
descendants = cache_collection(
@status.descendants(
DESCENDANTS_LIMIT,
current_account,
@max_descendant_thread_id,
@since_descendant_thread_id,
DESCENDANTS_DEPTH_LIMIT
),
Status
)
@descendant_threads = []
if descendants.present?
statuses = [descendants.first]
starting_depth = 0
descendants.drop(1).each_with_index do |descendant, index|
if descendants[index].id == descendant.in_reply_to_id
statuses << descendant
else
@descendant_threads << create_descendant_thread(starting_depth, statuses)
# The thread is broken, assume it's a reply to the root status
starting_depth = 0
# ... unless we can find its ancestor in one of the already-processed threads
@descendant_threads.reverse_each do |descendant_thread|
statuses = descendant_thread[:statuses]
index = statuses.find_index do |thread_status|
thread_status.id == descendant.in_reply_to_id
end
if index.present?
starting_depth = descendant_thread[:starting_depth] + index + 1
break
end
end
statuses = [descendant]
end
end
@descendant_threads << create_descendant_thread(starting_depth, statuses)
end
@max_descendant_thread_id = @descendant_threads.pop[:statuses].first.id if descendants.size >= DESCENDANTS_LIMIT
end
end

View File

@ -2,7 +2,6 @@
class StatusesController < ApplicationController
include WebAppControllerConcern
include StatusControllerConcern
include SignatureAuthentication
include Authorization
include AccountOwnedConcern

View File

@ -1,4 +1,5 @@
# frozen_string_literal: true
# rubocop:disable Metrics/ModuleLength, Style/WordArray
module LanguagesHelper
ISO_639_1 = {
@ -189,8 +190,14 @@ module LanguagesHelper
ISO_639_3 = {
ast: ['Asturian', 'Asturianu'].freeze,
ckb: ['Sorani (Kurdish)', 'سۆرانی'].freeze,
jbo: ['Lojban', 'la .lojban.'].freeze,
kab: ['Kabyle', 'Taqbaylit'].freeze,
kmr: ['Kurmanji (Kurdish)', 'Kurmancî'].freeze,
ldn: ['Láadan', 'Láadan'].freeze,
lfn: ['Lingua Franca Nova', 'lingua franca nova'].freeze,
sco: ['Scots', 'Scots'].freeze,
tok: ['Toki Pona', 'toki pona'].freeze,
zba: ['Balaibalan', 'باليبلن'].freeze,
zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze,
}.freeze
@ -259,3 +266,5 @@ module LanguagesHelper
locale_name.to_sym if locale_name.present? && I18n.available_locales.include?(locale_name.to_sym)
end
end
# rubocop:enable Metrics/ModuleLength, Style/WordArray

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg"><symbol id="mastodon-svg-logo" viewBox="0 0 216.4144 232.00976"><path d="M107.86523 0C78.203984.2425 49.672422 3.4535937 33.044922 11.089844c0 0-32.97656262 14.752031-32.97656262 65.082031 0 11.525-.224375 25.306175.140625 39.919925 1.19750002 49.22 9.02375002 97.72843 54.53124962 109.77343 20.9825 5.55375 38.99711 6.71547 53.505856 5.91797 26.31125-1.45875 41.08203-9.38867 41.08203-9.38867l-.86914-19.08984s-18.80171 5.92758-39.91796 5.20508c-20.921254-.7175-43.006879-2.25516-46.390629-27.94141-.3125-2.25625-.46875-4.66938-.46875-7.20313 0 0 20.536953 5.0204 46.564449 6.21289 15.915.73001 30.8393-.93343 45.99805-2.74218 29.07-3.47125 54.38125-21.3818 57.5625-37.74805 5.0125-25.78125 4.59961-62.916015 4.59961-62.916015 0-50.33-32.97461-65.082031-32.97461-65.082031C166.80539 3.4535938 138.255.2425 108.59375 0h-.72852zM74.296875 39.326172c12.355 0 21.710234 4.749297 27.896485 14.248047l6.01367 10.080078 6.01563-10.080078c6.185-9.49875 15.54023-14.248047 27.89648-14.248047 10.6775 0 19.28156 3.753672 25.85156 11.076172 6.36875 7.3225 9.53907 17.218828 9.53907 29.673828v60.941408h-24.14454V81.869141c0-12.46875-5.24453-18.798829-15.73828-18.798829-11.6025 0-17.41797 7.508516-17.41797 22.353516v32.375002H96.207031V85.423828c0-14.845-5.815468-22.353515-17.417969-22.353516-10.49375 0-15.740234 6.330079-15.740234 18.798829v59.148439H38.904297V80.076172c0-12.455 3.171016-22.351328 9.541015-29.673828 6.568751-7.3225 15.172813-11.076172 25.851563-11.076172z" /></symbol></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -43,7 +43,7 @@ export const fetchFilters = () => (dispatch, getState) => {
export const createFilterStatus = (params, onSuccess, onFail) => (dispatch, getState) => {
dispatch(createFilterStatusRequest());
api(getState).post(`/api/v1/filters/${params.filter_id}/statuses`, params).then(response => {
api(getState).post(`/api/v2/filters/${params.filter_id}/statuses`, params).then(response => {
dispatch(createFilterStatusSuccess(response.data));
if (onSuccess) onSuccess();
}).catch(error => {

View File

@ -3,13 +3,13 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Avatar from './avatar';
import DisplayName from './display_name';
import Permalink from './permalink';
import IconButton from './icon_button';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { me } from '../initial_state';
import RelativeTimestamp from './relative_timestamp';
import Skeleton from 'mastodon/components/skeleton';
import { Link } from 'react-router-dom';
const messages = defineMessages({
follow: { id: 'account.follow', defaultMessage: 'Follow' },
@ -140,11 +140,11 @@ class Account extends ImmutablePureComponent {
return (
<div className='account'>
<div className='account__wrapper'>
<Permalink key={account.get('id')} className='account__display-name' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}>
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
<div className='account__avatar-wrapper'><Avatar account={account} size={size} /></div>
{mute_expires_at}
<DisplayName account={account} />
</Permalink>
</Link>
<div className='account__relationship'>
{buttons}

View File

@ -50,7 +50,7 @@ export default class Trends extends React.PureComponent {
<Hashtag
key={hashtag.name}
name={hashtag.name}
href={`/admin/tags/${hashtag.id}`}
to={`/admin/tags/${hashtag.id}`}
people={hashtag.history[0].accounts * 1 + hashtag.history[1].accounts * 1}
uses={hashtag.history[0].uses * 1 + hashtag.history[1].uses * 1}
history={hashtag.history.reverse().map(day => day.uses)}

View File

@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
import { FormattedNumber } from 'react-intl';
import ShortNumber from 'mastodon/components/short_number';
import TransitionMotion from 'react-motion/lib/TransitionMotion';
import spring from 'react-motion/lib/spring';
import { reduceMotion } from 'mastodon/initial_state';
@ -51,7 +51,7 @@ export default class AnimatedNumber extends React.PureComponent {
const { direction } = this.state;
if (reduceMotion) {
return obfuscate ? obfuscatedCount(value) : <FormattedNumber value={value} />;
return obfuscate ? obfuscatedCount(value) : <ShortNumber value={value} />;
}
const styles = [{
@ -65,7 +65,7 @@ export default class AnimatedNumber extends React.PureComponent {
{items => (
<span className='animated-number'>
{items.map(({ key, data, style }) => (
<span key={key} style={{ position: (direction * style.y) > 0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}>{obfuscate ? obfuscatedCount(data) : <FormattedNumber value={data} />}</span>
<span key={key} style={{ position: (direction * style.y) > 0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}>{obfuscate ? obfuscatedCount(data) : <ShortNumber value={data} />}</span>
))}
</span>
)}

View File

@ -57,7 +57,7 @@ class ColumnHeader extends React.PureComponent {
}
handleTitleClick = () => {
this.props.onClick();
this.props.onClick?.();
}
handleMoveLeft = () => {
@ -152,7 +152,6 @@ class ColumnHeader extends React.PureComponent {
className={collapsibleButtonClassName}
title={formatMessage(collapsed ? messages.show : messages.hide)}
aria-label={formatMessage(collapsed ? messages.show : messages.hide)}
aria-pressed={collapsed ? 'false' : 'true'}
onClick={this.handleToggleClick}
>
<i className='icon-with-badge'>

View File

@ -4,7 +4,7 @@ import { Sparklines, SparklinesCurve } from 'react-sparklines';
import { FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Permalink from './permalink';
import { Link } from 'react-router-dom';
import ShortNumber from 'mastodon/components/short_number';
import Skeleton from 'mastodon/components/skeleton';
import classNames from 'classnames';
@ -53,7 +53,6 @@ export const accountsCountRenderer = (displayNumber, pluralReady) => (
export const ImmutableHashtag = ({ hashtag }) => (
<Hashtag
name={hashtag.get('name')}
href={hashtag.get('url')}
to={`/tags/${hashtag.get('name')}`}
people={hashtag.getIn(['history', 0, 'accounts']) * 1 + hashtag.getIn(['history', 1, 'accounts']) * 1}
history={hashtag.get('history').reverse().map((day) => day.get('uses')).toArray()}
@ -64,12 +63,12 @@ ImmutableHashtag.propTypes = {
hashtag: ImmutablePropTypes.map.isRequired,
};
const Hashtag = ({ name, href, to, people, uses, history, className, description, withGraph }) => (
const Hashtag = ({ name, to, people, uses, history, className, description, withGraph }) => (
<div className={classNames('trends__item', className)}>
<div className='trends__item__name'>
<Permalink href={href} to={to}>
<Link to={to}>
{name ? <React.Fragment>#<span>{name}</span></React.Fragment> : <Skeleton width={50} />}
</Permalink>
</Link>
{description ? (
<span>{description}</span>
@ -98,7 +97,6 @@ const Hashtag = ({ name, href, to, people, uses, history, className, description
Hashtag.propTypes = {
name: PropTypes.string,
href: PropTypes.string,
to: PropTypes.string,
people: PropTypes.number,
description: PropTypes.node,

View File

@ -14,7 +14,7 @@ export default class Icon extends React.PureComponent {
const { id, className, fixedWidth, ...other } = this.props;
return (
<i role='img' className={classNames('fa', `fa-${id}`, className, { 'fa-fw': fixedWidth })} {...other} />
<i className={classNames('fa', `fa-${id}`, className, { 'fa-fw': fixedWidth })} {...other} />
);
}

View File

@ -16,7 +16,6 @@ export default class IconButton extends React.PureComponent {
onKeyPress: PropTypes.func,
size: PropTypes.number,
active: PropTypes.bool,
pressed: PropTypes.bool,
expanded: PropTypes.bool,
style: PropTypes.object,
activeStyle: PropTypes.object,
@ -98,7 +97,6 @@ export default class IconButton extends React.PureComponent {
icon,
inverted,
overlay,
pressed,
tabIndex,
title,
counter,
@ -143,7 +141,6 @@ export default class IconButton extends React.PureComponent {
<button
type='button'
aria-label={title}
aria-pressed={pressed}
aria-expanded={expanded}
title={title}
className={classes}

View File

@ -1,40 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';
export default class Permalink extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
};
static propTypes = {
className: PropTypes.string,
href: PropTypes.string.isRequired,
to: PropTypes.string.isRequired,
children: PropTypes.node,
onInterceptClick: PropTypes.func,
};
handleClick = e => {
if (this.props.onInterceptClick && this.props.onInterceptClick()) {
e.preventDefault();
return;
}
if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.context.router.history.push(this.props.to);
}
}
render () {
const { href, children, className, onInterceptClick, ...other } = this.props;
return (
<a target='_blank' href={href} onClick={this.handleClick} {...other} className={`permalink${className ? ' ' + className : ''}`}>
{children}
</a>
);
}
}

View File

@ -378,7 +378,7 @@ class Status extends ImmutablePureComponent {
prepend = (
<div className='status__prepend'>
<div className='status__prepend-icon-wrapper'><Icon id='retweet' className='status__prepend-icon' fixedWidth /></div>
<FormattedMessage id='status.reblogged_by' defaultMessage='{name} boosted' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={status.getIn(['account', 'url'])} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
<FormattedMessage id='status.reblogged_by' defaultMessage='{name} boosted' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
</div>
);
@ -392,7 +392,7 @@ class Status extends ImmutablePureComponent {
prepend = (
<div className='status__prepend'>
<div className='status__prepend-icon-wrapper'><Icon id='reply' className='status__prepend-icon' fixedWidth /></div>
<FormattedMessage id='status.replied_to' defaultMessage='Replied to {name}' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={status.getIn(['account', 'url'])} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
<FormattedMessage id='status.replied_to' defaultMessage='Replied to {name}' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
</div>
);
}
@ -476,7 +476,7 @@ class Status extends ImmutablePureComponent {
</Bundle>
);
}
} else if (status.get('spoiler_text').length === 0 && status.get('card')) {
} else if (status.get('spoiler_text').length === 0 && status.get('card') && !this.props.muted) {
media = (
<Card
onOpenMedia={this.handleOpenMedia}
@ -511,12 +511,12 @@ class Status extends ImmutablePureComponent {
<div className={classNames('status', `status-${status.get('visibility')}`, { 'status-reply': !!status.get('in_reply_to_id'), muted: this.props.muted })} data-id={status.get('id')}>
<div className='status__info'>
<a onClick={this.handleClick} href={status.get('url')} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
<a onClick={this.handleClick} href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
<span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
<RelativeTimestamp timestamp={status.get('created_at')} />{status.get('edited_at') && <abbr title={intl.formatMessage(messages.edited, { date: intl.formatDate(status.get('edited_at'), { hour12: false, year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }) })}> *</abbr>}
</a>
<a onClick={this.handleAccountClick} href={status.getIn(['account', 'url'])} title={status.getIn(['account', 'acct'])} className='status__display-name' target='_blank' rel='noopener noreferrer'>
<a onClick={this.handleAccountClick} href={`/@${status.getIn(['account', 'acct'])}`} title={status.getIn(['account', 'acct'])} className='status__display-name' target='_blank' rel='noopener noreferrer'>
<div className='status__avatar'>
{statusAvatar}
</div>

View File

@ -45,6 +45,7 @@ const messages = defineMessages({
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
filter: { id: 'status.filter', defaultMessage: 'Filter this post' },
openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' },
});
const mapStateToProps = (state, { status }) => ({
@ -221,25 +222,10 @@ class StatusActionBar extends ImmutablePureComponent {
}
handleCopy = () => {
const url = this.props.status.get('url');
const textarea = document.createElement('textarea');
textarea.textContent = url;
textarea.style.position = 'fixed';
document.body.appendChild(textarea);
try {
textarea.select();
document.execCommand('copy');
} catch (e) {
} finally {
document.body.removeChild(textarea);
}
const url = this.props.status.get('url');
navigator.clipboard.writeText(url);
}
handleHideClick = () => {
this.props.onFilter();
}
@ -254,12 +240,17 @@ class StatusActionBar extends ImmutablePureComponent {
const mutingConversation = status.get('muted');
const account = status.get('account');
const writtenByMe = status.getIn(['account', 'id']) === me;
const isRemote = status.getIn(['account', 'username']) !== status.getIn(['account', 'acct']);
let menu = [];
menu.push({ text: intl.formatMessage(messages.open), action: this.handleOpen });
if (publicStatus) {
if (isRemote) {
menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: status.get('url') });
}
menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy });
menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
}
@ -361,8 +352,8 @@ class StatusActionBar extends ImmutablePureComponent {
return (
<div className='status__action-bar'>
<IconButton className='status__action-bar__button' title={replyTitle} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} onClick={this.handleReplyClick} counter={status.get('replies_count')} obfuscateCount />
<IconButton className={classNames('status__action-bar__button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} pressed={status.get('reblogged')} title={reblogTitle} icon='retweet' onClick={this.handleReblogClick} counter={withCounters ? status.get('reblogs_count') : undefined} />
<IconButton className='status__action-bar__button star-icon' animate active={status.get('favourited')} pressed={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
<IconButton className={classNames('status__action-bar__button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' onClick={this.handleReblogClick} counter={withCounters ? status.get('reblogs_count') : undefined} />
<IconButton className='status__action-bar__button star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
<IconButton className='status__action-bar__button bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' onClick={this.handleBookmarkClick} />
{shareButton}

View File

@ -2,13 +2,13 @@ import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { FormattedMessage, injectIntl } from 'react-intl';
import Permalink from './permalink';
import { Link } from 'react-router-dom';
import classnames from 'classnames';
import PollContainer from 'mastodon/containers/poll_container';
import Icon from 'mastodon/components/icon';
import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'mastodon/initial_state';
const MAX_HEIGHT = 642; // 20px * 32 (+ 2px padding at the top)
const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top)
class TranslateButton extends React.PureComponent {
@ -77,38 +77,45 @@ class StatusContent extends React.PureComponent {
return;
}
const { status, onCollapsedToggle } = this.props;
const links = node.querySelectorAll('a');
let link, mention;
for (var i = 0; i < links.length; ++i) {
let link = links[i];
link = links[i];
if (link.classList.contains('status-link')) {
continue;
}
link.classList.add('status-link');
let mention = this.props.status.get('mentions').find(item => link.href === item.get('url'));
mention = this.props.status.get('mentions').find(item => link.href === item.get('url'));
if (mention) {
link.addEventListener('click', this.onMentionClick.bind(this, mention), false);
link.setAttribute('title', mention.get('acct'));
link.setAttribute('href', `/@${mention.get('acct')}`);
} else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {
link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false);
link.setAttribute('href', `/tags/${link.text.slice(1)}`);
} else {
link.setAttribute('title', link.href);
link.classList.add('unhandled-link');
}
}
if (this.props.status.get('collapsed', null) === null) {
let collapsed =
this.props.collapsable
&& this.props.onClick
if (status.get('collapsed', null) === null && onCollapsedToggle) {
const { collapsable, onClick } = this.props;
const collapsed =
collapsable
&& onClick
&& node.clientHeight > MAX_HEIGHT
&& this.props.status.get('spoiler_text').length === 0;
&& status.get('spoiler_text').length === 0;
if(this.props.onCollapsedToggle) this.props.onCollapsedToggle(collapsed);
this.props.status.set('collapsed', collapsed);
onCollapsedToggle(collapsed);
}
}
@ -242,9 +249,9 @@ class StatusContent extends React.PureComponent {
let mentionsPlaceholder = '';
const mentionLinks = status.get('mentions').map(item => (
<Permalink to={`/@${item.get('acct')}`} href={item.get('url')} key={item.get('id')} className='mention'>
<Link to={`/@${item.get('acct')}`} key={item.get('id')} className='status-link mention'>
@<span>{item.get('username')}</span>
</Permalink>
</Link>
)).reduce((aggregate, item) => [...aggregate, item, ' '], []);
const toggleText = hidden ? <FormattedMessage id='status.show_more' defaultMessage='Show more' /> : <FormattedMessage id='status.show_less' defaultMessage='Show less' />;
@ -258,7 +265,7 @@ class StatusContent extends React.PureComponent {
<p style={{ marginBottom: hidden && status.get('mentions').isEmpty() ? '0px' : null }}>
<span dangerouslySetInnerHTML={spoilerContent} className='translate' lang={lang} />
{' '}
<button tabIndex='0' className={`status__content__spoiler-link ${hidden ? 'status__content__spoiler-link--show-more' : 'status__content__spoiler-link--show-less'}`} onClick={this.handleSpoilerClick}>{toggleText}</button>
<button type='button' className={`status__content__spoiler-link ${hidden ? 'status__content__spoiler-link--show-more' : 'status__content__spoiler-link--show-less'}`} onClick={this.handleSpoilerClick} aria-expanded={!hidden}>{toggleText}</button>
</p>
{mentionsPlaceholder}

View File

@ -1,62 +0,0 @@
import React, { Fragment } from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import PropTypes from 'prop-types';
import configureStore from '../store/configureStore';
import { hydrateStore } from '../actions/store';
import { IntlProvider, addLocaleData } from 'react-intl';
import { getLocale } from '../locales';
import PublicTimeline from '../features/standalone/public_timeline';
import HashtagTimeline from '../features/standalone/hashtag_timeline';
import ModalContainer from '../features/ui/containers/modal_container';
import initialState from '../initial_state';
const { localeData, messages } = getLocale();
addLocaleData(localeData);
const store = configureStore();
if (initialState) {
store.dispatch(hydrateStore(initialState));
}
export default class TimelineContainer extends React.PureComponent {
static propTypes = {
locale: PropTypes.string.isRequired,
hashtag: PropTypes.string,
local: PropTypes.bool,
};
static defaultProps = {
local: !initialState.settings.known_fediverse,
};
render () {
const { locale, hashtag, local } = this.props;
let timeline;
if (hashtag) {
timeline = <HashtagTimeline hashtag={hashtag} local={local} />;
} else {
timeline = <PublicTimeline local={local} />;
}
return (
<IntlProvider locale={locale} messages={messages}>
<Provider store={store}>
<Fragment>
{timeline}
{ReactDOM.createPortal(
<ModalContainer />,
document.getElementById('modal-container'),
)}
</Fragment>
</Provider>
</IntlProvider>
);
}
}

View File

@ -183,25 +183,18 @@ class About extends React.PureComponent {
<>
<p><FormattedMessage id='about.domain_blocks.preamble' defaultMessage='Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.' /></p>
<table className='about__domain-blocks'>
<thead>
<tr>
<th><FormattedMessage id='about.domain_blocks.domain' defaultMessage='Domain' /></th>
<th><FormattedMessage id='about.domain_blocks.severity' defaultMessage='Severity' /></th>
<th><FormattedMessage id='about.domain_blocks.comment' defaultMessage='Reason' /></th>
</tr>
</thead>
<div className='about__domain-blocks'>
{domainBlocks.get('items').map(block => (
<div className='about__domain-blocks__domain' key={block.get('domain')}>
<div className='about__domain-blocks__domain__header'>
<h6><span title={`SHA-256: ${block.get('digest')}`}>{block.get('domain')}</span></h6>
<span className='about__domain-blocks__domain__type' title={intl.formatMessage(severityMessages[block.get('severity')].explanation)}>{intl.formatMessage(severityMessages[block.get('severity')].title)}</span>
</div>
<tbody>
{domainBlocks.get('items').map(block => (
<tr key={block.get('domain')}>
<td><span title={`SHA-256: ${block.get('digest')}`}>{block.get('domain')}</span></td>
<td><span title={intl.formatMessage(severityMessages[block.get('severity')].explanation)}>{intl.formatMessage(severityMessages[block.get('severity')].title)}</span></td>
<td>{block.get('comment')}</td>
</tr>
))}
</tbody>
</table>
<p>{(block.get('comment') || '').length > 0 ? block.get('comment') : <FormattedMessage id='about.domain_blocks.no_reason_available' defaultMessage='Reason not available' />}</p>
</div>
))}
</div>
</>
) : (
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>

View File

@ -39,7 +39,6 @@ class FeaturedTags extends ImmutablePureComponent {
<Hashtag
key={featuredTag.get('name')}
name={featuredTag.get('name')}
href={featuredTag.get('url')}
to={`/@${account.get('acct')}/tagged/${featuredTag.get('name')}`}
uses={featuredTag.get('statuses_count') * 1}
withGraph={false}

View File

@ -53,6 +53,7 @@ const messages = defineMessages({
add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' },
admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },
languages: { id: 'account.languages', defaultMessage: 'Change subscribed languages' },
openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' },
});
const titleFromAccount = account => {
@ -97,6 +98,7 @@ class Header extends ImmutablePureComponent {
onEditAccountNote: PropTypes.func.isRequired,
onChangeLanguages: PropTypes.func.isRequired,
onInteractionModal: PropTypes.func.isRequired,
onOpenAvatar: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
domain: PropTypes.string.isRequired,
hidden: PropTypes.bool,
@ -140,6 +142,13 @@ class Header extends ImmutablePureComponent {
}
}
handleAvatarClick = e => {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.props.onOpenAvatar();
}
}
render () {
const { account, hidden, intl, domain } = this.props;
const { signedIn } = this.context.identity;
@ -148,7 +157,9 @@ class Header extends ImmutablePureComponent {
return null;
}
const suspended = account.get('suspended');
const suspended = account.get('suspended');
const isRemote = account.get('acct') !== account.get('username');
const remoteDomain = isRemote ? account.get('acct').split('@')[1] : null;
let info = [];
let actionBtn = '';
@ -200,6 +211,11 @@ class Header extends ImmutablePureComponent {
menu.push(null);
}
if (isRemote) {
menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: account.get('url') });
menu.push(null);
}
if ('share' in navigator) {
menu.push({ text: intl.formatMessage(messages.share, { name: account.get('username') }), action: this.handleShare });
menu.push(null);
@ -250,15 +266,13 @@ class Header extends ImmutablePureComponent {
menu.push({ text: intl.formatMessage(messages.report, { name: account.get('username') }), action: this.props.onReport });
}
if (signedIn && account.get('acct') !== account.get('username')) {
const domain = account.get('acct').split('@')[1];
if (signedIn && isRemote) {
menu.push(null);
if (account.getIn(['relationship', 'domain_blocking'])) {
menu.push({ text: intl.formatMessage(messages.unblockDomain, { domain }), action: this.props.onUnblockDomain });
menu.push({ text: intl.formatMessage(messages.unblockDomain, { domain: remoteDomain }), action: this.props.onUnblockDomain });
} else {
menu.push({ text: intl.formatMessage(messages.blockDomain, { domain }), action: this.props.onBlockDomain });
menu.push({ text: intl.formatMessage(messages.blockDomain, { domain: remoteDomain }), action: this.props.onBlockDomain });
}
}
@ -296,12 +310,10 @@ class Header extends ImmutablePureComponent {
<div className='account__header__bar'>
<div className='account__header__tabs'>
<a className='avatar' href={account.get('url')} rel='noopener noreferrer' target='_blank'>
<a className='avatar' href={account.get('avatar')} rel='noopener noreferrer' target='_blank' onClick={this.handleAvatarClick}>
<Avatar account={suspended || hidden ? undefined : account} size={90} />
</a>
<div className='spacer' />
{!suspended && (
<div className='account__header__tabs__buttons'>
{!hidden && (

View File

@ -129,7 +129,7 @@ export default class MediaItem extends ImmutablePureComponent {
return (
<div className='account-gallery__item' style={{ width, height }}>
<a className='media-gallery__item-thumbnail' href={status.get('url')} onClick={this.handleClick} title={title} target='_blank' rel='noopener noreferrer'>
<a className='media-gallery__item-thumbnail' href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} onClick={this.handleClick} title={title} target='_blank' rel='noopener noreferrer'>
<Blurhash
hash={attachment.get('blurhash')}
className={classNames('media-gallery__preview', { 'media-gallery__preview--hidden': visible && loaded })}

View File

@ -24,6 +24,7 @@ export default class Header extends ImmutablePureComponent {
onAddToList: PropTypes.func.isRequired,
onChangeLanguages: PropTypes.func.isRequired,
onInteractionModal: PropTypes.func.isRequired,
onOpenAvatar: PropTypes.func.isRequired,
hideTabs: PropTypes.bool,
domain: PropTypes.string.isRequired,
hidden: PropTypes.bool,
@ -101,6 +102,10 @@ export default class Header extends ImmutablePureComponent {
this.props.onInteractionModal(this.props.account);
}
handleOpenAvatar = () => {
this.props.onOpenAvatar(this.props.account);
}
render () {
const { account, hidden, hideTabs } = this.props;
@ -129,6 +134,7 @@ export default class Header extends ImmutablePureComponent {
onEditAccountNote={this.handleEditAccountNote}
onChangeLanguages={this.handleChangeLanguages}
onInteractionModal={this.handleInteractionModal}
onOpenAvatar={this.handleOpenAvatar}
domain={this.props.domain}
hidden={hidden}
/>

View File

@ -4,7 +4,7 @@ import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import AvatarOverlay from '../../../components/avatar_overlay';
import DisplayName from '../../../components/display_name';
import Permalink from 'mastodon/components/permalink';
import { Link } from 'react-router-dom';
export default class MovedNote extends ImmutablePureComponent {
@ -23,12 +23,12 @@ export default class MovedNote extends ImmutablePureComponent {
</div>
<div className='moved-account-banner__action'>
<Permalink href={to.get('url')} to={`/@${to.get('acct')}`} className='detailed-status__display-name'>
<Link to={`/@${to.get('acct')}`} className='detailed-status__display-name'>
<div className='detailed-status__display-avatar'><AvatarOverlay account={to} friend={from} /></div>
<DisplayName account={to} />
</Permalink>
</Link>
<Permalink href={to.get('url')} to={`/@${to.get('acct')}`} className='button'><FormattedMessage id='account.go_to_profile' defaultMessage='Go to profile' /></Permalink>
<Link to={`/@${to.get('acct')}`} className='button'><FormattedMessage id='account.go_to_profile' defaultMessage='Go to profile' /></Link>
</div>
</div>
);

View File

@ -152,6 +152,13 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
}));
},
onOpenAvatar (account) {
dispatch(openModal('IMAGE', {
src: account.get('avatar'),
alt: account.get('acct'),
}));
},
});
export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Header));

View File

@ -51,6 +51,15 @@ class LanguageDropdownMenu extends React.PureComponent {
document.addEventListener('click', this.handleDocumentClick, false);
document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
this.setState({ mounted: true });
// Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need
// to wait for a frame before focusing
requestAnimationFrame(() => {
if (this.node) {
const element = this.node.querySelector('input[type="search"]');
if (element) element.focus();
}
});
}
componentWillUnmount () {
@ -226,7 +235,7 @@ class LanguageDropdownMenu extends React.PureComponent {
// 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 />
<input type='search' value={searchValue} onChange={this.handleSearchChange} onKeyDown={this.handleSearchKeyDown} placeholder={intl.formatMessage(messages.search)} />
<button type='button' className='emoji-mart-search-icon' disabled={!isSearching} aria-label={intl.formatMessage(messages.clear)} onClick={this.handleClear}>{!isSearching ? loupeIcon : deleteIcon}</button>
</div>

View File

@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ActionBar from './action_bar';
import Avatar from '../../../components/avatar';
import Permalink from '../../../components/permalink';
import { Link } from 'react-router-dom';
import IconButton from '../../../components/icon_button';
import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
@ -19,15 +19,15 @@ export default class NavigationBar extends ImmutablePureComponent {
render () {
return (
<div className='navigation-bar'>
<Permalink href={this.props.account.get('url')} to={`/@${this.props.account.get('acct')}`}>
<Link to={`/@${this.props.account.get('acct')}`}>
<span style={{ display: 'none' }}>{this.props.account.get('acct')}</span>
<Avatar account={this.props.account} size={46} />
</Permalink>
</Link>
<div className='navigation-bar__profile'>
<Permalink href={this.props.account.get('url')} to={`/@${this.props.account.get('acct')}`}>
<Link to={`/@${this.props.account.get('acct')}`}>
<strong className='navigation-bar__profile-account'>@{this.props.account.get('acct')}</strong>
</Permalink>
</Link>
<a href='/settings/profile' className='navigation-bar__profile-edit'><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>
</div>

View File

@ -50,7 +50,7 @@ class ReplyIndicator extends ImmutablePureComponent {
<div className='reply-indicator__header'>
<div className='reply-indicator__cancel'><IconButton title={intl.formatMessage(messages.cancel)} icon='times' onClick={this.handleClick} inverted /></div>
<a href={status.getIn(['account', 'url'])} onClick={this.handleAccountClick} className='reply-indicator__display-name'>
<a href={`/@${status.getIn(['account', 'acct'])}`} onClick={this.handleAccountClick} className='reply-indicator__display-name'>
<div className='reply-indicator__display-avatar'><Avatar account={status.get('account')} size={24} /></div>
<DisplayName account={status.get('account')} />
</a>

View File

@ -17,7 +17,6 @@ export default class Upload extends ImmutablePureComponent {
media: ImmutablePropTypes.map.isRequired,
onUndo: PropTypes.func.isRequired,
onOpenFocalPoint: PropTypes.func.isRequired,
isEditingStatus: PropTypes.bool.isRequired,
};
handleUndoClick = e => {
@ -31,7 +30,7 @@ export default class Upload extends ImmutablePureComponent {
}
render () {
const { media, isEditingStatus } = this.props;
const { media } = this.props;
const focusX = media.getIn(['meta', 'focus', 'x']);
const focusY = media.getIn(['meta', 'focus', 'y']);
const x = ((focusX / 2) + .5) * 100;
@ -44,10 +43,10 @@ export default class Upload extends ImmutablePureComponent {
<div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}>
<div className='compose-form__upload__actions'>
<button type='button' className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>
{!isEditingStatus && (<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
{!!media.get('unattached') && (<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
</div>
{(media.get('description') || '').length === 0 && (
{(media.get('description') || '').length === 0 && !!media.get('unattached') && (
<div className='compose-form__upload__warning'>
<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='info-circle' /> <FormattedMessage id='upload_form.description_missing' defaultMessage='No description added' /></button>
</div>

View File

@ -5,7 +5,6 @@ import { submitCompose } from '../../../actions/compose';
const mapStateToProps = (state, { id }) => ({
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
isEditingStatus: state.getIn(['compose', 'id']) !== null,
});
const mapDispatchToProps = dispatch => ({

View File

@ -7,7 +7,7 @@ import AttachmentList from 'mastodon/components/attachment_list';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
import AvatarComposite from 'mastodon/components/avatar_composite';
import Permalink from 'mastodon/components/permalink';
import { Link } from 'react-router-dom';
import IconButton from 'mastodon/components/icon_button';
import RelativeTimestamp from 'mastodon/components/relative_timestamp';
import { HotKeys } from 'react-hotkeys';
@ -133,7 +133,7 @@ class Conversation extends ImmutablePureComponent {
menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDelete });
const names = accounts.map(a => <Permalink to={`/@${a.get('acct')}`} href={a.get('url')} key={a.get('id')} title={a.get('acct')}><bdi><strong className='display-name__html' dangerouslySetInnerHTML={{ __html: a.get('display_name_html') }} /></bdi></Permalink>).reduce((prev, cur) => [prev, ', ', cur]);
const names = accounts.map(a => <Link to={`/@${a.get('acct')}`} key={a.get('id')} title={a.get('acct')}><bdi><strong className='display-name__html' dangerouslySetInnerHTML={{ __html: a.get('display_name_html') }} /></bdi></Link>).reduce((prev, cur) => [prev, ', ', cur]);
const handlers = {
reply: this.handleReply,

View File

@ -6,7 +6,7 @@ import { connect } from 'react-redux';
import { makeGetAccount } from 'mastodon/selectors';
import Avatar from 'mastodon/components/avatar';
import DisplayName from 'mastodon/components/display_name';
import Permalink from 'mastodon/components/permalink';
import { Link } from 'react-router-dom';
import Button from 'mastodon/components/button';
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
import { autoPlayGif, me, unfollowModal } from 'mastodon/initial_state';
@ -169,7 +169,7 @@ class AccountCard extends ImmutablePureComponent {
return (
<div className='account-card'>
<Permalink href={account.get('url')} to={`/@${account.get('acct')}`} className='account-card__permalink'>
<Link to={`/@${account.get('acct')}`} className='account-card__permalink'>
<div className='account-card__header'>
<img
src={
@ -183,7 +183,7 @@ class AccountCard extends ImmutablePureComponent {
<div className='account-card__title__avatar'><Avatar account={account} size={56} /></div>
<DisplayName account={account} />
</div>
</Permalink>
</Link>
{account.get('note').length > 0 && (
<div

View File

@ -11,8 +11,8 @@ describe('emoji', () => {
});
it('works with unclosed tags', () => {
expect(emojify('hello>')).toEqual('hello>');
expect(emojify('<hello')).toEqual('<hello');
expect(emojify('hello>')).toEqual('hello&gt;');
expect(emojify('<hello')).toEqual('');
});
it('works with unclosed shortcodes', () => {
@ -22,23 +22,23 @@ describe('emoji', () => {
it('does unicode', () => {
expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual(
'<img draggable="false" class="emojione" alt="👩‍👩‍👦‍👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg" />');
'<img draggable="false" class="emojione" alt="👩‍👩‍👦‍👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg">');
expect(emojify('👨‍👩‍👧‍👧')).toEqual(
'<img draggable="false" class="emojione" alt="👨‍👩‍👧‍👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg" />');
expect(emojify('👩‍👩‍👦')).toEqual('<img draggable="false" class="emojione" alt="👩‍👩‍👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg" />');
'<img draggable="false" class="emojione" alt="👨‍👩‍👧‍👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg">');
expect(emojify('👩‍👩‍👦')).toEqual('<img draggable="false" class="emojione" alt="👩‍👩‍👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg">');
expect(emojify('\u2757')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" />');
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
});
it('does multiple unicode', () => {
expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" />');
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
expect(emojify('\u2757#\uFE0F\u20E3')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" />');
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" /> <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" />');
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).toEqual(
'foo <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" /> bar');
'foo <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> bar');
});
it('ignores unicode inside of tags', () => {
@ -46,16 +46,16 @@ describe('emoji', () => {
});
it('does multiple emoji properly (issue 5188)', () => {
expect(emojify('👌🌈💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg" /><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg" /><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg" />');
expect(emojify('👌 🌈 💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg" /> <img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg" /> <img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg" />');
expect(emojify('👌🌈💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
expect(emojify('👌 🌈 💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"> <img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"> <img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
});
it('does an emoji that has no shortcode', () => {
expect(emojify('👁‍🗨')).toEqual('<img draggable="false" class="emojione" alt="👁‍🗨" title="" src="/emoji/1f441-200d-1f5e8.svg" />');
expect(emojify('👁‍🗨')).toEqual('<img draggable="false" class="emojione" alt="👁‍🗨" title="" src="/emoji/1f441-200d-1f5e8.svg">');
});
it('does an emoji whose filename is irregular', () => {
expect(emojify('↙️')).toEqual('<img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg" />');
expect(emojify('↙️')).toEqual('<img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg">');
});
it('avoid emojifying on invisible text', () => {
@ -67,26 +67,26 @@ describe('emoji', () => {
it('avoid emojifying on invisible text with nested tags', () => {
expect(emojify('<span class="invisible">😄<span class="foo">bar</span>😴</span>😇'))
.toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg" />');
.toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
expect(emojify('<span class="invisible">😄<span class="invisible">😕</span>😴</span>😇'))
.toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg" />');
expect(emojify('<span class="invisible">😄<br/>😴</span>😇'))
.toEqual('<span class="invisible">😄<br/>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg" />');
.toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
expect(emojify('<span class="invisible">😄<br>😴</span>😇'))
.toEqual('<span class="invisible">😄<br>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
});
it('skips the textual presentation VS15 character', () => {
expect(emojify('✴︎')) // This is U+2734 EIGHT POINTED BLACK STAR then U+FE0E VARIATION SELECTOR-15
.toEqual('<img draggable="false" class="emojione" alt="✴" title=":eight_pointed_black_star:" src="/emoji/2734_border.svg" />');
.toEqual('<img draggable="false" class="emojione" alt="✴" title=":eight_pointed_black_star:" src="/emoji/2734_border.svg">');
});
it('does an simple emoji properly', () => {
expect(emojify('♀♂'))
.toEqual('<img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg" /><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg" />');
.toEqual('<img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg"><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg">');
});
it('does an emoji containing ZWJ properly', () => {
expect(emojify('💂‍♀️💂‍♂️'))
.toEqual('<img draggable="false" class="emojione" alt="💂\u200D♀" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg" /><img draggable="false" class="emojione" alt="💂\u200D♂" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg" />');
.toEqual('<img draggable="false" class="emojione" alt="💂\u200D♀" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg"><img draggable="false" class="emojione" alt="💂\u200D♂" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg">');
});
});
});

View File

@ -19,15 +19,26 @@ const emojiFilename = (filename) => {
return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
};
const emojify = (str, customEmojis = {}) => {
const tagCharsWithoutEmojis = '<&';
const tagCharsWithEmojis = Object.keys(customEmojis).length ? '<&:' : '<&';
let rtn = '', tagChars = tagCharsWithEmojis, invisible = 0;
const domParser = new DOMParser();
const emojifyTextNode = (node, customEmojis) => {
let str = node.textContent;
const fragment = new DocumentFragment();
for (;;) {
let match, i = 0, tag;
while (i < str.length && (tag = tagChars.indexOf(str[i])) === -1 && (invisible || !(match = trie.search(str.slice(i))))) {
i += str.codePointAt(i) < 65536 ? 1 : 2;
let match, i = 0;
if (customEmojis === null) {
while (i < str.length && !(match = trie.search(str.slice(i)))) {
i += str.codePointAt(i) < 65536 ? 1 : 2;
}
} else {
while (i < str.length && str[i] !== ':' && !(match = trie.search(str.slice(i)))) {
i += str.codePointAt(i) < 65536 ? 1 : 2;
}
}
let rend, replacement = '';
if (i === str.length) {
break;
@ -35,8 +46,6 @@ const emojify = (str, customEmojis = {}) => {
if (!(() => {
rend = str.indexOf(':', i + 1) + 1;
if (!rend) return false; // no pair of ':'
const lt = str.indexOf('<', i + 1);
if (!(lt === -1 || lt >= rend)) return false; // tag appeared before closing ':'
const shortname = str.slice(i, rend);
// now got a replacee as ':shortname:'
// if you want additional emoji handler, add statements below which set replacement and return true.
@ -47,29 +56,6 @@ const emojify = (str, customEmojis = {}) => {
}
return false;
})()) rend = ++i;
} else if (tag >= 0) { // <, &
rend = str.indexOf('>;'[tag], i + 1) + 1;
if (!rend) {
break;
}
if (tag === 0) {
if (invisible) {
if (str[i + 1] === '/') { // closing tag
if (!--invisible) {
tagChars = tagCharsWithEmojis;
}
} else if (str[rend - 2] !== '/') { // opening tag
invisible++;
}
} else {
if (str.startsWith('<span class="invisible">', i)) {
// avoid emojifying on invisible text
invisible = 1;
tagChars = tagCharsWithoutEmojis;
}
}
}
i = rend;
} else { // matched to unicode emoji
const { filename, shortCode } = unicodeMapping[match];
const title = shortCode ? `:${shortCode}:` : '';
@ -80,10 +66,43 @@ const emojify = (str, customEmojis = {}) => {
rend += 1;
}
}
rtn += str.slice(0, i) + replacement;
fragment.append(document.createTextNode(str.slice(0, i)));
if (replacement) {
fragment.append(domParser.parseFromString(replacement, 'text/html').documentElement.getElementsByTagName('img')[0]);
}
node.textContent = str.slice(0, i);
str = str.slice(rend);
}
return rtn + str;
fragment.append(document.createTextNode(str));
node.parentElement.replaceChild(fragment, node);
};
const emojifyNode = (node, customEmojis) => {
for (const child of node.childNodes) {
switch(child.nodeType) {
case Node.TEXT_NODE:
emojifyTextNode(child, customEmojis);
break;
case Node.ELEMENT_NODE:
if (!child.classList.contains('invisible'))
emojifyNode(child, customEmojis);
break;
}
}
};
const emojify = (str, customEmojis = {}) => {
const wrapper = document.createElement('div');
wrapper.innerHTML = str;
if (!Object.keys(customEmojis).length)
customEmojis = null;
emojifyNode(wrapper, customEmojis);
return wrapper.innerHTML;
};
export default emojify;

View File

@ -6,7 +6,7 @@ import { connect } from 'react-redux';
import { makeGetAccount } from 'mastodon/selectors';
import Avatar from 'mastodon/components/avatar';
import DisplayName from 'mastodon/components/display_name';
import Permalink from 'mastodon/components/permalink';
import { Link } from 'react-router-dom';
import IconButton from 'mastodon/components/icon_button';
import { injectIntl, defineMessages } from 'react-intl';
import { followAccount, unfollowAccount } from 'mastodon/actions/accounts';
@ -66,13 +66,13 @@ class Account extends ImmutablePureComponent {
return (
<div className='account follow-recommendations-account'>
<div className='account__wrapper'>
<Permalink className='account__display-name account__display-name--with-note' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}>
<Link className='account__display-name account__display-name--with-note' title={account.get('acct')} to={`/@${account.get('acct')}`}>
<div className='account__avatar-wrapper'><Avatar account={account} size={36} /></div>
<DisplayName account={account} />
<div className='account__note'>{getFirstSentence(account.get('note_plain'))}</div>
</Permalink>
</Link>
<div className='account__relationship'>
{button}

View File

@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import Permalink from '../../../components/permalink';
import { Link } from 'react-router-dom';
import Avatar from '../../../components/avatar';
import DisplayName from '../../../components/display_name';
import IconButton from '../../../components/icon_button';
@ -30,10 +30,10 @@ class AccountAuthorize extends ImmutablePureComponent {
return (
<div className='account-authorize__wrapper'>
<div className='account-authorize'>
<Permalink href={account.get('url')} to={`/@${account.get('acct')}`} className='detailed-status__display-name'>
<Link to={`/@${account.get('acct')}`} className='detailed-status__display-name'>
<div className='account-authorize__avatar'><Avatar account={account} size={48} /></div>
<DisplayName account={account} />
</Permalink>
</Link>
<div className='account__header__content translate' dangerouslySetInnerHTML={content} />
</div>

View File

@ -194,7 +194,7 @@ class HashtagTimeline extends React.PureComponent {
const following = tag.get('following');
followButton = (
<button className={classNames('column-header__button')} onClick={this.handleFollow} disabled={!signedIn} title={intl.formatMessage(following ? messages.unfollowHashtag : messages.followHashtag)} aria-label={intl.formatMessage(following ? messages.unfollowHashtag : messages.followHashtag)} aria-pressed={following ? 'true' : 'false'}>
<button className={classNames('column-header__button')} onClick={this.handleFollow} disabled={!signedIn} title={intl.formatMessage(following ? messages.unfollowHashtag : messages.followHashtag)} aria-label={intl.formatMessage(following ? messages.unfollowHashtag : messages.followHashtag)}>
<Icon id={following ? 'user-times' : 'user-plus'} fixedWidth className='column-header__icon' />
</button>
);

View File

@ -130,7 +130,6 @@ class HomeTimeline extends React.PureComponent {
className={classNames('column-header__button', { 'active': showAnnouncements })}
title={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}
aria-label={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}
aria-pressed={showAnnouncements ? 'true' : 'false'}
onClick={this.handleToggleAnnouncementsClick}
>
<IconWithBadge id='bullhorn' count={unreadAnnouncements} />

View File

@ -150,7 +150,7 @@ class InteractionModal extends React.PureComponent {
<div className='interaction-modal__choices__choice'>
<h3><FormattedMessage id='interaction_modal.on_another_server' defaultMessage='On a different server' /></h3>
<p><FormattedMessage id='interaction_modal.other_server_instructions' defaultMessage='Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.' /></p>
<p><FormattedMessage id='interaction_modal.other_server_instructions' defaultMessage='Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.' /></p>
<Copypaste value={url} />
</div>
</div>

View File

@ -21,7 +21,7 @@ export default class ColumnSettings extends React.PureComponent {
onRequestNotificationPermission: PropTypes.func,
alertsEnabled: PropTypes.bool,
browserSupport: PropTypes.bool,
browserPermission: PropTypes.bool,
browserPermission: PropTypes.string,
};
onPushChange = (path, checked) => {

View File

@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Avatar from 'mastodon/components/avatar';
import DisplayName from 'mastodon/components/display_name';
import Permalink from 'mastodon/components/permalink';
import { Link } from 'react-router-dom';
import IconButton from 'mastodon/components/icon_button';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
@ -42,10 +42,10 @@ class FollowRequest extends ImmutablePureComponent {
return (
<div className='account'>
<div className='account__wrapper'>
<Permalink key={account.get('id')} className='account__display-name' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}>
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
<div className='account__avatar-wrapper'><Avatar account={account} size={36} /></div>
<DisplayName account={account} />
</Permalink>
</Link>
<div className='account__relationship'>
<IconButton title={intl.formatMessage(messages.authorize)} icon='check' onClick={onAuthorize} />

View File

@ -10,7 +10,7 @@ import AccountContainer from 'mastodon/containers/account_container';
import Report from './report';
import FollowRequestContainer from '../containers/follow_request_container';
import Icon from 'mastodon/components/icon';
import Permalink from 'mastodon/components/permalink';
import { Link } from 'react-router-dom';
import classNames from 'classnames';
const messages = defineMessages({
@ -378,7 +378,7 @@ class Notification extends ImmutablePureComponent {
const targetAccount = report.get('target_account');
const targetDisplayNameHtml = { __html: targetAccount.get('display_name_html') };
const targetLink = <bdi><Permalink className='notification__display-name' href={targetAccount.get('url')} title={targetAccount.get('acct')} to={`/@${targetAccount.get('acct')}`} dangerouslySetInnerHTML={targetDisplayNameHtml} /></bdi>;
const targetLink = <bdi><Link className='notification__display-name' title={targetAccount.get('acct')} to={`/@${targetAccount.get('acct')}`} dangerouslySetInnerHTML={targetDisplayNameHtml} /></bdi>;
return (
<HotKeys handlers={this.getHandlers()}>
@ -403,7 +403,7 @@ class Notification extends ImmutablePureComponent {
const { notification } = this.props;
const account = notification.get('account');
const displayNameHtml = { __html: account.get('display_name_html') };
const link = <bdi><Permalink className='notification__display-name' href={account.get('url')} title={account.get('acct')} to={`/@${account.get('acct')}`} dangerouslySetInnerHTML={displayNameHtml} /></bdi>;
const link = <bdi><Link className='notification__display-name' href={`/@${account.get('acct')}`} title={account.get('acct')} to={`/@${account.get('acct')}`} dangerouslySetInnerHTML={displayNameHtml} /></bdi>;
switch(notification.get('type')) {
case 'follow':

View File

@ -182,9 +182,9 @@ class Footer extends ImmutablePureComponent {
return (
<div className='picture-in-picture__footer'>
<IconButton className='status__action-bar-button' title={replyTitle} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} onClick={this.handleReplyClick} counter={status.get('replies_count')} obfuscateCount />
<IconButton className={classNames('status__action-bar-button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} pressed={status.get('reblogged')} title={reblogTitle} icon='retweet' onClick={this.handleReblogClick} counter={status.get('reblogs_count')} />
<IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} pressed={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} counter={status.get('favourites_count')} />
{withOpenButton && <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.open)} icon='external-link' onClick={this.handleOpenClick} href={status.get('url')} />}
<IconButton className={classNames('status__action-bar-button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' onClick={this.handleReblogClick} counter={status.get('reblogs_count')} />
<IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} counter={status.get('favourites_count')} />
{withOpenButton && <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.open)} icon='external-link' onClick={this.handleOpenClick} href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} />}
</div>
);
}

View File

@ -39,6 +39,7 @@ const messages = defineMessages({
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' },
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' },
});
const mapStateToProps = (state, { status }) => ({
@ -174,22 +175,8 @@ class ActionBar extends React.PureComponent {
}
handleCopy = () => {
const url = this.props.status.get('url');
const textarea = document.createElement('textarea');
textarea.textContent = url;
textarea.style.position = 'fixed';
document.body.appendChild(textarea);
try {
textarea.select();
document.execCommand('copy');
} catch (e) {
} finally {
document.body.removeChild(textarea);
}
const url = this.props.status.get('url');
navigator.clipboard.writeText(url);
}
render () {
@ -201,10 +188,15 @@ class ActionBar extends React.PureComponent {
const mutingConversation = status.get('muted');
const account = status.get('account');
const writtenByMe = status.getIn(['account', 'id']) === me;
const isRemote = status.getIn(['account', 'username']) !== status.getIn(['account', 'acct']);
let menu = [];
if (publicStatus) {
if (isRemote) {
menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: status.get('url') });
}
menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy });
menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
menu.push(null);

View File

@ -261,7 +261,7 @@ class DetailedStatus extends ImmutablePureComponent {
return (
<div style={outerStyle}>
<div ref={this.setRef} className={classNames('detailed-status', `detailed-status-${status.get('visibility')}`, { compact })}>
<a href={status.getIn(['account', 'url'])} onClick={this.handleAccountClick} className='detailed-status__display-name'>
<a href={`/@${status.getIn(['account', 'acct'])}`} onClick={this.handleAccountClick} className='detailed-status__display-name'>
<div className='detailed-status__display-avatar'><Avatar account={status.get('account')} size={46} /></div>
<DisplayName account={status.get('account')} localDomain={this.props.domain} />
</a>
@ -276,7 +276,7 @@ class DetailedStatus extends ImmutablePureComponent {
{media}
<div className='detailed-status__meta'>
<a className='detailed-status__datetime' href={status.get('url')} target='_blank' rel='noopener noreferrer'>
<a className='detailed-status__datetime' href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} target='_blank' rel='noopener noreferrer'>
<FormattedDate value={new Date(status.get('created_at'))} hour12={false} year='numeric' month='short' day='2-digit' hour='2-digit' minute='2-digit' />
</a>{edited}{visibilityLink}{applicationLink}{reblogLink} · {favouriteLink}
</div>

View File

@ -619,7 +619,7 @@ class Status extends ImmutablePureComponent {
showBackButton
multiColumn={multiColumn}
extraButton={(
<button type='button' className='column-header__button' title={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} aria-label={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} onClick={this.handleToggleAll} aria-pressed={status.get('hidden') ? 'false' : 'true'}><Icon id={status.get('hidden') ? 'eye-slash' : 'eye'} /></button>
<button type='button' className='column-header__button' title={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} aria-label={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} onClick={this.handleToggleAll}><Icon id={status.get('hidden') ? 'eye-slash' : 'eye'} /></button>
)}
/>

View File

@ -98,12 +98,12 @@ class BoostModal extends ImmutablePureComponent {
<div className='boost-modal__container'>
<div className={classNames('status', `status-${status.get('visibility')}`, 'light')}>
<div className='status__info'>
<a href={status.get('url')} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
<a href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
<span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
<RelativeTimestamp timestamp={status.get('created_at')} />
</a>
<a onClick={this.handleAccountClick} href={status.getIn(['account', 'url'])} className='status__display-name'>
<a onClick={this.handleAccountClick} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name'>
<div className='status__avatar'>
<Avatar account={status.get('account')} size={48} />
</div>

View File

@ -176,14 +176,14 @@ class FocalPointModal extends ImmutablePureComponent {
handleKeyDown = (e) => {
if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) {
e.preventDefault();
e.stopPropagation();
this.props.onChangeDescription(e.target.value);
this.handleSubmit();
this.handleSubmit(e);
}
}
handleSubmit = () => {
handleSubmit = (e) => {
e.preventDefault();
e.stopPropagation();
this.props.onSave(this.props.description, this.props.focusX, this.props.focusY);
}
@ -313,7 +313,7 @@ class FocalPointModal extends ImmutablePureComponent {
</div>
<div className='report-modal__container'>
<div className='report-modal__comment'>
<form className='report-modal__comment' onSubmit={this.handleSubmit} >
{focals && <p><FormattedMessage id='upload_modal.hint' defaultMessage='Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.' /></p>}
{thumbnailable && (
@ -361,12 +361,23 @@ class FocalPointModal extends ImmutablePureComponent {
</div>
<div className='setting-text__toolbar'>
<button disabled={detecting || media.get('type') !== 'image' || is_changing_upload} className='link-button' onClick={this.handleTextDetection}><FormattedMessage id='upload_modal.detect_text' defaultMessage='Detect text from picture' /></button>
<button
type='button'
disabled={detecting || media.get('type') !== 'image' || is_changing_upload}
className='link-button'
onClick={this.handleTextDetection}
>
<FormattedMessage id='upload_modal.detect_text' defaultMessage='Detect text from picture' />
</button>
<CharacterCounter max={1500} text={detecting ? '' : description} />
</div>
<Button disabled={!dirty || detecting || isUploadingThumbnail || length(description) > 1500 || is_changing_upload} text={intl.formatMessage(is_changing_upload ? messages.applying : messages.apply)} onClick={this.handleSubmit} />
</div>
<Button
type='submit'
disabled={!dirty || detecting || isUploadingThumbnail || length(description) > 1500 || is_changing_upload}
text={intl.formatMessage(is_changing_upload ? messages.applying : messages.apply)}
/>
</form>
<div className='focal-point-modal__content'>
{focals && (

View File

@ -4,16 +4,15 @@ import { Link, withRouter } from 'react-router-dom';
import { FormattedMessage } from 'react-intl';
import { registrationsOpen, me } from 'mastodon/initial_state';
import Avatar from 'mastodon/components/avatar';
import Permalink from 'mastodon/components/permalink';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
const Account = connect(state => ({
account: state.getIn(['accounts', me]),
}))(({ account }) => (
<Permalink href={account.get('url')} to={`/@${account.get('acct')}`} title={account.get('acct')}>
<Link to={`/@${account.get('acct')}`} title={account.get('acct')}>
<Avatar account={account} size={35} />
</Permalink>
</Link>
));
export default @withRouter

View File

@ -0,0 +1,59 @@
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { defineMessages, injectIntl } from 'react-intl';
import IconButton from 'mastodon/components/icon_button';
import ImageLoader from './image_loader';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
});
export default @injectIntl
class ImageModal extends React.PureComponent {
static propTypes = {
src: PropTypes.string.isRequired,
alt: PropTypes.string.isRequired,
onClose: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
};
state = {
navigationHidden: false,
};
toggleNavigation = () => {
this.setState(prevState => ({
navigationHidden: !prevState.navigationHidden,
}));
};
render () {
const { intl, src, alt, onClose } = this.props;
const { navigationHidden } = this.state;
const navigationClassName = classNames('media-modal__navigation', {
'media-modal__navigation--hidden': navigationHidden,
});
return (
<div className='modal-root__modal media-modal'>
<div className='media-modal__closer' role='presentation' onClick={onClose} >
<ImageLoader
src={src}
width={400}
height={400}
alt={alt}
onClick={this.toggleNavigation}
/>
</div>
<div className={navigationClassName}>
<IconButton className='media-modal__close' title={intl.formatMessage(messages.close)} icon='times' onClick={onClose} size={40} />
</div>
</div>
);
}
}

View File

@ -12,6 +12,7 @@ import BoostModal from './boost_modal';
import AudioModal from './audio_modal';
import ConfirmationModal from './confirmation_modal';
import FocalPointModal from './focal_point_modal';
import ImageModal from './image_modal';
import {
MuteModal,
BlockModal,
@ -31,6 +32,7 @@ const MODAL_COMPONENTS = {
'MEDIA': () => Promise.resolve({ default: MediaModal }),
'VIDEO': () => Promise.resolve({ default: VideoModal }),
'AUDIO': () => Promise.resolve({ default: AudioModal }),
'IMAGE': () => Promise.resolve({ default: ImageModal }),
'BOOST': () => Promise.resolve({ default: BoostModal }),
'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }),
'MUTE': MuteModal,

View File

@ -290,7 +290,7 @@ class UI extends React.PureComponent {
this.dragTargets.push(e.target);
}
if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore) {
if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore && this.context.identity.signedIn) {
this.setState({ draggingOver: true });
}
}
@ -318,7 +318,7 @@ class UI extends React.PureComponent {
this.setState({ draggingOver: false });
this.dragTargets = [];
if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore) {
if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore && this.context.identity.signedIn) {
this.props.dispatch(uploadCompose(e.dataTransfer.files));
}
}

View File

@ -1,17 +1,15 @@
{
"about.blocks": "Gehodereerde bedieners",
"about.blocks": "Gemodereerde bedieners",
"about.contact": "Kontak:",
"about.disclaimer": "Mastodon is gratis, oop-bron sagteware, en 'n handelsmerk van Mastodon gGmbH.",
"about.domain_blocks.comment": "Rede",
"about.domain_blocks.domain": "Domein",
"about.domain_blocks.no_reason_available": "Rede nie beskikbaar nie",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Ernstigheid",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.silenced.title": "Beperk",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Opgeskort",
"about.not_available": "Hierdie informasie is nie beskikbaar gemaak op hierdie bediener nie.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.powered_by": "Gedesentraliseerde sosiale media bekragtig deur {mastodon}",
"about.rules": "Bediener reëls",
"account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Voeg by of verwyder van lyste",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "Die gebruiker volg nie tans iemand nie.",
"account.follows_you": "Volg jou",
"account.go_to_profile": "Gaan na profiel",
"account.hide_reblogs": "Versteek hupstoot vanaf @{name}",
"account.joined_short": "Aangesluit",
"account.languages": "Change subscribed languages",
@ -46,10 +45,11 @@
"account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.",
"account.media": "Media",
"account.mention": "Noem @{name}",
"account.moved_to": "{name} is geskuif na:",
"account.moved_to": "{name} het aangedui dat hul nuwe rekening die volgende is:",
"account.mute": "Demp @{name}",
"account.mute_notifications": "Demp kennisgewings van @{name}",
"account.muted": "Gedemp",
"account.open_original_page": "Maak oorspronklike blad oop",
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.report": "Rapporteer @{name}",
@ -69,11 +69,11 @@
"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": "Gemiddeld",
"admin.dashboard.retention.cohort": "Sign-up month",
"admin.dashboard.retention.cohort": "Registrasie-maand",
"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.rate_limited.title": "Tempo-beperk",
"alert.unexpected.message": "'n Onverwagte fout het voorgekom.",
"alert.unexpected.title": "Oeps!",
"announcement.announcement": "Aankondiging",
"attachments_list.unprocessed": "(unprocessed)",
@ -89,14 +89,14 @@
"bundle_column_error.return": "Gaan terug huistoe",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Close",
"bundle_modal_error.close": "Maak toe",
"bundle_modal_error.message": "Iets het verkeerd gegaan terwyl hierdie komponent besig was om te laai.",
"bundle_modal_error.retry": "Probeer weer",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"closed_registrations_modal.find_another_server": "Vind 'n ander bediener",
"closed_registrations_modal.preamble": "Mastodon is gedesentraliseerd, so ongeag van waar jou rekening geskep word, jy sal in staat wees enige iemand op hierdie bediener te volg en interaksie te he. Jy kan dit ook self 'n bediener bestuur!",
"closed_registrations_modal.title": "Aanteken by Mastodon",
"column.about": "Aangaande",
"column.blocks": "Geblokkeerde gebruikers",
"column.bookmarks": "Boekmerke",
@ -128,7 +128,7 @@
"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 sensitiewe 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": "Jou rekening is nie {locked}. Enigeeen kan jou volg om jou slegs-volgeling plasings te sien.",
"compose_form.lock_disclaimer.lock": "gesluit",
"compose_form.placeholder": "What is on your mind?",
"compose_form.poll.add_option": "Voeg 'n keuse by",
@ -145,42 +145,44 @@
"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.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.delete.confirm": "Delete",
"compose_form.spoiler_placeholder": "Skryf jou waarskuwing hier",
"confirmation_modal.cancel": "Kanselleer",
"confirmations.block.block_and_report": "Block & Rapporteer",
"confirmations.block.confirm": "Blokeer",
"confirmations.block.message": "Is jy seker dat jy {name} wil blok?",
"confirmations.cancel_follow_request.confirm": "Trek aanvaag terug",
"confirmations.cancel_follow_request.message": "Is jy seker dat jy jou aanvraag om {name} te volg, terug wil trek?",
"confirmations.delete.confirm": "Wis uit",
"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.delete_list.confirm": "Wis uit",
"confirmations.delete_list.message": "Is jy seker dat jy hierdie lys permanent wil uitwis?",
"confirmations.discard_edit_media.confirm": "Verwerp",
"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.logout.confirm": "Teken Uit",
"confirmations.logout.message": "Is jy seker jy wil uit teken?",
"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.confirm": "Reageer",
"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}",
"conversation.mark_as_read": "Merk as gelees",
"conversation.open": "Besigtig gesprek",
"conversation.with": "Met {names}",
"copypaste.copied": "Copied",
"copypaste.copy": "Copy",
"directory.federated": "From known fediverse",
"directory.local": "From {domain} only",
"directory.federated": "Vanaf bekende fediverse",
"directory.local": "Slegs vanaf {domain}",
"directory.new_arrivals": "New arrivals",
"directory.recently_active": "Recently active",
"disabled_account_banner.account_settings": "Rekening instellings",
"disabled_account_banner.text": "Jou rekening {disabledAccount} is tans onaktief.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -200,8 +202,8 @@
"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.search": "Soek...",
"emoji_button.search_results": "Soek resultate",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_suspended": "Account suspended",
@ -209,21 +211,21 @@
"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.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.community": "Die plaaslike tydlyn is leeg. Skryf iets vir die publiek om die bal aan die rol te kry!",
"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.",
"empty_column.favourites": "No one has favourited this toot 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.follow_requests": "Jy het nog geen volg versoeke nie. Wanneer jy een ontvang, sal dit hier vertoon.",
"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.lists": "Jy het nog geen lyste nie. Wanneer jy een skep, sal dit hier vertoon.",
"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.notifications": "Jy het nog geen kennisgewings nie. Wanneer ander mense interaksie het met jou, sal dit hier vertoon.",
"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.",
@ -231,7 +233,7 @@
"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.search_results": "Soek resultate",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.trending_links": "News",
@ -249,22 +251,22 @@
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "expired",
"filter_modal.select_filter.prompt_new": "New category: {name}",
"filter_modal.select_filter.search": "Search or create",
"filter_modal.select_filter.search": "Soek of skep",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"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_recommendations.lead": "Plasings van persone wie jy volg sal in chronologiese volgorde op jou tuis voer vertoon. Jy kan enige tyd ophou om persone te volg en sal dan nie plasings ontvang nie!",
"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.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.about": "Aangaande",
"footer.directory": "Profielgids",
"footer.get_app": "Kry die Toep",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.keyboard_shortcuts": "Sleutelbord kortpaaie",
"footer.privacy_policy": "Privaatheidsbeleid",
"footer.source_code": "View source code",
"generic.saved": "Saved",
"getting_started.heading": "Getting started",
@ -287,15 +289,15 @@
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy reageer op hierdie plasing.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Omdat Mastodon gedesentraliseerd is, kan jy jou bestaande rekening wat by 'n ander Mastodon bediener of versoenbare platform gehuisves is gebruik indien jy nie 'n rekening hier het nie.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"interaction_modal.title.reply": "Reageer op {name} se plasing",
"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}}",
@ -304,7 +306,7 @@
"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.description": "Beskrywing",
"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",
@ -323,12 +325,12 @@
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.reply": "Reageer op plasing",
"keyboard_shortcuts.requests": "to open follow requests list",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.spoilers": "Wys/versteek IW veld",
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_hidden": "Wys/versteek teks agter IW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
@ -339,7 +341,7 @@
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"limited_account_hint.action": "Vertoon profiel in elkgeval",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"limited_account_hint.title": "Hierdie profiel is deur moderators van {domain} versteek.",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
@ -351,38 +353,39 @@
"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",
"lists.search": "Soek tussen mense wat jy volg",
"lists.subheading": "Jou lyste",
"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",
"moved_to_account_banner.text": "Jou rekening {disabledAccount} is tans onaktief omdat jy na {movedToAccount} verhuis het.",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite",
"navigation_bar.about": "About",
"navigation_bar.about": "Aangaande",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.bookmarks": "Boekmerke",
"navigation_bar.community_timeline": "Plaaslike tydlyn",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direkte boodskappe",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.edit_profile": "Redigeer profiel",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.favourites": "Gunstelinge",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.logout": "Teken Uit",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.search": "Search",
"navigation_bar.preferences": "Voorkeure",
"navigation_bar.public_timeline": "Gefedereerde tydlyn",
"navigation_bar.search": "Soek",
"navigation_bar.security": "Security",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
@ -401,7 +404,7 @@
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
"notifications.column_settings.favourite": "Gunstelinge:",
"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",
@ -409,23 +412,23 @@
"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.push": "Stoot kennisgewings",
"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.unread_notifications.category": "Unread notifications",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.unread_notifications.highlight": "Beklemtoon ongeleesde kennisgewings",
"notifications.column_settings.update": "Edits:",
"notifications.filter.all": "All",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favourites",
"notifications.filter.favourites": "Gunstelinge",
"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.group": "{count} kennisgewings",
"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",
@ -452,8 +455,8 @@
"privacy.public.short": "Public",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Unlisted",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"privacy_policy.last_updated": "Laas opdateer om {date}",
"privacy_policy.title": "Privaatheidsbeleid",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
@ -468,7 +471,7 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "today",
"reply_indicator.cancel": "Cancel",
"reply_indicator.cancel": "Kanselleer",
"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",
@ -511,25 +514,25 @@
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Search",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "Advanced search format",
"search.placeholder": "Soek",
"search.search_or_paste": "Soek of plak URL",
"search_popout.search_format": "Gevorderde soek formaat",
"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": "hits-etiket",
"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_popout.tips.text": "Eenvoudige teks bring name, gebruiker name en hits-etikette wat ooreenstem, terug",
"search_popout.tips.user": "gebruiker",
"search_results.accounts": "Mense",
"search_results.all": "Alles",
"search_results.hashtags": "Hits-etiket",
"search_results.nothing_found": "Kon niks vind vir hierdie soek terme nie",
"search_results.statuses": "Toots",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
"search_results.title": "Search for {q}",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"search_results.title": "Soek vir {q}",
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultate}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
"server_banner.active_users": "active users",
"server_banner.administered_by": "Administered by:",
"server_banner.administered_by": "Administrasie deur:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
"server_banner.learn_more": "Learn more",
"server_banner.server_stats": "Server stats:",
@ -573,10 +576,10 @@
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
"status.replied_to": "Replied to {name}",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.reply": "Reageer",
"status.replyAll": "Reageer in garing",
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.sensitive_warning": "Sensitiewe inhoud",
"status.share": "Share",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Show less",
@ -594,10 +597,10 @@
"subscribed_languages.target": "Change subscribed languages for {target}",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.federated_timeline": "Gefedereerde",
"tabs_bar.home": "Home",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.local_timeline": "Plaaslik",
"tabs_bar.notifications": "Kennisgewings",
"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",

View File

@ -1,27 +1,25 @@
{
"about.blocks": "خوادم تحت الإشراف",
"about.contact": "اتصل بـ:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "السبب",
"about.domain_blocks.domain": "النطاق",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.contact": "للاتصال:",
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
"about.domain_blocks.no_reason_available": "السبب غير متوفر",
"about.domain_blocks.preamble": "يسمح لك ماستدون عموماً بعرض المحتوى من المستخدمين من أي خادم آخر في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم بالذات.",
"about.domain_blocks.silenced.explanation": "عموماً، لن ترى ملفات التعريف والمحتوى من هذا الخادم، إلا إذا كنت تبحث عنه بشكل صريح أو تختار أن تتابعه.",
"about.domain_blocks.silenced.title": "تم كتمه",
"about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.",
"about.domain_blocks.suspended.title": "مُعلّق",
"about.not_available": "لم يتم توفير هذه المعلومات على هذا الخادم.",
"about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}",
"about.rules": "قواعد الخادم",
"account.account_note_header": "مُلاحظة",
"account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة",
"account.badges.bot": "روبوت",
"account.badges.bot": "بوت",
"account.badges.group": "فريق",
"account.block": "احجب @{name}",
"account.block_domain": "حظر اسم النِّطاق {domain}",
"account.blocked": "محظور",
"account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي",
"account.cancel_follow_request": "Withdraw follow request",
"account.cancel_follow_request": "إلغاء طلب المتابعة",
"account.direct": "مراسلة @{name} بشكل مباشر",
"account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}",
"account.domain_blocked": "اسم النِّطاق محظور",
@ -39,22 +37,24 @@
"account.following_counter": "{count, plural, zero{لا يُتابِع} one {يُتابِعُ واحد} two{يُتابِعُ اِثنان} few{يُتابِعُ {counter}} many{يُتابِعُ {counter}} other {يُتابِعُ {counter}}}",
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
"account.follows_you": "يُتابِعُك",
"account.go_to_profile": "اذهب إلى الملف الشخصي",
"account.hide_reblogs": "إخفاء مشاركات @{name}",
"account.joined_short": "انضم في",
"account.languages": "تغيير اللغات المشترَك فيها",
"account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}",
"account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.",
"account.media": "وسائط",
"account.mention": "ذِكر @{name}",
"account.moved_to": "لقد انتقل {name} إلى:",
"account.mute": "كَتم @{name}",
"account.mention": "أذكُر @{name}",
"account.moved_to": "أشار {name} إلى أن حسابه الجديد الآن:",
"account.mute": "أكتم @{name}",
"account.mute_notifications": "كَتم الإشعارات من @{name}",
"account.muted": "مَكتوم",
"account.open_original_page": "افتح الصفحة الأصلية",
"account.posts": "منشورات",
"account.posts_with_replies": "المنشورات والرُدود",
"account.report": "الإبلاغ عن @{name}",
"account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة",
"account.share": "مُشاركة الملف الشخصي لـ @{name}",
"account.share": "شارِك الملف التعريفي لـ @{name}",
"account.show_reblogs": "عرض مشاركات @{name}",
"account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}",
"account.unblock": "إلغاء الحَظر عن @{name}",
@ -66,8 +66,8 @@
"account.unmute_notifications": "إلغاء كَتم الإشعارات عن @{name}",
"account.unmute_short": "إلغاء الكتم",
"account_note.placeholder": "اضغط لإضافة مُلاحظة",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
"admin.dashboard.daily_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بيوم",
"admin.dashboard.monthly_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بالشهور",
"admin.dashboard.retention.average": "المعدل",
"admin.dashboard.retention.cohort": "شهر التسجيل",
"admin.dashboard.retention.cohort_size": "المستخدمون الجدد",
@ -80,10 +80,10 @@
"audio.hide": "إخفاء المقطع الصوتي",
"autosuggest_hashtag.per_week": "{count} في الأسبوع",
"boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ",
"bundle_column_error.error.body": "لا يمكن تقديم الصفحة المطلوبة. قد يكون بسبب خطأ في التعليمات البرمجية، أو مشكلة توافق المتصفح.",
"bundle_column_error.error.title": "أوه لا!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.body": "حدث خطأ أثناء محاولة تحميل هذه الصفحة. قد يكون هذا بسبب مشكلة مؤقتة في اتصالك بالإنترنت أو هذا الخادم.",
"bundle_column_error.network.title": "خطأ في الشبكة",
"bundle_column_error.retry": "إعادة المُحاولة",
"bundle_column_error.return": "العودة إلى الرئيسية",
@ -96,7 +96,7 @@
"closed_registrations_modal.description": "لا يمكن إنشاء حساب على {domain} حاليا، ولكن على فكرة لست بحاجة إلى حساب على {domain} بذاته لاستخدام ماستدون.",
"closed_registrations_modal.find_another_server": "ابحث على خادم آخر",
"closed_registrations_modal.preamble": "ماستدون لامركزي، لذلك بغض النظر عن مكان إنشاء حسابك، سيكون بإمكانك المتابعة والتفاعل مع أي شخص على هذا الخادم. يمكنك حتى أن تستضيفه ذاتياً!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"closed_registrations_modal.title": "تسجيل حساب في ماستدون",
"column.about": "عن",
"column.blocks": "المُستَخدِمون المَحظورون",
"column.bookmarks": "الفواصل المرجعية",
@ -150,12 +150,12 @@
"confirmations.block.block_and_report": "حظره والإبلاغ عنه",
"confirmations.block.confirm": "حظر",
"confirmations.block.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَظرَ {name}؟",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.cancel_follow_request.confirm": "إلغاء الطلب",
"confirmations.cancel_follow_request.message": "متأكد من إلغاء طلب متابعة {name}؟",
"confirmations.delete.confirm": "حذف",
"confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟",
"confirmations.delete_list.confirm": "حذف",
"confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمةَ بشكلٍ دائم؟",
"confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟",
"confirmations.discard_edit_media.confirm": "تجاهل",
"confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، تجاهلها على أي حال؟",
"confirmations.domain_block.confirm": "حظر اِسم النِّطاق بشكلٍ كامل",
@ -181,12 +181,14 @@
"directory.local": "مِن {domain} فقط",
"directory.new_arrivals": "الوافدون الجُدد",
"directory.recently_active": "نشط مؤخرا",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
"disabled_account_banner.account_settings": "إعدادات الحساب",
"disabled_account_banner.text": "حسابك {disabledAccount} معطل حاليا.",
"dismissable_banner.community_timeline": "هذه هي أحدث المشاركات العامة من الأشخاص الذين تُستضاف حساباتهم على {domain}.",
"dismissable_banner.dismiss": "إغلاق",
"dismissable_banner.explore_links": "هذه القصص الإخبارية يتحدث عنها أشخاص على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.",
"dismissable_banner.explore_statuses": "هذه المنشورات مِن هذا الخادم ومِن الخوادم الأخرى في الشبكة اللامركزية تجذب انتباه المستخدمين على هذا الخادم الآن.",
"dismissable_banner.explore_tags": "هذه العلامات تكتسب جذب بين الناس على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.",
"dismissable_banner.public_timeline": "هذه هي أحدث المنشورات العامة من الناس على هذا الخادم والخوادم الأخرى للشبكة اللامركزية التي يعرفها هذا الخادم.",
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
"embed.preview": "هكذا ما سوف يبدو عليه:",
"emoji_button.activity": "الأنشطة",
@ -237,35 +239,35 @@
"explore.trending_links": "الأخبار",
"explore.trending_statuses": "المنشورات",
"explore.trending_tags": "الوسوم",
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
"filter_modal.added.context_mismatch_title": "Context mismatch!",
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
"filter_modal.added.expired_title": "Expired filter!",
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
"filter_modal.added.review_and_configure_title": "Filter settings",
"filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.",
"filter_modal.added.context_mismatch_title": "عدم تطابق السياق!",
"filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.",
"filter_modal.added.expired_title": "تصفية منتهية الصلاحية!",
"filter_modal.added.review_and_configure": "لمراجعة وزيادة تكوين فئة عوامل التصفية هذه، انتقل إلى {settings_link}.",
"filter_modal.added.review_and_configure_title": "إعدادات التصفية",
"filter_modal.added.settings_link": "صفحة الإعدادات",
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
"filter_modal.added.title": "Filter added!",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "expired",
"filter_modal.added.short_explanation": "تمت إضافة هذه المشاركة إلى فئة الفلاتر التالية: {title}.",
"filter_modal.added.title": "تمت إضافة عامل التصفية!",
"filter_modal.select_filter.context_mismatch": "لا ينطبق على هذا السياق",
"filter_modal.select_filter.expired": "منتهية الصلاحيّة",
"filter_modal.select_filter.prompt_new": "فئة جديدة: {name}",
"filter_modal.select_filter.search": "Search or create",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"filter_modal.select_filter.search": "البحث أو الإنشاء",
"filter_modal.select_filter.subtitle": "استخدام فئة موجودة أو إنشاء فئة جديدة",
"filter_modal.select_filter.title": "تصفية هذا المنشور",
"filter_modal.title.status": "تصفية منشور",
"follow_recommendations.done": "تم",
"follow_recommendations.heading": "تابع الأشخاص الذين ترغب في رؤية منشوراتهم! إليك بعض الاقتراحات.",
"follow_recommendations.lead": "ستظهر منشورات الأشخاص الذين تُتابعتهم بترتيب تسلسلي زمني على صفحتك الرئيسية. لا تخف إذا ارتكبت أي أخطاء، تستطيع إلغاء متابعة أي شخص في أي وقت تريد!",
"follow_request.authorize": "ترخيص",
"follow_request.reject": "رفض",
"follow_requests.unlocked_explanation": "على الرغم من أن حسابك غير مقفل، فإن موظفين الـ{domain} ظنوا أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.about": "حَول",
"footer.directory": "دليل الصفحات التعريفية",
"footer.get_app": "احصل على التطبيق",
"footer.invite": "دعوة أشخاص",
"footer.keyboard_shortcuts": "اختصارات لوحة المفاتيح",
"footer.privacy_policy": "سياسة الخصوصية",
"footer.source_code": "الاطلاع على الشفرة المصدرية",
"generic.saved": "تم الحفظ",
"getting_started.heading": "استعدّ للبدء",
"hashtag.column_header.tag_mode.all": "و {additional}",
@ -284,18 +286,18 @@
"home.column_settings.show_replies": "اعرض الردود",
"home.hide_announcements": "إخفاء الإعلانات",
"home.show_announcements": "إظهار الإعلانات",
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.description.favourite": "مع حساب في ماستدون، يمكنك تفضيل هذا المقال لإبلاغ الناشر بتقديرك وحفظه لاحقا.",
"interaction_modal.description.follow": "مع حساب في ماستدون، يمكنك متابعة {name} لتلقي مشاركاتهم في الصفحه الرئيسيه.",
"interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور لمشاركته مع متابعينك.",
"interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذه المشاركة.",
"interaction_modal.on_another_server": "على خادم مختلف",
"interaction_modal.on_this_server": "على هذا الخادم",
"interaction_modal.other_server_instructions": "ببساطة قم بنسخ ولصق هذا الرابط في شريط البحث في تطبيقك المفضل أو على واجهة الويب أين ولجت بحسابك.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.other_server_instructions": "انسخ و الصق هذا الرابط في حقل البحث الخاص بك لتطبيق ماستدون المفضل لديك أو واجهة الويب لخادم ماستدون الخاص بك.",
"interaction_modal.preamble": "بما إن ماستدون لامركزي، يمكنك استخدام حسابك الحالي المستضاف بواسطة خادم ماستدون آخر أو منصة متوافقة إذا لم يكن لديك حساب هنا.",
"interaction_modal.title.favourite": "الإعجاب بمنشور {name}",
"interaction_modal.title.follow": "اتبع {name}",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"interaction_modal.title.reblog": "مشاركة منشور {name}",
"interaction_modal.title.reply": "الرد على منشور {name}",
"intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}",
"intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}",
"intervals.full.minutes": "{number, plural, one {# دقيقة} other {# دقائق}}",
@ -339,7 +341,7 @@
"lightbox.next": "التالي",
"lightbox.previous": "العودة",
"limited_account_hint.action": "إظهار الملف التعريفي على أي حال",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"limited_account_hint.title": "تم إخفاء هذا الملف الشخصي من قبل مشرفي {domain}.",
"lists.account.add": "أضف إلى القائمة",
"lists.account.remove": "احذف من القائمة",
"lists.delete": "احذف القائمة",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}",
"missing_indicator.label": "غير موجود",
"missing_indicator.sublabel": "تعذر العثور على هذا المورد",
"moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.",
"mute_modal.duration": "المدة",
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
"mute_modal.indefinite": "إلى أجل غير مسمى",
@ -384,8 +387,8 @@
"navigation_bar.public_timeline": "الخيط العام الموحد",
"navigation_bar.search": "البحث",
"navigation_bar.security": "الأمان",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
"not_signed_in_indicator.not_signed_in": "تحتاج إلى تسجيل الدخول للوصول إلى هذا المصدر.",
"notification.admin.report": "{name} أبلغ عن {target}",
"notification.admin.sign_up": "أنشأ {name} حسابًا",
"notification.favourite": "أُعجِب {name} بمنشورك",
"notification.follow": "{name} يتابعك",
@ -452,17 +455,17 @@
"privacy.public.short": "للعامة",
"privacy.unlisted.long": "مرئي للجميع، ولكن مِن دون ميزات الاكتشاف",
"privacy.unlisted.short": "غير مدرج",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.last_updated": "آخر تحديث {date}",
"privacy_policy.title": "سياسة الخصوصية",
"refresh": "أنعِش",
"regeneration_indicator.label": "جارٍ التحميل…",
"regeneration_indicator.sublabel": "جارٍ تجهيز تغذية صفحتك الرئيسية!",
"relative_time.days": "{number}ي",
"relative_time.full.days": "منذ {number, plural, zero {} one {# يوم} two {# يومين} few {# أيام} many {# أيام} other {# يوم}}",
"relative_time.full.hours": "منذ {number, plural, zero {} one {# ساعة واحدة} two {# ساعتين} few {# ساعات} many {# ساعات} other {# ساعة}}",
"relative_time.full.hours": "منذ {number, plural, zero {} one {ساعة واحدة} two {ساعتَيْن} few {# ساعات} many {# ساعة} other {# ساعة}}",
"relative_time.full.just_now": "الآن",
"relative_time.full.minutes": "منذ {number, plural, zero {} one {# دقيقة واحدة} two {# دقيقتين} few {# دقائق} many {# دقيقة} other {# دقائق}}",
"relative_time.full.seconds": "منذ {number, plural, zero {} one {# ثانية واحدة} two {# ثانيتين} few {# ثوانٍ} many {# ثوانٍ} other {# ثانية}}",
"relative_time.full.minutes": "منذ {number, plural, zero {} one {دقيقة} two {دقيقتَيْن} few {# دقائق} many {# دقيقة} other {# دقائق}}",
"relative_time.full.seconds": "منذ {number, plural, zero {} one {ثانية} two {ثانيتَيْن} few {# ثوانٍ} many {# ثانية} other {# ثانية}}",
"relative_time.hours": "{number}سا",
"relative_time.just_now": "الآن",
"relative_time.minutes": "{number}د",
@ -509,10 +512,10 @@
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "آخر",
"report_notification.categories.spam": "مزعج",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"report_notification.categories.violation": "القاعدة المنتهَكة",
"report_notification.open": "فتح التقرير",
"search.placeholder": "ابحث",
"search.search_or_paste": "Search or paste URL",
"search.search_or_paste": "ابحث أو أدخل رابطا تشعبيا URL",
"search_popout.search_format": "نمط البحث المتقدم",
"search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.",
"search_popout.tips.hashtag": "وسم",
@ -525,33 +528,33 @@
"search_results.nothing_found": "تعذر العثور على نتائج تتضمن هذه المصطلحات",
"search_results.statuses": "المنشورات",
"search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.",
"search_results.title": "Search for {q}",
"search_results.title": "البحث عن {q}",
"search_results.total": "{count, number} {count, plural, zero {} one {نتيجة} two {نتيجتين} few {نتائج} many {نتائج} other {نتائج}}",
"server_banner.about_active_users": "الأشخاص الذين يستخدمون هذا الخادم خلال الأيام الثلاثين الأخيرة (المستخدمون النشطون شهريًا)",
"server_banner.active_users": "مستخدم نشط",
"server_banner.administered_by": "يُديره:",
"server_banner.introduction": "{domain} هو جزء من الشبكة الاجتماعية اللامركزية المدعومة من {mastodon}.",
"server_banner.introduction": "{domain} هو جزء من الشبكة الاجتماعية اللامركزية التي تعمل بواسطة {mastodon}.",
"server_banner.learn_more": "تعلم المزيد",
"server_banner.server_stats": "إحصائيات الخادم:",
"sign_in_banner.create_account": "أنشئ حسابًا",
"sign_in_banner.sign_in": "لِج",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
"sign_in_banner.text": "قم بالولوج بحسابك لمتابعة الصفحات الشخصية أو الوسوم، أو لإضافة الرسائل إلى المفضلة ومشاركتها والرد عليها أو التفاعل بواسطة حسابك المتواجد على خادم مختلف.",
"status.admin_account": "افتح الواجهة الإدارية لـ @{name}",
"status.admin_status": "افتح هذا المنشور على واجهة الإشراف",
"status.block": "احجب @{name}",
"status.bookmark": "أضفه إلى الفواصل المرجعية",
"status.cancel_reblog_private": "إلغاء الترقية",
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
"status.copy": "نسخ رابط المنشور",
"status.copy": "انسخ رابط الرسالة",
"status.delete": "احذف",
"status.detailed_status": "تفاصيل المحادثة",
"status.direct": "رسالة خاصة إلى @{name}",
"status.edit": "تعديل",
"status.edited": "عُدّل في {date}",
"status.edited_x_times": "عُدّل {count, plural, zero {} one {{count} مرة} two {{count} مرتين} few {{count} مرات} many {{count} مرات} other {{count} مرة}}",
"status.edited_x_times": "عُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}",
"status.embed": "إدماج",
"status.favourite": "أضف إلى المفضلة",
"status.filter": "Filter this post",
"status.filter": "تصفية هذه الرسالة",
"status.filtered": "مُصفّى",
"status.hide": "اخف التبويق",
"status.history.created": "أنشأه {name} {date}",
@ -589,9 +592,9 @@
"status.uncached_media_warning": "غير متوفر",
"status.unmute_conversation": "فك الكتم عن المحادثة",
"status.unpin": "فك التدبيس من الصفحة التعريفية",
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
"subscribed_languages.lead": "فقط المشاركات في اللغات المحددة ستظهر في الرئيسيه وتسرد الجداول الزمنية بعد التغيير. حدد لا شيء لتلقي المشاركات بجميع اللغات.",
"subscribed_languages.save": "حفظ التغييرات",
"subscribed_languages.target": "Change subscribed languages for {target}",
"subscribed_languages.target": "تغيير اللغات المشتركة لـ {target}",
"suggestions.dismiss": "إلغاء الاقتراح",
"suggestions.header": "يمكن أن يهمك…",
"tabs_bar.federated_timeline": "الموحَّد",
@ -635,7 +638,7 @@
"upload_modal.preparing_ocr": "جار إعداد OCR (تعرف ضوئي على الرموز)…",
"upload_modal.preview_label": "معاينة ({ratio})",
"upload_progress.label": "يرفع...",
"upload_progress.processing": "Processing…",
"upload_progress.processing": "تتم المعالجة…",
"video.close": "إغلاق الفيديو",
"video.download": "تنزيل الملف",
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.",
"about.domain_blocks.comment": "Motivu",
"about.domain_blocks.domain": "Dominiu",
"about.domain_blocks.no_reason_available": "El motivu nun ta disponible",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Gravedá",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
@ -13,7 +11,7 @@
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules",
"account.account_note_header": "Note",
"account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Robó",
"account.badges.group": "Grupu",
@ -39,17 +37,19 @@
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "Esti usuariu entá nun sigue a naide.",
"account.follows_you": "Síguete",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Anubrir les comparticiones de @{name}",
"account.joined_short": "Joined",
"account.joined_short": "Data de xunión",
"account.languages": "Change subscribed languages",
"account.link_verified_on": "La propiedá d'esti enllaz foi comprobada'l {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": "Mentar a @{name}",
"account.moved_to": "{name} mudóse a:",
"account.mute": "Silenciar a @{name}",
"account.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "Desactivación de los avisos de @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.open_original_page": "Abrir la páxina orixinal",
"account.posts": "Artículos",
"account.posts_with_replies": "Artículos y rempuestes",
"account.report": "Report @{name}",
@ -65,10 +65,10 @@
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.unmute_short": "Unmute",
"account_note.placeholder": "Click to add a note",
"account_note.placeholder": "Calca equí p'amestar una nota",
"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": "Promediu",
"admin.dashboard.retention.cohort": "Sign-up month",
"admin.dashboard.retention.cohort_size": "Usuarios nuevos",
"alert.rate_limited.message": "Volvi tentalo dempués de la hora: {retry_time, time, medium}.",
@ -82,7 +82,7 @@
"boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.error.title": "¡Meca!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Network error",
"bundle_column_error.retry": "Try again",
@ -118,7 +118,7 @@
"column_header.moveRight_settings": "Mover la columna a la drecha",
"column_header.pin": "Fixar",
"column_header.show_settings": "Amosar axustes",
"column_header.unpin": "Desfixar",
"column_header.unpin": "Lliberar",
"column_subheading.settings": "Axustes",
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Namái multimedia",
@ -164,7 +164,7 @@
"confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.mute.explanation": "Esto va anubrir los espublizamientos y les sos menciones pero entá va permiti-yos ver los tos espublizamientos y siguite.",
"confirmations.mute.message": "¿De xuru que quies silenciar a {name}?",
"confirmations.mute.message": "¿De xuru que quies desactivar los avisos de {name}?",
"confirmations.redraft.confirm": "Desaniciar y reeditar",
"confirmations.redraft.message": "¿De xuru que quies desaniciar esti estáu y reeditalu? Van perdese los favoritos y comparticiones, y les rempuestes al toot orixinal van quedar güérfanes.",
"confirmations.reply.confirm": "Responder",
@ -181,6 +181,8 @@
"directory.local": "Dende {domain} namái",
"directory.new_arrivals": "Cuentes nueves",
"directory.recently_active": "Actividá recién",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "Con una cuenta de Mastodon, pues responder a esti artículu.",
"interaction_modal.on_another_server": "N'otru sirvidor",
"interaction_modal.on_this_server": "Nesti sirvidor",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copia y apiega esta URL nel campu de busca de la to aplicación favorita de Mastodon o na interfaz web de dalgún sirvidor de Mastodon.",
"interaction_modal.preamble": "Darréu que Mastodon ye descentralizáu, pues usar una cuenta agospiada n'otru sirvidor de Mastodon o n'otra plataforma compatible si nun tienes cuenta nesti sirvidor.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "Alternar la visibilidá",
"missing_indicator.label": "Nun s'atopó",
"missing_indicator.sublabel": "Nun se pudo atopar esti recursu",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Duración",
"mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?",
"mute_modal.indefinite": "Indefinite",
@ -372,7 +375,7 @@
"navigation_bar.edit_profile": "Editar el perfil",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Pallabres silenciaes",
"navigation_bar.filters": "Pallabres desactivaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.lists": "Llistes",
@ -542,7 +545,7 @@
"status.bookmark": "Amestar a Marcadores",
"status.cancel_reblog_private": "Dexar de compartir",
"status.cannot_reblog": "Esti artículu nun se pue compartir",
"status.copy": "Copiar l'enllaz al estáu",
"status.copy": "Copiar l'enllaz al artículu",
"status.delete": "Desaniciar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Unviar un mensaxe direutu a @{name}",
@ -554,17 +557,17 @@
"status.filter": "Filter this post",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.history.created": "{name} creó {date}",
"status.history.edited": "{name} editó {date}",
"status.load_more": "Cargar más",
"status.media_hidden": "Multimedia anubrida",
"status.mention": "Mentar a @{name}",
"status.more": "Más",
"status.mute": "Silenciar a @{name}",
"status.mute_conversation": "Silenciar la conversación",
"status.open": "Espander esti estáu",
"status.mute_conversation": "Mute conversation",
"status.open": "Espander esti artículu",
"status.pin": "Fixar nel perfil",
"status.pinned": "Barritu fixáu",
"status.pinned": "Artículu fixáu",
"status.read_more": "Lleer más",
"status.reblog": "Compartir",
"status.reblog_private": "Compartir cola audiencia orixinal",

View File

@ -1,123 +1,123 @@
{
"about.blocks": "Модерирани сървъри",
"about.contact": "За контакти:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Причина",
"about.domain_blocks.domain": "Домейн",
"about.disclaimer": "Mastodon е безплатен софтуер с отворен изходен код и търговска марка Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Няма налична причина",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules",
"about.domain_blocks.silenced.title": "Ограничено",
"about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхранявани или обменяни, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
"about.domain_blocks.suspended.title": "Спряно",
"about.not_available": "Тази информация не е била направена налична на този сървър.",
"about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}",
"about.rules": "Правила на сървъра",
"account.account_note_header": "Бележка",
"account.add_or_remove_from_list": "Добави или премахни от списъците",
"account.badges.bot": "Бот",
"account.badges.group": "Група",
"account.block": "Блокирай",
"account.block_domain": "скрий всичко от (домейн)",
"account.block": "Блокиране на @{name}",
"account.block_domain": "Блокиране на домейн {domain}",
"account.blocked": "Блокирани",
"account.browse_more_on_origin_server": "Разгледайте повече в оригиналния профил",
"account.browse_more_on_origin_server": "Разглеждане на още в първообразния профил",
"account.cancel_follow_request": "Withdraw follow request",
"account.direct": "Direct Message @{name}",
"account.disable_notifications": "Спрете да ме уведомявате, когато @{name} публикува",
"account.domain_blocked": "Скрит домейн",
"account.edit_profile": "Редактирай профила",
"account.direct": "Директно съобщение до @{name}",
"account.disable_notifications": "Сприране на известия при публикуване от @{name}",
"account.domain_blocked": "Блокиран домейн",
"account.edit_profile": "Редактиране на профила",
"account.enable_notifications": "Уведомявайте ме, когато @{name} публикува",
"account.endorse": "Характеристика на профила",
"account.featured_tags.last_status_at": "Last post on {date}",
"account.featured_tags.last_status_never": "No posts",
"account.featured_tags.last_status_at": "Последна публикация на {date}",
"account.featured_tags.last_status_never": "Няма публикации",
"account.featured_tags.title": "{name}'s featured hashtags",
"account.follow": "Последвай",
"account.follow": "Последване",
"account.followers": "Последователи",
"account.followers.empty": "Все още никой не следва този потребител.",
"account.followers_counter": "{count, plural, one {{counter} Последовател} other {{counter} Последователи}}",
"account.followers.empty": "Още никой не следва потребителя.",
"account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}",
"account.following": "Последвани",
"account.following_counter": "{count, plural, one {{counter} Последван} other {{counter} Последвани}}",
"account.follows.empty": "Този потребител все още не следва никого.",
"account.follows_you": "Твой последовател",
"account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}",
"account.follows.empty": "Потребителят още никого не следва.",
"account.follows_you": "Ваш последовател",
"account.go_to_profile": "Към профила",
"account.hide_reblogs": "Скриване на споделяния от @{name}",
"account.joined_short": "Joined",
"account.joined_short": "Присъединени",
"account.languages": "Change subscribed languages",
"account.link_verified_on": "Собствеността върху тази връзка е проверена на {date}",
"account.locked_info": "Този акаунт е поверително заключен. Собственикът преглежда ръчно кой може да го следва.",
"account.locked_info": "Състоянието за поверителността на акаунта е зададено заключено. Собственикът преглежда ръчно от кого може да се следва.",
"account.media": "Мултимедия",
"account.mention": "Споменаване",
"account.moved_to": "{name} се премести в:",
"account.mention": "Споменаване на @{name}",
"account.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "Заглушаване на @{name}",
"account.mute_notifications": "Заглушаване на известия от @{name}",
"account.muted": "Заглушено",
"account.open_original_page": "Отваряне на оригиналната страница",
"account.posts": "Публикации",
"account.posts_with_replies": "Toots with replies",
"account.posts_with_replies": "Публикации и отговори",
"account.report": "Докладване на @{name}",
"account.requested": "В очакване на одобрение",
"account.share": "Споделяне на @{name} профила",
"account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване",
"account.share": "Споделяне на профила на @{name}",
"account.show_reblogs": "Показване на споделяния от @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Публикация} other {{counter} Публикации}}",
"account.unblock": "Не блокирай",
"account.unblock_domain": "Unhide {domain}",
"account.unblock_short": "Отблокирай",
"account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
"account.unblock": "Отблокиране на @{name}",
"account.unblock_domain": "Отблокиране на домейн {domain}",
"account.unblock_short": "Отблокирване",
"account.unendorse": "Не включвайте в профила",
"account.unfollow": "Не следвай",
"account.unmute": "Раззаглушаване на @{name}",
"account.unmute_notifications": "Раззаглушаване на известия от @{name}",
"account.unmute_short": "Unmute",
"account_note.placeholder": "Click to add a note",
"account.unfollow": "Стоп на следването",
"account.unmute": "Без заглушаването на @{name}",
"account.unmute_notifications": "Без заглушаване на известия от @{name}",
"account.unmute_short": "Без заглушаването",
"account_note.placeholder": "Щракнете, за да добавите бележка",
"admin.dashboard.daily_retention": "Ниво на задържани на потребители след регистрация, в дни",
"admin.dashboard.monthly_retention": "Ниво на задържани на потребители след регистрация, в месеци",
"admin.dashboard.retention.average": "Средно",
"admin.dashboard.retention.cohort": "Месец на регистрацията",
"admin.dashboard.retention.cohort": "Регистрации за месец",
"admin.dashboard.retention.cohort_size": "Нови потребители",
"alert.rate_limited.message": "Моля, опитайте отново след {retry_time, time, medium}.",
"alert.rate_limited.message": "Опитайте пак след {retry_time, time, medium}.",
"alert.rate_limited.title": "Скоростта е ограничена",
"alert.unexpected.message": "Възникна неочаквана грешка.",
"alert.unexpected.title": "Опаа!",
"announcement.announcement": "Оповестяване",
"attachments_list.unprocessed": "(необработен)",
"audio.hide": "Скриване на видеото",
"attachments_list.unprocessed": "(необработено)",
"audio.hide": "Скриване на звука",
"autosuggest_hashtag.per_week": "{count} на седмица",
"boost_modal.combo": "Можете да натиснете {combo}, за да пропуснете това следващия път",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Network error",
"bundle_column_error.retry": "Опитай отново",
"bundle_column_error.return": "Go back home",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
"bundle_column_error.copy_stacktrace": "Копиране на доклада за грешката",
"bundle_column_error.error.body": "Заявената страница не може да се изобрази. Това може да е заради грешка в кода ни или проблем със съвместимостта на браузъра.",
"bundle_column_error.error.title": "О, не!",
"bundle_column_error.network.body": "Възникна грешка, опитвайки зареждане на страницата. Това може да е заради временен проблем с интернет връзката ви или този сървър.",
"bundle_column_error.network.title": "Мрежова грешка",
"bundle_column_error.retry": "Нов опит",
"bundle_column_error.return": "Обратно към началото",
"bundle_column_error.routing.body": "Заявената страница не може да се намери. Сигурни ли сте, че URL адресът в адресната лента е правилен?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Затваряне",
"bundle_modal_error.message": "Нещо се обърка при зареждането на този компонент.",
"bundle_modal_error.retry": "Опитайте отново",
"bundle_modal_error.message": "Нещо се обърка, зареждайки компонента.",
"bundle_modal_error.retry": "Нов опит",
"closed_registrations.other_server_instructions": "Поради това че Mastodon е децентрализиран, можеш да създадеш акаунт на друг сървър, от който можеш да комуникираш с този.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "About",
"closed_registrations_modal.description": "Създаването на акаунт в {domain} сега не е възможно, но обърнете внимание, че нямате нужда от акаунт конкретно на {domain}, за да ползвате Mastodon.",
"closed_registrations_modal.find_another_server": "Намиране на друг сървър",
"closed_registrations_modal.preamble": "Mastodon е децентрализиран, така че няма значение къде създавате акаунта си, ще може да последвате и взаимодействате с всеки на този сървър. Може дори да стартирате свой собствен сървър!",
"closed_registrations_modal.title": "Регистриране в Mastodon",
"column.about": "Относно",
"column.blocks": "Блокирани потребители",
"column.bookmarks": "Отметки",
"column.community": "Локална емисия",
"column.direct": "Лични съобщения",
"column.directory": "Преглед на профили",
"column.domain_blocks": "Hidden domains",
"column.community": "Местна часова ос",
"column.direct": "Директни съобщения",
"column.directory": "Разглеждане на профили",
"column.domain_blocks": "Блокирани домейни",
"column.favourites": "Любими",
"column.follow_requests": "Заявки за последване",
"column.home": "Начало",
"column.lists": "Списъци",
"column.mutes": "Заглушени потребители",
"column.notifications": "Известия",
"column.pins": "Pinned toot",
"column.public": "Публичен канал",
"column.pins": "Закачени публикации",
"column.public": "Федеративна часова ос",
"column_back_button.label": "Назад",
"column_header.hide_settings": "Скриване на настройки",
"column_header.hide_settings": "Скриване на настройките",
"column_header.moveLeft_settings": "Преместване на колона вляво",
"column_header.moveRight_settings": "Преместване на колона вдясно",
"column_header.pin": "Закачане",
"column_header.show_settings": "Показване на настройки",
"column_header.show_settings": "Показване на настройките",
"column_header.unpin": "Разкачане",
"column_subheading.settings": "Настройки",
"community.column_settings.local_only": "Само локално",
@ -126,71 +126,73 @@
"compose.language.change": "Смяна на езика",
"compose.language.search": "Търсене на езици...",
"compose_form.direct_message_warning_learn_more": "Още информация",
"compose_form.encryption_warning": оставете в Мастодон не са криптирани от край до край. Не споделяйте никаква чувствителна информация.",
"compose_form.encryption_warning": убликациите в Mastodon не са криптирани от край до край. Не споделяйте никаква чувствителна информация там.",
"compose_form.hashtag_warning": "Тази публикация няма да бъде изброена под нито един хаштаг, тъй като е скрита. Само публични публикации могат да се търсят по хаштаг.",
"compose_form.lock_disclaimer": "Вашият акаунт не е {locked}. Всеки може да ви последва, за да прегледа вашите публикации само за последователи.",
"compose_form.lock_disclaimer.lock": "заключено",
"compose_form.placeholder": "Какво си мислиш?",
"compose_form.placeholder": "Какво мислите?",
"compose_form.poll.add_option": "Добавяне на избор",
"compose_form.poll.duration": "Продължителност на анкета",
"compose_form.poll.duration": "Времетраене на анкетата",
"compose_form.poll.option_placeholder": "Избор {number}",
"compose_form.poll.remove_option": "Премахване на този избор",
"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.save_changes": "Запазване на промените",
"compose_form.sensitive.hide": "{count, plural, one {Маркиране на мултимедията като деликатна} other {Маркиране на мултимедиите като деликатни}}",
"compose_form.sensitive.marked": "{count, plural, one {Мултимедията е маркирана като деликатна} other {Мултимедиите са маркирани като деликатни}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Мултимедията не е маркирана като деликатна} other {Мултимедиите не са маркирани като деликатни}}",
"compose_form.spoiler.marked": "Текстът е скрит зад предупреждение",
"compose_form.spoiler.unmarked": "Текстът не е скрит",
"compose_form.spoiler_placeholder": "Content warning",
"compose_form.spoiler_placeholder": "Тук напишете предупреждението си",
"confirmation_modal.cancel": "Отказ",
"confirmations.block.block_and_report": "Блокиране и докладване",
"confirmations.block.confirm": "Блокиране",
"confirmations.block.message": "Сигурни ли сте, че искате да блокирате {name}?",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.block.message": "Наистина ли искате да блокирате {name}?",
"confirmations.cancel_follow_request.confirm": "Оттегляне на заявката",
"confirmations.cancel_follow_request.message": "Наистина ли искате да оттеглите заявката си да последвате {name}?",
"confirmations.delete.confirm": "Изтриване",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete.message": "Наистина ли искате да изтриете публикацията?",
"confirmations.delete_list.confirm": "Изтриване",
"confirmations.delete_list.message": "Сигурни ли сте, че искате да изтриете окончателно този списък?",
"confirmations.discard_edit_media.confirm": "Отмени",
"confirmations.discard_edit_media.message": "Имате незапазени промени на описанието или прегледа на медията, отмяна въпреки това?",
"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.",
"confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги този списък?",
"confirmations.discard_edit_media.confirm": "Отхвърляне",
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
"confirmations.domain_block.confirm": "Блокиране на целия домейн",
"confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публични часови оси или известията си. Вашите последователи от този домейн ще се премахнат.",
"confirmations.logout.confirm": "Излизане",
"confirmations.logout.message": "Сигурни ли сте, че искате да излезете?",
"confirmations.logout.message": "Наистина ли искате да излезете?",
"confirmations.mute.confirm": "Заглушаване",
"confirmations.mute.explanation": "Това ще скрие публикации от тях и публикации, които ги споменават, но все пак ще им позволи да виждат вашите публикации и да ви следват.",
"confirmations.mute.message": "Сигурни ли сте, че искате да заглушите {name}?",
"confirmations.mute.message": "Наистина ли искате да заглушите {name}?",
"confirmations.redraft.confirm": "Изтриване и преработване",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"confirmations.reply.confirm": "Отговор",
"confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
"confirmations.unfollow.confirm": "Отследване",
"confirmations.unfollow.message": "Сигурни ли сте, че искате да отследвате {name}?",
"conversation.delete": "Изтриване на разговор",
"confirmations.unfollow.confirm": "Без следване",
"confirmations.unfollow.message": "Наистина ли искате да не следвате {name}?",
"conversation.delete": "Изтриване на разговора",
"conversation.mark_as_read": "Маркиране като прочетено",
"conversation.open": "Преглед на разговор",
"conversation.open": "Преглед на разговора",
"conversation.with": "С {names}",
"copypaste.copied": "Copied",
"copypaste.copy": "Copy",
"copypaste.copied": "Копирано",
"copypaste.copy": "Копиране",
"directory.federated": "От познат федивърс",
"directory.local": "Само от {domain}",
"directory.new_arrivals": "Новодошли",
"directory.recently_active": "Наскоро активни",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
"embed.instructions": "Embed this status on your website by copying the code below.",
"disabled_account_banner.account_settings": "Настройки на акаунта",
"disabled_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен.",
"dismissable_banner.community_timeline": "Ето най-скорошните публични публикации от хора, чиито акаунти са разположени в {domain}.",
"dismissable_banner.dismiss": "Отхвърляне",
"dismissable_banner.explore_links": "Тези новини се разказват от хората в този и други сървъри на децентрализираната мрежа точно сега.",
"dismissable_banner.explore_statuses": "Тези публикации от този и други сървъри в децентрализираната мрежа набират популярност сега на този сървър.",
"dismissable_banner.explore_tags": "Тези хаштагове сега набират популярност сред хората в този и други сървъри на децентрализирата мрежа.",
"dismissable_banner.public_timeline": "Ето най-скорошните публични публикации от хора в този и други сървъри на децентрализираната мрежа, за които този сървър познава.",
"embed.instructions": "Вградете публикацията в уебсайта си, копирайки кода долу.",
"embed.preview": "Ето как ще изглежда:",
"emoji_button.activity": "Дейност",
"emoji_button.clear": "Изчисти",
"emoji_button.clear": "Изчистване",
"emoji_button.custom": "Персонализирано",
"emoji_button.flags": "Знамена",
"emoji_button.food": "Храна и напитки",
@ -199,36 +201,36 @@
"emoji_button.not_found": "Без емоджита!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Предмети",
"emoji_button.people": "Хора",
"emoji_button.recent": "Често използвани",
"emoji_button.recent": "Често използвано",
"emoji_button.search": "Търсене...",
"emoji_button.search_results": "Резултати от търсене",
"emoji_button.symbols": "Символи",
"emoji_button.travel": "Пътуване и забележителности",
"emoji_button.travel": "Пътуване и места",
"empty_column.account_suspended": "Профилът е спрян",
"empty_column.account_timeline": "Тук няма публикации!",
"empty_column.account_unavailable": "Няма достъп до профила",
"empty_column.blocks": "Не сте блокирали потребители все още.",
"empty_column.blocks": "Още не сте блокирали никакви потребители.",
"empty_column.bookmarked_statuses": "Все още нямате отметнати публикации. Когато отметнете някоя, тя ще се покаже тук.",
"empty_column.community": "Локалната емисия е празна. Напишете нещо публично, за да започнете!",
"empty_column.community": "Местна часова ос е празна. Напишете нещо публично, за да завъртите нещата!",
"empty_column.direct": "Все още нямате лични съобщения. Когато изпратите или получите ще се покаже тук.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.domain_blocks": "Още няма блокирани домейни.",
"empty_column.explore_statuses": "Няма нищо популярно в момента. Проверете пак по-късно!",
"empty_column.favourited_statuses": "Все още нямате любими публикации. Когато поставите някоя в любими, тя ще се покаже тук.",
"empty_column.favourites": "Все още никой не е поставил тази публикация в любими. Когато някой го направи, ще се покаже тук.",
"empty_column.follow_recommendations": "Изглежда, че няма генерирани предложения за вас. Можете да опитате да търсите за хора, които знаете или да разгледате популярните тагове.",
"empty_column.follow_requests": "Все още нямате заявки за последване. Когато получите такава, тя ще се покаже тук.",
"empty_column.hashtag": "В този хаштаг няма нищо все още.",
"empty_column.home": "Вашата начална емисия е празна! Посетете {public} или използвайте търсене, за да започнете и да се запознаете с други потребители.",
"empty_column.home.suggestions": "Виж някои предложения",
"empty_column.list": "There is nothing in this list yet.",
"empty_column.hashtag": "Още няма нищо в този хаштаг.",
"empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}",
"empty_column.home.suggestions": "Преглед на някои предложения",
"empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.",
"empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.",
"empty_column.mutes": "Не сте заглушавали потребители все още.",
"empty_column.mutes": "Още не сте заглушавали потребители.",
"empty_column.notifications": "Все още нямате известия. Взаимодействайте с другите, за да започнете разговора.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
"empty_column.public": "Тук няма нищо! Напишете нещо публично или ръчно последвайте потребители от други сървъри, за да го напълните",
"error.unexpected_crash.explanation": "Поради грешка в нашия код или проблем със съвместимостта на браузъра, тази страница не може да се покаже правилно.",
"error.unexpected_crash.explanation_addons": "Тази страница не може да се покаже правилно. Тази грешка вероятно е причинена от добавка на браузъра или инструменти за автоматичен превод.",
"error.unexpected_crash.next_steps": "Опитайте да опресните страницата. Ако това не помогне, все още можете да използвате Mastodon чрез различен браузър или приложение.",
"error.unexpected_crash.next_steps_addons": "Опитайте да ги деактивирате и да опресните страницата. Ако това не помогне, може все още да използвате Mastodon чрез различен браузър или приложение.",
"error.unexpected_crash.next_steps_addons": "Опитайте се да ги изключите и да опресните страницата. Ако това не помогне, то още може да използвате Mastodon чрез различен браузър или приложение.",
"errors.unexpected_crash.copy_stacktrace": "Копиране на stacktrace-а в клипборда",
"errors.unexpected_crash.report_issue": "Сигнал за проблем",
"explore.search_results": "Резултати от търсенето",
@ -236,36 +238,36 @@
"explore.title": "Разглеждане",
"explore.trending_links": "Новини",
"explore.trending_statuses": "Публикации",
"explore.trending_tags": "Тагове",
"explore.trending_tags": "Хаштагове",
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
"filter_modal.added.context_mismatch_title": "Несъвпадение на контекста!",
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
"filter_modal.added.expired_title": "Изтекал филтър!",
"filter_modal.added.expired_title": "Изтекъл филтър!",
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
"filter_modal.added.review_and_configure_title": "Настройки на филтър",
"filter_modal.added.review_and_configure_title": "Настройки на филтъра",
"filter_modal.added.settings_link": "страница с настройки",
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
"filter_modal.added.title": "Филтърът е добавен!",
"filter_modal.select_filter.context_mismatch": "не е приложимо за този контекст",
"filter_modal.select_filter.expired": "изтекло",
"filter_modal.select_filter.prompt_new": "Нова категория: {name}",
"filter_modal.select_filter.search": "Търси или създай",
"filter_modal.select_filter.search": "Търсене или създаване",
"filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова",
"filter_modal.select_filter.title": "Филтриране на поста",
"filter_modal.title.status": "Филтрирай пост",
"filter_modal.select_filter.title": "Филтриране на публ.",
"filter_modal.title.status": "Филтриране на публ.",
"follow_recommendations.done": "Готово",
"follow_recommendations.heading": "Следвайте хора, които харесвате, за да виждате техните съобщения! Ето някои предложения.",
"follow_recommendations.lead": "Съобщения от хора, които следвате, ще се показват в хронологичен ред на вашата главна страница. Не се страхувайте, че ще сгрешите, по всяко време много лесно можете да спрете да ги следвате!",
"follow_recommendations.heading": "Следвайте хора, от които харесвате да виждате публикации! Ето някои предложения.",
"follow_recommendations.lead": "Публикациите от хората, които следвате, ще се показват в хронологично в началния ви инфопоток. Не се страхувайте, че ще сгрешите, по всяко време много лесно може да спрете да ги следвате!",
"follow_request.authorize": "Упълномощаване",
"follow_request.reject": "Отхвърляне",
"follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.about": "Относно",
"footer.directory": "Директория на профилите",
"footer.get_app": "Вземане на приложението",
"footer.invite": "Поканване на хора",
"footer.keyboard_shortcuts": "Клавишни съчетания",
"footer.privacy_policy": "Политика за поверителност",
"footer.source_code": "Преглед на изходния код",
"generic.saved": "Запазено",
"getting_started.heading": "Първи стъпки",
"hashtag.column_header.tag_mode.all": "и {additional}",
@ -276,7 +278,7 @@
"hashtag.column_settings.tag_mode.all": "Всичко това",
"hashtag.column_settings.tag_mode.any": "Някое от тези",
"hashtag.column_settings.tag_mode.none": "Никое от тези",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.column_settings.tag_toggle": "Включва допълнителни хаштагове за тази колона",
"hashtag.follow": "Следване на хаштаг",
"hashtag.unfollow": "Спиране на следване на хаштаг",
"home.column_settings.basic": "Основно",
@ -288,89 +290,90 @@
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
"interaction_modal.on_another_server": "На различен сървър",
"interaction_modal.on_this_server": "На този сървър",
"interaction_modal.other_server_instructions": "Копипейстнете този URL адрес в полето за търсене на любимото си приложение Mastodon или мрежови интерфейс на своя Mastodon сървър.",
"interaction_modal.preamble": "Откак Mastodon е децентрализиран, може да употребявате съществуващ акаунт, разположен на друг сървър на Mastodon или съвместима платформа, ако нямате акаунт на този сървър.",
"interaction_modal.title.favourite": "Любими публикации на {name}",
"interaction_modal.title.follow": "Последване на {name}",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"interaction_modal.title.reply": "Отговаряне на публикацията на {name}",
"intervals.full.days": "{number, plural, one {# ден} other {# дни}}",
"intervals.full.hours": "{number, plural, one {# час} other {# часа}}",
"intervals.full.minutes": "{number, plural, one {# минута} other {# минути}}",
"keyboard_shortcuts.back": "за придвижване назад",
"keyboard_shortcuts.blocked": "за отваряне на списъка с блокирани потребители",
"keyboard_shortcuts.back": "Навигиране назад",
"keyboard_shortcuts.blocked": "Отваряне на списъка с блокирани потребители",
"keyboard_shortcuts.boost": "за споделяне",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.column": "Съсредоточение на колона",
"keyboard_shortcuts.compose": "за фокусиране на текстовото пространство за композиране",
"keyboard_shortcuts.description": "Описание",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "за придвижване надолу в списъка",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "за поставяне в любими",
"keyboard_shortcuts.favourites": "за отваряне на списъка с любими",
"keyboard_shortcuts.federated": "да отвори обединена хронология",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.home": "за отваряне на началната емисия",
"keyboard_shortcuts.direct": "за отваряне на колоната с директни съобщения",
"keyboard_shortcuts.down": "Преместване надолу в списъка",
"keyboard_shortcuts.enter": "Отваряне на публикация",
"keyboard_shortcuts.favourite": "Любима публикация",
"keyboard_shortcuts.favourites": "Отваряне на списъка с любими",
"keyboard_shortcuts.federated": "Отваряне на федерална часова ос",
"keyboard_shortcuts.heading": "Клавишни съчетания",
"keyboard_shortcuts.home": "Отваряне на началната часова ос",
"keyboard_shortcuts.hotkey": "Бърз клавиш",
"keyboard_shortcuts.legend": "за показване на тази легенда",
"keyboard_shortcuts.local": "за отваряне на локалната емисия",
"keyboard_shortcuts.mention": "за споменаване на автор",
"keyboard_shortcuts.muted": "за отваряне на списъка със заглушени потребители",
"keyboard_shortcuts.my_profile": "за отваряне на вашия профил",
"keyboard_shortcuts.notifications": "за отваряне на колоната с известия",
"keyboard_shortcuts.open_media": "за отваряне на мултимедия",
"keyboard_shortcuts.pinned": "за отваряне на списъка със закачени публикации",
"keyboard_shortcuts.profile": "за отваряне на авторския профил",
"keyboard_shortcuts.reply": "за отговаряне",
"keyboard_shortcuts.requests": "за отваряне на списъка със заявки за последване",
"keyboard_shortcuts.legend": "Показване на тази легенда",
"keyboard_shortcuts.local": "Отваряне на местна часова ос",
"keyboard_shortcuts.mention": "Споменаване на автор",
"keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители",
"keyboard_shortcuts.my_profile": "Отваряне на профила ви",
"keyboard_shortcuts.notifications": "Отваряне на колоната с известия",
"keyboard_shortcuts.open_media": "Отваряне на мултимедия",
"keyboard_shortcuts.pinned": "Отваряне на списъка със закачени публикации",
"keyboard_shortcuts.profile": "Отваряне на профила на автора",
"keyboard_shortcuts.reply": "Отговаряне на публикация",
"keyboard_shortcuts.requests": "Отваряне на списъка със заявки за последване",
"keyboard_shortcuts.search": "за фокусиране на търсенето",
"keyboard_shortcuts.spoilers": "за показване/скриване на ПС полето",
"keyboard_shortcuts.start": "за отваряне на колоната \"първи стъпки\"",
"keyboard_shortcuts.toggle_hidden": "за показване/скриване на текст зад ПС",
"keyboard_shortcuts.toggle_sensitivity": "за показване/скриване на мултимедия",
"keyboard_shortcuts.toot": "за започване на чисто нова публикация",
"keyboard_shortcuts.toggle_sensitivity": "Показване/скриване на мултимедията",
"keyboard_shortcuts.toot": "Начало на нова публикация",
"keyboard_shortcuts.unfocus": "за дефокусиране на текстовото поле за композиране/търсене",
"keyboard_shortcuts.up": "за придвижване нагоре в списъка",
"lightbox.close": "Затвори",
"lightbox.compress": "Компресиране на полето за преглед на изображение",
"lightbox.expand": "Разгъване на полето за преглед на изображение",
"keyboard_shortcuts.up": "Преместване нагоре в списъка",
"lightbox.close": "Затваряне",
"lightbox.compress": "Свиване на полето за преглед на образи",
"lightbox.expand": "Разгъване на полето за преглед на образи",
"lightbox.next": "Напред",
"lightbox.previous": "Назад",
"limited_account_hint.action": "Покажи профила въпреки това",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"limited_account_hint.title": "Този профил е бил скрит от модераторита на {domain}.",
"lists.account.add": "Добавяне към списък",
"lists.account.remove": "Премахване от списък",
"lists.delete": "Изтриване на списък",
"lists.edit": "Редакция на списък",
"lists.edit": "Промяна на списъка",
"lists.edit.submit": "Промяна на заглавие",
"lists.new.create": "Добавяне на списък",
"lists.new.title_placeholder": "Име на нов списък",
"lists.replies_policy.followed": "Някой последван потребител",
"lists.replies_policy.list": "Членове на списъка",
"lists.replies_policy.none": "Никой",
"lists.replies_policy.none": "Никого",
"lists.replies_policy.title": "Показване на отговори на:",
"lists.search": "Търсене сред хора, които следвате",
"lists.search": "Търсене измежду последваните",
"lists.subheading": "Вашите списъци",
"load_pending": "{count, plural, one {# нов обект} other {# нови обекти}}",
"loading_indicator.label": "Зареждане...",
"media_gallery.toggle_visible": "Скриване на {number, plural, one {изображение} other {изображения}}",
"missing_indicator.label": "Не е намерено",
"missing_indicator.sublabel": "Този ресурс не може да бъде намерен",
"mute_modal.duration": "Продължителност",
"mute_modal.hide_notifications": "Скриване на известия от този потребител?",
"missing_indicator.sublabel": "Ресурсът не може да се намери",
"moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.",
"mute_modal.duration": "Времетраене",
"mute_modal.hide_notifications": "Скривате ли известията от този потребител?",
"mute_modal.indefinite": "Неопределено",
"navigation_bar.about": "About",
"navigation_bar.about": "За тази инстанция",
"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": "Hidden domains",
"navigation_bar.edit_profile": "Редактирай профил",
"navigation_bar.explore": "Разглеждане",
"navigation_bar.domain_blocks": "Блокирани домейни",
"navigation_bar.edit_profile": "Редактиране на профила",
"navigation_bar.explore": "Изследване",
"navigation_bar.favourites": "Любими",
"navigation_bar.filters": "Заглушени думи",
"navigation_bar.follow_requests": "Заявки за последване",
@ -381,222 +384,222 @@
"navigation_bar.personal": "Лично",
"navigation_bar.pins": "Закачени публикации",
"navigation_bar.preferences": "Предпочитания",
"navigation_bar.public_timeline": "Публичен канал",
"navigation_bar.search": "Search",
"navigation_bar.public_timeline": "Федеративна часова ос",
"navigation_bar.search": "Търсене",
"navigation_bar.security": "Сигурност",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"not_signed_in_indicator.not_signed_in": "Трябва да се регистрирате за достъп до този ресурс.",
"notification.admin.report": "{name} докладва {target}",
"notification.admin.sign_up": "{name} се регистрира",
"notification.favourite": "{name} хареса твоята публикация",
"notification.follow": "{name} те последва",
"notification.favourite": "{name} направи любима ваша публикация",
"notification.follow": "{name} ви последва",
"notification.follow_request": "{name} поиска да ви последва",
"notification.mention": "{name} те спомена",
"notification.mention": "{name} ви спомена",
"notification.own_poll": "Анкетата ви приключи",
"notification.poll": "Анкета, в която сте гласували, приключи",
"notification.poll": "Анкета, в която гласувахте, приключи",
"notification.reblog": "{name} сподели твоята публикация",
"notification.status": "{name} току-що публикува",
"notification.update": "{name} промени публикация",
"notifications.clear": "Изчистване на известия",
"notifications.clear_confirmation": "Сигурни ли сте, че искате да изчистите окончателно всичките си известия?",
"notifications.clear": "Изчистване на известията",
"notifications.clear_confirmation": "Наистина ли искате да изчистите завинаги всичките си известия?",
"notifications.column_settings.admin.report": "Нови доклади:",
"notifications.column_settings.admin.sign_up": "Нови регистрации:",
"notifications.column_settings.alert": "Десктоп известия",
"notifications.column_settings.favourite": "Предпочитани:",
"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": "Покажи лентата с филтри",
"notifications.column_settings.filter_bar.show_bar": "Показване на лентата с филтри",
"notifications.column_settings.follow": "Нови последователи:",
"notifications.column_settings.follow_request": "Нови заявки за последване:",
"notifications.column_settings.mention": "Споменавания:",
"notifications.column_settings.poll": "Резултати от анкета:",
"notifications.column_settings.push": "Изскачащи известия",
"notifications.column_settings.reblog": "Споделяния:",
"notifications.column_settings.show": "Покажи в колона",
"notifications.column_settings.show": "Показване в колоната",
"notifications.column_settings.sound": "Пускане на звук",
"notifications.column_settings.status": "Нови публикации:",
"notifications.column_settings.unread_notifications.category": "Непрочетени известия",
"notifications.column_settings.unread_notifications.highlight": "Отбележи непрочетените уведомления",
"notifications.column_settings.unread_notifications.highlight": "Изтъкване на непрочетените известия",
"notifications.column_settings.update": "Редакции:",
"notifications.filter.all": "Всичко",
"notifications.filter.boosts": "Споделяния",
"notifications.filter.favourites": "Любими",
"notifications.filter.follows": "Последвания",
"notifications.filter.mentions": "Споменавания",
"notifications.filter.polls": "Резултати от анкета",
"notifications.filter.statuses": "Актуализации от хора, които следите",
"notifications.filter.polls": "Резултати от анкетата",
"notifications.filter.statuses": "Новости от последваните",
"notifications.grant_permission": "Даване на разрешение.",
"notifications.group": "{count} известия",
"notifications.mark_as_read": "Маркиране на всички известия като прочетени",
"notifications.mark_as_read": "Отбелязване на всички известия като прочетени",
"notifications.permission_denied": "Известията на работния плот не са налични поради предварително отказана заявка за разрешение в браузъра",
"notifications.permission_denied_alert": "Известията на работния плот не могат да бъдат активирани, тъй като разрешението на браузъра е отказвано преди",
"notifications.permission_required": "Известията на работния плот не са налични, тъй като необходимото разрешение не е предоставено.",
"notifications_permission_banner.enable": "Активиране на известията на работния плот",
"notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, активирайте известията на работния плот. Можете да контролирате точно кои типове взаимодействия генерират известия на работния плот чрез бутона {icon} по-горе, след като бъдат активирани.",
"notifications_permission_banner.title": "Никога не пропускайте нищо",
"notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.",
"notifications_permission_banner.enable": "Включване на известията на работния плот",
"notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.",
"notifications_permission_banner.title": "Никога не пропускате нещо",
"picture_in_picture.restore": "Връщане обратно",
"poll.closed": "Затворено",
"poll.refresh": "Опресняване",
"poll.total_people": "{count, plural, one {# човек} other {# човека}}",
"poll.total_votes": "{count, plural, one {# глас} other {# гласа}}",
"poll.vote": "Гласуване",
"poll.voted": "Вие гласувахте за този отговор",
"poll.voted": "Гласувахте за този отговор",
"poll.votes": "{votes, plural, one {# глас} other {# гласа}}",
"poll_button.add_poll": "Добавяне на анкета",
"poll_button.remove_poll": "Премахване на анкета",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.change": "Промяна на поверителността на публикация",
"privacy.direct.long": "Видимо само за споменатите потребители",
"privacy.direct.short": "Само споменатите хора",
"privacy.private.long": "Post to followers only",
"privacy.private.long": "Видимо само за последователите",
"privacy.private.short": "Само последователи",
"privacy.public.long": "Видимо за всички",
"privacy.public.short": "Публично",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Скрито",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"privacy_policy.last_updated": "Последно осъвременяване на {date}",
"privacy_policy.title": "Политика за поверителност",
"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.hours": "{number}ч",
"relative_time.days": "{number}д.",
"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.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.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.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": "Заглушаване",
"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": "Reporting",
"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_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"report.target": "Докладване на {target}",
"report.thanks.take_action": "Ето възможностите ви за управление какво виждате в Mastodon:",
"report.thanks.take_action_actionable": "Докато преглеждаме това, може да предприемете действие срещу @{name}:",
"report.thanks.title": "Не искате ли да виждате това?",
"report.thanks.title_actionable": "Благодарности за докладването, ще го прегледаме.",
"report.unfollow": "Стоп на следването на @{name}",
"report.unfollow_explanation": "Последвали сте този акаунт. За да не виждате повече публикациите му в началния си инфоканал, то спрете да го следвате.",
"report_notification.attached_statuses": "прикачено {count, plural, one {{count} публикация} other {{count} публикации}}",
"report_notification.categories.other": "Друго",
"report_notification.categories.spam": "Спам",
"report_notification.categories.violation": "Нарушение на правилото",
"report_notification.open": "Отваряне на доклада",
"search.placeholder": "Търсене",
"search.search_or_paste": "Search or paste URL",
"search.search_or_paste": "Търсене или поставяне на URL адрес",
"search_popout.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": "хаштаг",
"search_popout.tips.status": "status",
"search_popout.tips.status": "публикация",
"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": "Не е намерено нищо за това търсене",
"search_results.nothing_found": "Не може да се намери каквото и да било за тези термини при търсене",
"search_results.statuses": "Публикации",
"search_results.statuses_fts_disabled": "Търсенето на публикации по тяхното съдържание не е активирано за този Mastodon сървър.",
"search_results.title": "Search for {q}",
"search_results.title": "Търсене за {q}",
"search_results.total": "{count, number} {count, plural, one {резултат} other {резултата}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
"server_banner.active_users": "active users",
"server_banner.administered_by": "Administered by:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
"server_banner.learn_more": "Learn more",
"server_banner.server_stats": "Server stats:",
"sign_in_banner.create_account": "Create account",
"sign_in_banner.sign_in": "Sign in",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
"server_banner.about_active_users": "Ползващите сървъра през последните 30 дни (дейните месечно потребители)",
"server_banner.active_users": "дейни потребители",
"server_banner.administered_by": "Администрира се от:",
"server_banner.introduction": "{domain} е част от децентрализираната социална мрежа, поддържана от {mastodon}.",
"server_banner.learn_more": "Научете повече",
"server_banner.server_stats": "Статистика на сървъра:",
"sign_in_banner.create_account": "Създаване на акаунт",
"sign_in_banner.sign_in": "Вход",
"sign_in_banner.text": "Влезте, за да последвате профили или хаштагове, любимо, споделяне и отговаряне на публикации или взаимодействие от акаунта ви на друг сървър.",
"status.admin_account": "Отваряне на интерфейс за модериране за @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Блокиране на @{name}",
"status.bookmark": "Отмятане",
"status.cancel_reblog_private": "Отсподеляне",
"status.cannot_reblog": "Тази публикация не може да бъде споделена",
"status.copy": "Copy link to status",
"status.copy": "Копиране на връзката към публикация",
"status.delete": "Изтриване",
"status.detailed_status": "Подробен изглед на разговор",
"status.direct": "Директно съобщение към @{name}",
"status.edit": "Редакция",
"status.detailed_status": "Подробен изглед на разговора",
"status.direct": "Директно съобщение до @{name}",
"status.edit": "Редактиране",
"status.edited": "Редактирано на {date}",
"status.edited_x_times": "Редактирано {count, plural,one {{count} път} other {{count} пъти}}",
"status.embed": "Вграждане",
"status.favourite": "Предпочитани",
"status.filter": "Филтриране на поста",
"status.favourite": "Любимо",
"status.filter": "Филтриране на публ.",
"status.filtered": "Филтрирано",
"status.hide": "Скриване на поста",
"status.hide": "Скриване на публ.",
"status.history.created": "{name} създаде {date}",
"status.history.edited": "{name} редактира {date}",
"status.load_more": "Зареждане на още",
"status.media_hidden": "Мултимедията е скрита",
"status.mention": "Споменаване",
"status.mention": "Споменаване на @{name}",
"status.more": "Още",
"status.mute": "Заглушаване на @{name}",
"status.mute_conversation": "Заглушаване на разговор",
"status.open": "Expand this status",
"status.pin": "Закачане на профил",
"status.mute_conversation": "Заглушаване на разговора",
"status.open": "Разширяване на публикацията",
"status.pin": "Закачане в профила",
"status.pinned": "Закачена публикация",
"status.read_more": "Още информация",
"status.read_more": "Още за четене",
"status.reblog": "Споделяне",
"status.reblog_private": "Споделяне с оригинална видимост",
"status.reblogged_by": "{name} сподели",
"status.reblogs.empty": "Все още никой не е споделил тази публикация. Когато някой го направи, ще се покаже тук.",
"status.redraft": "Изтриване и преработване",
"status.remove_bookmark": "Премахване на отметка",
"status.replied_to": "Replied to {name}",
"status.remove_bookmark": "Премахване на отметката",
"status.replied_to": "Отговори на {name}",
"status.reply": "Отговор",
"status.replyAll": "Отговор на тема",
"status.report": "Докладване на @{name}",
"status.sensitive_warning": "Деликатно съдържание",
"status.sensitive_warning": "Чувствително съдържание",
"status.share": "Споделяне",
"status.show_filter_reason": "Покажи въпреки това",
"status.show_less": "Покажи по-малко",
"status.show_less": "Показване на по-малко",
"status.show_less_all": "Покажи по-малко за всички",
"status.show_more": "Покажи повече",
"status.show_more_all": "Покажи повече за всички",
"status.show_original": "Show original",
"status.translate": "Translate",
"status.translated_from_with": "Translated from {lang} using {provider}",
"status.show_more": "Показване на повече",
"status.show_more_all": "Показване на повече за всички",
"status.show_original": "Показване на първообраза",
"status.translate": "Превод",
"status.translated_from_with": "Преведено от {lang}, използвайки {provider}",
"status.uncached_media_warning": "Не е налично",
"status.unmute_conversation": "Раззаглушаване на разговор",
"status.unpin": "Разкачане от профил",
"status.unpin": "Разкачане от профила",
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
"subscribed_languages.save": "Save changes",
"subscribed_languages.target": "Change subscribed languages for {target}",
"subscribed_languages.save": "Запазване на промените",
"subscribed_languages.target": "Смяна на езика за {target}",
"suggestions.dismiss": "Отхвърляне на предложение",
"suggestions.header": "Може да се интересувате от…",
"tabs_bar.federated_timeline": "Обединен",
"tabs_bar.federated_timeline": "Федерална",
"tabs_bar.home": "Начало",
"tabs_bar.local_timeline": "Локално",
"tabs_bar.local_timeline": "Местни",
"tabs_bar.notifications": "Известия",
"time_remaining.days": "{number, plural, one {# ден} other {# дни}} остава",
"time_remaining.hours": "{number, plural, one {# час} other {# часа}} остава",
@ -607,41 +610,41 @@
"timeline_hint.resources.followers": "Последователи",
"timeline_hint.resources.follows": "Последвани",
"timeline_hint.resources.statuses": "По-стари публикации",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.counter_by_accounts": "{count, plural, one {{counter} човек} other {{counter} души}} {days, plural, one {за последния {days} ден} other {за последните {days} дни}}",
"trends.trending_now": "Налагащи се сега",
"ui.beforeunload": "Черновата ви ще бъде загубена, ако излезете от Mastodon.",
"ui.beforeunload": "Черновата ви ще се загуби, ако излезете от Mastodon.",
"units.short.billion": "{count}млрд",
"units.short.million": "{count}млн",
"units.short.thousand": "{count}хил",
"upload_area.title": "Влачене и пускане за качване",
"upload_button.label": "Добави медия",
"upload_error.limit": "Превишен лимит за качване на файлове.",
"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.audio_description": "Опишете за хора със загубен слух",
"upload_form.description": "Опишете за хора със зрително увреждане",
"upload_form.description_missing": "Няма добавено описание",
"upload_form.edit": "Редактиране",
"upload_form.thumbnail": "Промяна на миниизображението",
"upload_form.undo": "Отмяна",
"upload_form.video_description": "Опишете за хора със загуба на слуха или зрително увреждане",
"upload_form.undo": "Изтриване",
"upload_form.video_description": "Опишете за хора със загубен слух или зрително увреждане",
"upload_modal.analyzing_picture": "Анализ на снимка…",
"upload_modal.apply": "Прилагане",
"upload_modal.applying": "Прилагане…",
"upload_modal.choose_image": "Избор на изображение",
"upload_modal.choose_image": "Избор на образ",
"upload_modal.description_placeholder": "Ах, чудна българска земьо, полюшвай цъфтящи жита",
"upload_modal.detect_text": "Откриване на текст от картина",
"upload_modal.edit_media": "Редакция на мултимедия",
"upload_modal.hint": "Щракнете или плъзнете кръга на визуализацията, за да изберете фокусна точка, която винаги ще бъде видима на всички миниатюри.",
"upload_modal.preparing_ocr": "Подготване на ОРС…",
"upload_modal.preview_label": "Визуализация ({ratio})",
"upload_progress.label": "Uploading…",
"upload_progress.processing": "Processing…",
"video.close": "Затваряне на видео",
"video.download": "Изтегляне на файл",
"upload_modal.preparing_ocr": "Подготовка за оптично разпознаване на знаци…",
"upload_modal.preview_label": "Нагледно ({ratio})",
"upload_progress.label": "Качване...",
"upload_progress.processing": "Обработка…",
"video.close": "Затваряне на видеото",
"video.download": "Изтегляне на файла",
"video.exit_fullscreen": "Изход от цял екран",
"video.expand": "Разгъване на видео",
"video.expand": "Разгъване на видеото",
"video.fullscreen": "Цял екран",
"video.hide": "Скриване на видео",
"video.hide": "Скриване на видеото",
"video.mute": "Обеззвучаване",
"video.pause": "Пауза",
"video.play": "Пускане",

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural,one {{counter} জনকে অনুসরণ} other {{counter} জনকে অনুসরণ}}",
"account.follows.empty": "এই সদস্য কাওকে এখনো অনুসরণ করেন না.",
"account.follows_you": "তোমাকে অনুসরণ করে",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "@{name}'র সমর্থনগুলি লুকিয়ে ফেলুন",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
@ -46,10 +45,11 @@
"account.locked_info": "এই নিবন্ধনের গোপনীয়তার ক্ষেত্র তালা দেওয়া আছে। নিবন্ধনকারী অনুসরণ করার অনুমতি যাদেরকে দেবেন, শুধু তারাই অনুসরণ করতে পারবেন।",
"account.media": "মিডিয়া",
"account.mention": "@{name} কে উল্লেখ করুন",
"account.moved_to": "{name} কে এখানে সরানো হয়েছে:",
"account.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "@{name} কে নিঃশব্দ করুন",
"account.mute_notifications": "@{name} র প্রজ্ঞাপন আপনার কাছে নিঃশব্দ করুন",
"account.muted": "নিঃশব্দ",
"account.open_original_page": "Open original page",
"account.posts": "টুট",
"account.posts_with_replies": "টুট এবং মতামত",
"account.report": "@{name} কে রিপোর্ট করুন",
@ -181,6 +181,8 @@
"directory.local": "শুধু {domain} থেকে",
"directory.new_arrivals": "নতুন আগত",
"directory.recently_active": "সম্প্রতি সক্রিয়",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "দৃশ্যতার অবস্থা বদলান",
"missing_indicator.label": "খুঁজে পাওয়া যায়নি",
"missing_indicator.sublabel": "জিনিসটা খুঁজে পাওয়া যায়নি",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "সময়কাল",
"mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?",
"mute_modal.indefinite": "Indefinite",

View File

@ -1,17 +1,15 @@
{
"about.blocks": "Servijerioù habaskaet",
"about.contact": "Darempred :",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Abeg",
"about.domain_blocks.domain": "Domani",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Strizhder",
"about.disclaimer": "Mastodon zo ur meziant frank, open-source hag ur merk marilhet eus Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Gant Mastodon e c'hellit gwelet danvez hag eskemm gant implijerien·ezed eus forzh peseurt servijer er fedibed peurliesañ. Setu an nemedennoù a zo bet graet evit ar servijer-mañ e-unan.",
"about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.",
"about.domain_blocks.silenced.title": "Bevennet",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Astalet",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.not_available": "An titour-mañ ne c'heller ket gwelet war ar servijer-mañ.",
"about.powered_by": "Rouedad sokial digreizenned kaset gant {mastodon}",
"about.rules": "Reolennoù ar servijer",
"account.account_note_header": "Notenn",
"account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù",
@ -21,16 +19,16 @@
"account.block_domain": "Stankañ an domani {domain}",
"account.blocked": "Stanket",
"account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin",
"account.cancel_follow_request": "Withdraw follow request",
"account.cancel_follow_request": "Nullañ ar reked heuliañ",
"account.direct": "Kas ur c'hemennad eeun da @{name}",
"account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}",
"account.domain_blocked": "Domani stanket",
"account.edit_profile": "Kemmañ ar profil",
"account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}",
"account.endorse": "Lakaat war-wel war ar profil",
"account.featured_tags.last_status_at": "Kemennad diwezhañ : {date}",
"account.featured_tags.last_status_never": "Kemennad ebet",
"account.featured_tags.title": "{name}'s featured hashtags",
"account.featured_tags.last_status_at": "Kannad diwezhañ : {date}",
"account.featured_tags.last_status_never": "Kannad ebet",
"account.featured_tags.title": "Penngerioù-klik {name}",
"account.follow": "Heuliañ",
"account.followers": "Tud koumanantet",
"account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.",
@ -39,24 +37,26 @@
"account.following_counter": "{count, plural, one{{counter} C'houmanant} two{{counter} Goumanant} other {{counter} a Goumanant}}",
"account.follows.empty": "An implijer·ez-mañ na heul den ebet.",
"account.follows_you": "Ho heuilh",
"account.go_to_profile": "Gwelet ar profil",
"account.hide_reblogs": "Kuzh skignadennoù gant @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
"account.joined_short": "Amañ abaoe",
"account.languages": "Cheñch ar yezhoù koumanantet",
"account.link_verified_on": "Gwiriet eo bet perc'hennidigezh al liamm d'an deiziad-mañ : {date}",
"account.locked_info": "Prennet eo ar gont-mañ. Gant ar perc'henn e vez dibabet piv a c'hall heuliañ anezhi pe anezhañ.",
"account.media": "Media",
"account.mention": "Menegiñ @{name}",
"account.moved_to": "Dilojet en·he deus {name} da :",
"account.moved_to": "Gant {name} eo bet merket e oa bremañ h·e gont nevez :",
"account.mute": "Kuzhat @{name}",
"account.mute_notifications": "Kuzh kemennoù a-berzh @{name}",
"account.muted": "Kuzhet",
"account.open_original_page": "Open original page",
"account.posts": "Kannadoù",
"account.posts_with_replies": "Kannadoù ha respontoù",
"account.report": "Disklêriañ @{name}",
"account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ",
"account.share": "Skignañ profil @{name}",
"account.show_reblogs": "Diskouez skignadennoù @{name}",
"account.statuses_counter": "{count, plural, one {{counter} C'hemennad} two {{counter} Gemennad} other {{counter} a Gemennad}}",
"account.statuses_counter": "{count, plural, one {{counter} C'hannad} two {{counter} Gannad} other {{counter} a Gannadoù}}",
"account.unblock": "Diverzañ @{name}",
"account.unblock_domain": "Diverzañ an domani {domain}",
"account.unblock_short": "Distankañ",
@ -92,16 +92,16 @@
"bundle_modal_error.close": "Serriñ",
"bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.",
"bundle_modal_error.retry": "Klask en-dro",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
"closed_registrations.other_server_instructions": "Peogwir ez eo Mastodon digreizennet e c'heller krouiñ ur gont war ur servijer all ha kenderc'hel da zaremprediñ gant hemañ.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.find_another_server": "Kavout ur servijer all",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "About",
"column.about": "Diwar-benn",
"column.blocks": "Implijer·ezed·ien berzet",
"column.bookmarks": "Sinedoù",
"column.community": "Red-amzer lec'hel",
"column.direct": "Direct messages",
"column.direct": "Kemennad eeun",
"column.directory": "Mont a-dreuz ar profiloù",
"column.domain_blocks": "Domani berzet",
"column.favourites": "Muiañ-karet",
@ -110,7 +110,7 @@
"column.lists": "Listennoù",
"column.mutes": "Implijer·ion·ezed kuzhet",
"column.notifications": "Kemennoù",
"column.pins": "Kemennadoù spilhennet",
"column.pins": "Kannadoù spilhennet",
"column.public": "Red-amzer kevreet",
"column_back_button.label": "Distro",
"column_header.hide_settings": "Kuzhat an arventennoù",
@ -124,11 +124,11 @@
"community.column_settings.media_only": "Nemet Mediaoù",
"community.column_settings.remote_only": "Nemet a-bell",
"compose.language.change": "Cheñch yezh",
"compose.language.search": "Search languages...",
"compose.language.search": "Klask yezhoù...",
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
"compose_form.encryption_warning": "Kemennadoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.",
"compose_form.hashtag_warning": "Ne vo ket listennet ar c'hemennad-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet ar c'hemennadoù 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 ho heuliañ evit gwelet ho kemennadoù prevez.",
"compose_form.encryption_warning": "Kannadoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.",
"compose_form.hashtag_warning": "Ne vo ket listennet ar c'hannad-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet ar c'hannadoù 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 ho heuliañ evit gwelet ho kannadoù prevez.",
"compose_form.lock_disclaimer.lock": "prennet",
"compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?",
"compose_form.poll.add_option": "Ouzhpenniñ un dibab",
@ -150,10 +150,10 @@
"confirmations.block.block_and_report": "Berzañ ha Disklêriañ",
"confirmations.block.confirm": "Stankañ",
"confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.confirm": "Nullañ ar reked",
"confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?",
"confirmations.delete.confirm": "Dilemel",
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hemennad-mañ ?",
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hannad-mañ ?",
"confirmations.delete_list.confirm": "Dilemel",
"confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?",
"confirmations.discard_edit_media.confirm": "Nac'hañ",
@ -163,10 +163,10 @@
"confirmations.logout.confirm": "Digevreañ",
"confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?",
"confirmations.mute.confirm": "Kuzhat",
"confirmations.mute.explanation": "Kement-se a guzho ar c'hemennadoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met ne viro ket outañ·i a welet ho kemennadoù nag a heuliañ ac'hanoc'h.",
"confirmations.mute.explanation": "Kement-se a guzho ar c'hannadoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met ne viro ket outañ·i a welet ho kannadoù nag a heuliañ ac'hanoc'h.",
"confirmations.mute.message": "Ha sur oc'h e fell deoc'h kuzhaat {name} ?",
"confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro",
"confirmations.redraft.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hemennad-mañ hag e adskrivañ ? Kollet e vo ar merkoù « muiañ-karet » hag ar skignadennoù, hag emzivat e vo ar respontoù d'ar c'hemennad orin.",
"confirmations.redraft.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hannad-mañ hag e adskrivañ ? Kollet e vo ar merkoù « muiañ-karet » hag ar skignadennoù, hag emzivat e vo ar respontoù d'ar c'hannad orin.",
"confirmations.reply.confirm": "Respont",
"confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?",
"confirmations.unfollow.confirm": "Diheuliañ",
@ -181,13 +181,15 @@
"directory.local": "Eus {domain} hepken",
"directory.new_arrivals": "Degouezhet a-nevez",
"directory.recently_active": "Oberiant nevez zo",
"dismissable_banner.community_timeline": "Setu kemennadoù foran nevesañ an dud a zo herberchiet o c'hontoù gant {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"disabled_account_banner.account_settings": "Arventennoù ar gont",
"disabled_account_banner.text": "Ho kont {disabledAccount} zo divev evit bremañ.",
"dismissable_banner.community_timeline": "Setu kannadoù foran nevesañ an dud a zo herberchiet o c'hontoù gant {domain}.",
"dismissable_banner.dismiss": "Diverkañ",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
"embed.instructions": "Enframmit ar c'hemennad-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.",
"embed.instructions": "Enframmit ar c'hannad-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.",
"embed.preview": "Setu penaos e teuio war wel :",
"emoji_button.activity": "Obererezh",
"emoji_button.clear": "Diverkañ",
@ -205,22 +207,22 @@
"emoji_button.symbols": "Arouezioù",
"emoji_button.travel": "Lec'hioù ha Beajoù",
"empty_column.account_suspended": "Kont ehanet",
"empty_column.account_timeline": "Kemennad ebet amañ !",
"empty_column.account_timeline": "Kannad ebet amañ !",
"empty_column.account_unavailable": "Profil dihegerz",
"empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.",
"empty_column.bookmarked_statuses": "N'ho peus kemennad ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
"empty_column.bookmarked_statuses": "N'ho peus kannad ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan 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.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 kemennad muiañ-karet ebet c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
"empty_column.favourites": "Den ebet n'eus lakaet ar c'hemennad-mañ en e reoù muiañ-karet c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.",
"empty_column.favourited_statuses": "N'ho peus kannad muiañ-karet ebet c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
"empty_column.favourites": "Den ebet n'eus ouzhpennet ar c'hannad-mañ en e reoù muiañ-karet c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.",
"empty_column.follow_recommendations": "Seblant a ra ne vez ket genelet damvenegoù evidoc'h. Gallout a rit implijout un enklask evit klask tud hag a vefe anavezet ganeoc'h pe ergerzhout gerioù-klik diouzh ar c'hiz.",
"empty_column.follow_requests": "N'ho peus reked heuliañ ebet c'hoazh. Pa vo resevet unan e teuio war wel amañ.",
"empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.",
"empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.",
"empty_column.home.suggestions": "Gwellout damvenegoù",
"empty_column.list": "Goullo eo ar roll-mañ evit c'hoazh. Pa vo embannet kemennadoù nevez gant e izili e teuint war wel amañ.",
"empty_column.list": "Goullo eo ar roll-mañ evit c'hoazh. Pa vo embannet kannadoù nevez gant e izili e teuint war wel amañ.",
"empty_column.lists": "N'ho peus roll ebet c'hoazh. Pa vo krouet unan ganeoc'h e vo diskouezet amañ.",
"empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.",
"empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.",
@ -235,7 +237,7 @@
"explore.suggested_follows": "Evidoc'h",
"explore.title": "Ergerzhit",
"explore.trending_links": "Keleier",
"explore.trending_statuses": "Kemennadoù",
"explore.trending_statuses": "Kannadoù",
"explore.trending_tags": "Gerioù-klik",
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
"filter_modal.added.context_mismatch_title": "Context mismatch!",
@ -244,18 +246,18 @@
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
"filter_modal.added.review_and_configure_title": "Filter settings",
"filter_modal.added.settings_link": "settings page",
"filter_modal.added.short_explanation": "Ar c'hemennad-mañ zo bet ouzhpennet d'ar rummad sil-mañ : {title}.",
"filter_modal.added.short_explanation": "Ar c'hannad-mañ zo bet ouzhpennet d'ar rummad sil-mañ : {title}.",
"filter_modal.added.title": "Filter added!",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "expired",
"filter_modal.select_filter.prompt_new": "New category: {name}",
"filter_modal.select_filter.search": "Search or create",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Silañ ar c'hemennad-mañ",
"filter_modal.title.status": "Silañ ur c'hemennad",
"filter_modal.select_filter.title": "Silañ ar c'hannad-mañ",
"filter_modal.title.status": "Silañ ur c'hannad",
"follow_recommendations.done": "Graet",
"follow_recommendations.heading": "Heuilhit tud a blijfe deoc'h lenn o c'hemennadoù ! Setu un nebeud erbedadennoù.",
"follow_recommendations.lead": "Kemennadoù gant tud a vez heuliet ganeoc'h a zeuio war wel en urzh kronologel war ho red degemer. Arabat kaout aon ober fazioù, diheuliañ tud a c'hellit ober aes ha forzh pegoulz !",
"follow_recommendations.heading": "Heuilhit tud a blijfe deoc'h lenn o c'hannadoù ! Setu un nebeud erbedadennoù.",
"follow_recommendations.lead": "Kannadoù gant tud a vez heuliet ganeoc'h a zeuio war wel en urzh kronologel war ho red degemer. Arabat kaout aon ober fazioù, diheuliañ tud a c'hellit ober aes ha forzh pegoulz !",
"follow_request.authorize": "Aotren",
"follow_request.reject": "Nac'hañ",
"follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.",
@ -284,31 +286,31 @@
"home.column_settings.show_replies": "Diskouez ar respontoù",
"home.hide_announcements": "Kuzhat ar c'hemennoù",
"home.show_announcements": "Diskouez ar c'hemennoù",
"interaction_modal.description.favourite": "Gant ur gont Mastodon e c'hellit ouzhpennañ ar c'hemennad-mañ d'ho re vuiañ-karet evit lakaat an den en deus eñ skrivet da c'houzout e plij deoc'h hag e enrollañ evit diwezhatoc'h.",
"interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev h·e gemennadoù war ho red degemer.",
"interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ ar c'hemennad-mañ evit rannañ anezhañ gant ho heulierien·ezed.",
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'ar c'hemennad-mañ.",
"interaction_modal.description.favourite": "Gant ur gont Mastodon e c'hellit ouzhpennañ ar c'hannad-mañ d'ho re vuiañ-karet evit lakaat an den en deus eñ skrivet da c'houzout e plij deoc'h hag en enrollañ evit diwezhatoc'h.",
"interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev h·e c'h·gannadoù war ho red degemer.",
"interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ ar c'hannad-mañ evit rannañ anezhañ gant ho heulierien·ezed.",
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'ar c'hannad-mañ.",
"interaction_modal.on_another_server": "War ur servijer all",
"interaction_modal.on_this_server": "War ar servijer-mañ",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Ouzhpennañ kemennad {name} d'ar re vuiañ-karet",
"interaction_modal.title.favourite": "Ouzhpennañ kannad {name} d'ar re vuiañ-karet",
"interaction_modal.title.follow": "Heuliañ {name}",
"interaction_modal.title.reblog": "Skignañ kemennad {name}",
"interaction_modal.title.reply": "Respont da gemennad {name}",
"interaction_modal.title.reblog": "Skignañ kannad {name}",
"interaction_modal.title.reply": "Respont da gannad {name}",
"intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}",
"intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}",
"intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}",
"keyboard_shortcuts.back": "Distreiñ",
"keyboard_shortcuts.blocked": "Digeriñ roll an implijer.ezed.rien stanket",
"keyboard_shortcuts.boost": "Skignañ ar c'hemennad",
"keyboard_shortcuts.boost": "Skignañ ar c'hannad",
"keyboard_shortcuts.column": "Fokus ar bann",
"keyboard_shortcuts.compose": "Fokus an takad testenn",
"keyboard_shortcuts.description": "Deskrivadur",
"keyboard_shortcuts.direct": "evit digeriñ bann ar c'hemennadoù eeun",
"keyboard_shortcuts.down": "Diskennañ er roll",
"keyboard_shortcuts.enter": "Digeriñ ar c'hemennad",
"keyboard_shortcuts.favourite": "Ouzhpennañ ar c'hemennad d'ar re vuiañ-karet",
"keyboard_shortcuts.enter": "Digeriñ ar c'hannad",
"keyboard_shortcuts.favourite": "Ouzhpennañ ar c'hannad d'ar re vuiañ-karet",
"keyboard_shortcuts.favourites": "Digeriñ roll an toudoù muiañ-karet",
"keyboard_shortcuts.federated": "Digeriñ ar red-amzer kevreet",
"keyboard_shortcuts.heading": "Berradennoù klavier",
@ -321,16 +323,16 @@
"keyboard_shortcuts.my_profile": "Digeriñ ho profil",
"keyboard_shortcuts.notifications": "Digeriñ bann kemennoù",
"keyboard_shortcuts.open_media": "Digeriñ ar media",
"keyboard_shortcuts.pinned": "Digeriñ roll ar c'hemennadoù spilhennet",
"keyboard_shortcuts.pinned": "Digeriñ roll ar c'hannadoù spilhennet",
"keyboard_shortcuts.profile": "Digeriñ profil an aozer.ez",
"keyboard_shortcuts.reply": "Respont d'ar c'hemennad",
"keyboard_shortcuts.reply": "Respont d'ar c'hannad",
"keyboard_shortcuts.requests": "Digeriñ roll goulennoù heuliañ",
"keyboard_shortcuts.search": "Fokus barenn klask",
"keyboard_shortcuts.spoilers": "da guzhat/ziguzhat tachenn CW",
"keyboard_shortcuts.start": "Digeriñ bann \"Kregiñ\"",
"keyboard_shortcuts.toggle_hidden": "da guzhat/ziguzhat an desten a-dreñv CW",
"keyboard_shortcuts.toggle_sensitivity": "da guzhat/ziguzhat ur media",
"keyboard_shortcuts.toot": "Kregiñ gant ur c'hemennad nevez",
"keyboard_shortcuts.toot": "Kregiñ gant ur c'hannad nevez",
"keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask",
"keyboard_shortcuts.up": "Pignat er roll",
"lightbox.close": "Serriñ",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Kuzhat ar skeudenn} other {Kuzhat ar skeudenn}}",
"missing_indicator.label": "Digavet",
"missing_indicator.sublabel": "An danvez-se ne vez ket kavet",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Padelezh",
"mute_modal.hide_notifications": "Kuzhat kemenadennoù eus an implijer-se ?",
"mute_modal.indefinite": "Amstrizh",
@ -365,7 +368,7 @@
"navigation_bar.blocks": "Implijer·ezed·ien berzet",
"navigation_bar.bookmarks": "Sinedoù",
"navigation_bar.community_timeline": "Red-amzer lec'hel",
"navigation_bar.compose": "Skrivañ ur c'hemennad nevez",
"navigation_bar.compose": "Skrivañ ur c'hannad nevez",
"navigation_bar.direct": "Kemennadoù prevez",
"navigation_bar.discover": "Dizoleiñ",
"navigation_bar.domain_blocks": "Domanioù kuzhet",
@ -379,7 +382,7 @@
"navigation_bar.logout": "Digennaskañ",
"navigation_bar.mutes": "Implijer·ion·ezed kuzhet",
"navigation_bar.personal": "Personel",
"navigation_bar.pins": "Kemennadoù spilhennet",
"navigation_bar.pins": "Kannadoù spilhennet",
"navigation_bar.preferences": "Gwellvezioù",
"navigation_bar.public_timeline": "Red-amzer kevreet",
"navigation_bar.search": "Klask",
@ -387,15 +390,15 @@
"not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.",
"notification.admin.report": "Disklêriet eo bet {target} gant {name}",
"notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv",
"notification.favourite": "{name} en·he deus ouzhpennet ho kemennad d'h·e re vuiañ-karet",
"notification.favourite": "Gant {name} eo bet ouzhpennet ho kannad d'h·e re vuiañ-karet",
"notification.follow": "heuliañ a ra {name} ac'hanoc'h",
"notification.follow_request": "{name} en/he deus goulennet da heuliañ ac'hanoc'h",
"notification.mention": "{name} en/he deus meneget ac'hanoc'h",
"notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ",
"notification.mention": "Gant {name} oc'h bet meneget",
"notification.own_poll": "Echu eo ho sontadeg",
"notification.poll": "Ur sontadeg ho deus mouezhet warnañ a zo echuet",
"notification.reblog": "{name} en·he deus skignet ho kemennad",
"notification.status": "{name} en·he deus embannet",
"notification.update": "{name} en·he deus kemmet ur c'hemennad",
"notification.reblog": "Skignet eo bet ho kannad gant {name}",
"notification.status": "Emañ {name} o paouez embann",
"notification.update": "Kemmet ez eus bet ur c'hannad gant {name}",
"notifications.clear": "Skarzhañ ar c'hemennoù",
"notifications.clear_confirmation": "Ha sur oc'h e fell deoc'h skarzhañ ho kemennoù penn-da-benn?",
"notifications.column_settings.admin.report": "Disklêriadurioù nevez :",
@ -413,7 +416,7 @@
"notifications.column_settings.reblog": "Skignadennoù:",
"notifications.column_settings.show": "Diskouez er bann",
"notifications.column_settings.sound": "Seniñ",
"notifications.column_settings.status": "Kemennadoù nevez :",
"notifications.column_settings.status": "Kannadoù nevez :",
"notifications.column_settings.unread_notifications.category": "Kemennoù n'int ket lennet",
"notifications.column_settings.unread_notifications.highlight": "Usskediñ kemennoù nevez",
"notifications.column_settings.update": "Kemmoù :",
@ -443,7 +446,7 @@
"poll.votes": "{votes, plural,one {#votadenn} other {# votadenn}}",
"poll_button.add_poll": "Ouzhpennañ ur sontadeg",
"poll_button.remove_poll": "Dilemel ar sontadeg",
"privacy.change": "Cheñch prevezded ar c'hemennad",
"privacy.change": "Cheñch prevezded ar c'hannad",
"privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken",
"privacy.direct.short": "Tud meneget hepken",
"privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken",
@ -470,20 +473,20 @@
"relative_time.today": "hiziv",
"reply_indicator.cancel": "Nullañ",
"report.block": "Stankañ",
"report.block_explanation": "Ne vo ket gwelet h·e gemennadoù ken. Ne welo ket ho kemennadoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.",
"report.block_explanation": "Ne vo ket gwelet kannadoù ar gont-se ken. Ne welo ket ho kemennadoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.",
"report.categories.other": "All",
"report.categories.spam": "Spam",
"report.categories.violation": "Content violates one or more server rules",
"report.category.subtitle": "Choazit ar pezh a glot ar gwellañ",
"report.category.title": "Lârit deomp petra c'hoarvez gant {type}",
"report.category.title_account": "profil",
"report.category.title_status": "ar c'hemennad-mañ",
"report.category.title_status": "ar c'hannad-mañ",
"report.close": "Graet",
"report.comment.title": "Is there anything else you think we should know?",
"report.forward": "Treuzkas da: {target}",
"report.forward_hint": "War ur servijer all emañ ar c'hont-se. Kas dezhañ un adskrid disanv eus an danevell ivez?",
"report.mute": "Kuzhat",
"report.mute_explanation": "Ne vo ket gwelet h·e gemennadoù ken. Gwelet ho kemennadoù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.",
"report.mute_explanation": "Ne vo ket gwelet kannadoù ar gont-se ken. Gwelet ho kemennadoù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.",
"report.next": "War-raok",
"report.placeholder": "Askelennoù ouzhpenn",
"report.reasons.dislike": "Ne blij ket din",
@ -516,15 +519,15 @@
"search_popout.search_format": "Framm klask araokaet",
"search_popout.tips.full_text": "Testenn simpl a adkas toudoù skrivet ganeoc'h, merket ganeoc'h evel miuañ-karet, toudoù skignet, pe e-lec'h oc'h bet meneget, met ivez anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot.",
"search_popout.tips.hashtag": "ger-klik",
"search_popout.tips.status": "toud",
"search_popout.tips.status": "kannad",
"search_popout.tips.text": "Testenn simpl a adkas anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot",
"search_popout.tips.user": "implijer·ez",
"search_results.accounts": "Tud",
"search_results.all": "All",
"search_results.hashtags": "Gerioù-klik",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.statuses": "a doudoù",
"search_results.statuses_fts_disabled": "Klask toudoù dre oc'h endalc'h n'eo ket aotreet war ar servijer-mañ.",
"search_results.statuses": "Kannadoù",
"search_results.statuses_fts_disabled": "Klask kannadoù dre oc'h endalc'h n'eo ket aotreet war ar servijer-mañ.",
"search_results.title": "Search for {q}",
"search_results.total": "{count, number} {count, plural, one {disoc'h} other {a zisoc'h}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
@ -541,8 +544,8 @@
"status.block": "Berzañ @{name}",
"status.bookmark": "Ouzhpennañ d'ar sinedoù",
"status.cancel_reblog_private": "Nac'hañ ar skignadenn",
"status.cannot_reblog": "An toud-se ne c'hall ket bezañ skignet",
"status.copy": "Eilañ liamm an toud",
"status.cannot_reblog": "Ar c'hannad-se na c'hall ket bezañ skignet",
"status.copy": "Eilañ liamm ar c'hannad",
"status.delete": "Dilemel",
"status.detailed_status": "Gwel kaozeadenn munudek",
"status.direct": "Kas ur c'hemennad prevez da @{name}",
@ -551,7 +554,7 @@
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.embed": "Enframmañ",
"status.favourite": "Muiañ-karet",
"status.filter": "Filter this post",
"status.filter": "Silañ ar c'hannad-mañ",
"status.filtered": "Silet",
"status.hide": "Hide toot",
"status.history.created": "Krouet gant {name} {date}",
@ -562,14 +565,14 @@
"status.more": "Muioc'h",
"status.mute": "Kuzhat @{name}",
"status.mute_conversation": "Kuzhat ar gaozeadenn",
"status.open": "Kreskaat an toud-mañ",
"status.open": "Digeriñ ar c'hannad-mañ",
"status.pin": "Spilhennañ d'ar profil",
"status.pinned": "Toud spilhennet",
"status.pinned": "Kannad spilhennet",
"status.read_more": "Lenn muioc'h",
"status.reblog": "Skignañ",
"status.reblog_private": "Skignañ gant ar weledenn gentañ",
"status.reblogged_by": "{name} en/he deus skignet",
"status.reblogs.empty": "Den ebet n'eus skignet an toud-mañ c'hoazh. Pa vo graet gant unan bennak e vo diskouezet amañ.",
"status.reblogged_by": "Skignet gant {name}",
"status.reblogs.empty": "Den ebet n'eus skignet ar c'hannad-mañ c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.",
"status.redraft": "Diverkañ ha skrivañ en-dro",
"status.remove_bookmark": "Dilemel ar sined",
"status.replied_to": "Replied to {name}",
@ -606,7 +609,7 @@
"timeline_hint.remote_resource_not_displayed": "{resource} eus servijerien all n'int ket skrammet.",
"timeline_hint.resources.followers": "Heulier·ezed·ien",
"timeline_hint.resources.follows": "Heuliañ",
"timeline_hint.resources.statuses": "Toudoù koshoc'h",
"timeline_hint.resources.statuses": "Kannadoù koshoc'h",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "Luskad ar mare",
"ui.beforeunload": "Kollet e vo ho prell ma kuitit Mastodon.",

View File

@ -1,16 +1,14 @@
{
"about.blocks": "Servidors moderats",
"about.contact": "Contacte:",
"about.disclaimer": "Mastodon és un programari lliure de codi obert i una marca comercial de Mastodon gGmbH.",
"about.domain_blocks.comment": "Motiu",
"about.domain_blocks.domain": "Domini",
"about.disclaimer": "Mastodon és programari lliure de codi obert i una marca comercial de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "No és disponible el motiu",
"about.domain_blocks.preamble": "En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.",
"about.domain_blocks.severity": "Severitat",
"about.domain_blocks.silenced.explanation": "Generalment no veuràs perfils ni contingut d'aquest servidor, a menys que el cerquis explícitament o optis per ell seguint-lo.",
"about.domain_blocks.silenced.explanation": "Generalment no veuràs perfils ni contingut d'aquest servidor, a menys que el cerquis explícitament o optis per seguir-lo.",
"about.domain_blocks.silenced.title": "Limitat",
"about.domain_blocks.suspended.explanation": "No es processaran, emmagatzemaran ni s'intercanviaran dades d'aquest servidor, fent impossible qualsevol interacció o comunicació amb els usuaris d'aquest servidor.",
"about.domain_blocks.suspended.explanation": "No es processaran, emmagatzemaran ni intercanviaran dades d'aquest servidor, fent impossible qualsevol interacció o comunicació amb els seus usuaris.",
"about.domain_blocks.suspended.title": "Suspès",
"about.not_available": "Aquesta informació no s'ha fet disponible en aquest servidor.",
"about.not_available": "Aquesta informació no és disponible en aquest servidor.",
"about.powered_by": "Xarxa social descentralitzada impulsada per {mastodon}",
"about.rules": "Normes del servidor",
"account.account_note_header": "Nota",
@ -21,24 +19,25 @@
"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": "Retirar la sol·licitud de seguiment",
"account.cancel_follow_request": "Retira la sol·licitud de seguiment",
"account.direct": "Envia missatge directe a @{name}",
"account.disable_notifications": "No em notifiquis les publicacions de @{name}",
"account.domain_blocked": "Domini bloquejat",
"account.domain_blocked": "Domini blocat",
"account.edit_profile": "Edita el perfil",
"account.enable_notifications": "Notificam les publicacions de @{name}",
"account.endorse": "Recomana en el teu perfil",
"account.featured_tags.last_status_at": "Darrer apunt el {date}",
"account.featured_tags.last_status_never": "Sense apunts",
"account.featured_tags.title": "etiquetes destacades de {name}",
"account.enable_notifications": "Notifica'm les publicacions de @{name}",
"account.endorse": "Recomana en el perfil",
"account.featured_tags.last_status_at": "Última publicació el {date}",
"account.featured_tags.last_status_never": "No hi ha publicacions",
"account.featured_tags.title": "Etiquetes destacades de: {name}",
"account.follow": "Segueix",
"account.followers": "Seguidors",
"account.followers.empty": "Ningú segueix aquest usuari encara.",
"account.followers.empty": "Encara ningú no segueix aquest usuari.",
"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 ningú.",
"account.follows_you": "Et segueix",
"account.go_to_profile": "Anar al perfil",
"account.hide_reblogs": "Amaga els impulsos de @{name}",
"account.joined_short": "S'ha unit",
"account.languages": "Canviar les llengües subscrits",
@ -46,31 +45,32 @@
"account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.",
"account.media": "Multimèdia",
"account.mention": "Menciona @{name}",
"account.moved_to": "{name} s'ha traslladat a:",
"account.moved_to": "{name} ha indicat que el seu nou compte ara és:",
"account.mute": "Silencia @{name}",
"account.mute_notifications": "Silencia les notificacions de @{name}",
"account.muted": "Silenciat",
"account.open_original_page": "Obre la pàgina original",
"account.posts": "Publicacions",
"account.posts_with_replies": "Publicacions i respostes",
"account.report": "Informa sobre @{name}",
"account.requested": "Esperant aprovació. Fes clic per cancel·lar la petició de seguiment",
"account.report": "Informa quant a @{name}",
"account.requested": "S'està esperant l'aprovació. Feu clic per a 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} Publicació} other {{counter} Publicacions}}",
"account.unblock": "Desbloqueja @{name}",
"account.unblock_domain": "Desbloqueja el domini {domain}",
"account.unblock_short": "Desbloquejar",
"account.unendorse": "No recomanar en el perfil",
"account.unfollow": "Deixar de seguir",
"account.unblock_short": "Desbloqueja",
"account.unendorse": "No recomanis en el perfil",
"account.unfollow": "Deixa de seguir",
"account.unmute": "Deixar de silenciar @{name}",
"account.unmute_notifications": "Activar notificacions de @{name}",
"account.unmute_notifications": "Activa les notificacions de @{name}",
"account.unmute_short": "Deixa de silenciar",
"account_note.placeholder": "Clica per afegir-hi una nota",
"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.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": "Mes del registre",
"admin.dashboard.retention.cohort_size": "Nous usuaris",
"admin.dashboard.retention.cohort": "Mes de registre",
"admin.dashboard.retention.cohort_size": "Usuaris nous",
"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.",
@ -79,21 +79,21 @@
"attachments_list.unprocessed": "(sense processar)",
"audio.hide": "Amaga l'àudio",
"autosuggest_hashtag.per_week": "{count} per setmana",
"boost_modal.combo": "Pots prémer {combo} per evitar-ho el pròxim cop",
"bundle_column_error.copy_stacktrace": "Copiar l'informe d'error",
"bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podría ser degut a un error en el nostre codi o un problema de compatibilitat del navegador.",
"boost_modal.combo": "Podeu prémer {combo} per a evitar-ho el pròxim cop",
"bundle_column_error.copy_stacktrace": "Copia l'informe d'error",
"bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podria ser per un error en el nostre codi o per un problema de compatibilitat del navegador.",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.network.body": "Hi ha hagut un error al intentar carregar aquesta pàgina. Això podria ser degut a un problem temporal amb la teva connexió a internet o amb aquest servidor.",
"bundle_column_error.network.title": "Error de xarxa",
"bundle_column_error.retry": "Tornar-ho a provar",
"bundle_column_error.network.body": "Hi ha hagut un error en intentar carregar aquesta pàgina. Això podria ser per un problema temporal amb la teva connexió a internet o amb aquest servidor.",
"bundle_column_error.network.title": "Error de connexió",
"bundle_column_error.retry": "Torna-ho a provar",
"bundle_column_error.return": "Torna a Inici",
"bundle_column_error.routing.body": "No es pot trobar la pàgina sol·licitada. Estàs segur que la URL de la barra d'adreces és correcte?",
"bundle_column_error.routing.body": "No es pot trobar la pàgina sol·licitada. Segur que la URL de la barra d'adreces és correcta?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Tanca",
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
"bundle_modal_error.retry": "Tornar-ho a provar",
"closed_registrations.other_server_instructions": "Donat que Mastodon és descentralitzat, pots crear un compte en un altre servidor i encara interactuar amb aquest.",
"closed_registrations_modal.description": "Crear un compte a {domain} no és possible ara mateix però, si us plau, tingues en compte que no necessites específicament un compte a {domain} per a usar Mastodon.",
"bundle_modal_error.retry": "Torna-ho a provar",
"closed_registrations.other_server_instructions": "Com que Mastodon és descentralitzat, pots crear un compte en un altre servidor i seguir interactuant amb aquest.",
"closed_registrations_modal.description": "No es pot crear un compte a {domain} ara mateix, però tingueu en compte que no necessiteu específicament un compte a {domain} per a usar Mastodon.",
"closed_registrations_modal.find_another_server": "Troba un altre servidor",
"closed_registrations_modal.preamble": "Mastodon és descentralitzat per tant no importa on tinguis el teu compte, seràs capaç de seguir i interactuar amb tothom des d'aquest servidor. Fins i tot pots tenir el compte en el teu propi servidor!",
"closed_registrations_modal.title": "Registrant-se a Mastodon",
@ -104,7 +104,7 @@
"column.direct": "Missatges directes",
"column.directory": "Navegar pels perfils",
"column.domain_blocks": "Dominis bloquejats",
"column.favourites": "Favorits",
"column.favourites": "Preferits",
"column.follow_requests": "Peticions per a seguir-te",
"column.home": "Inici",
"column.lists": "Llistes",
@ -130,7 +130,7 @@
"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": "Què et passa pel cap?",
"compose_form.placeholder": "Què tens en ment?",
"compose_form.poll.add_option": "Afegir una opció",
"compose_form.poll.duration": "Durada de l'enquesta",
"compose_form.poll.option_placeholder": "Opció {number}",
@ -166,7 +166,7 @@
"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.redraft.message": "Segur que vols esborrar aquesta publicació i tornar-la a escriure? Perdràs tots els impulsos i els preferits, i les respostes a la publicació original es quedaran orfes.",
"confirmations.reply.confirm": "Respon",
"confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
"confirmations.unfollow.confirm": "Deixa de seguir",
@ -181,12 +181,14 @@
"directory.local": "Només de {domain}",
"directory.new_arrivals": "Arribades noves",
"directory.recently_active": "Recentment actius",
"dismissable_banner.community_timeline": "Aquests son els apunts més recents d'usuaris amb els seus comptes a {domain}.",
"disabled_account_banner.account_settings": "Paràmetres del compte",
"disabled_account_banner.text": "El teu compte {disabledAccount} està actualment desactivat.",
"dismissable_banner.community_timeline": "Aquestes són les publicacions més recents d'usuaris amb els seus comptes a {domain}.",
"dismissable_banner.dismiss": "Ometre",
"dismissable_banner.explore_links": "Aquests son els enllaços que els usuaris estan comentant ara mateix en aquest i altres servidors de la xarxa descentralitzada.",
"dismissable_banner.explore_statuses": "Aquests apunts d'aquest i altres servidors de la xarxa descentralitzada estan guanyant l'atenció ara mateix en aquest servidor.",
"dismissable_banner.explore_statuses": "Aquestes publicacions d'aquest i altres servidors de la xarxa descentralitzada estan guanyant l'atenció ara mateix en aquest servidor.",
"dismissable_banner.explore_tags": "Aquestes etiquetes estan guanyant l'atenció ara mateix dels usuaris d'aquest i altres servidors de la xarxa descentralitzada.",
"dismissable_banner.public_timeline": "Aquests son els apunts més recents dels usuaris d'aquest i d'altres servidors de la xarxa descentralitzada que aquest servidor en té coneixement.",
"dismissable_banner.public_timeline": "Aquestes són les publicacions públiques més recents de persones en aquest i altres servidors de la xarxa descentralitzada que aquest servidor coneix.",
"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",
@ -208,7 +210,7 @@
"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 has marcat com publicació com a preferida. Quan en marquis una apareixerà aquí.",
"empty_column.bookmarked_statuses": "Encara no has marcat cap 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.",
@ -237,25 +239,25 @@
"explore.trending_links": "Notícies",
"explore.trending_statuses": "Publicacions",
"explore.trending_tags": "Etiquetes",
"filter_modal.added.context_mismatch_explanation": "Aquesta categoria del filtr no aplica al context en el que has accedit a aquest apunt. Si vols que l'apunt sigui filtrat també en aquest context, hauràs d'editar el filtre.",
"filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquesta publicació. Si també vols que la publicació es filtri en aquest context, hauràs d'editar el filtre.",
"filter_modal.added.context_mismatch_title": "El context no coincideix!",
"filter_modal.added.expired_explanation": "La categoria d'aquest filtre ha caducat, necesitaràs canviar la seva data de caducitat per a aplicar-la.",
"filter_modal.added.expired_title": "Filtre caducat!",
"filter_modal.added.review_and_configure": "Per a revisar i configurar aquesta categoria de filtre, ves a {settings_link}.",
"filter_modal.added.review_and_configure_title": "Configuració del filtre",
"filter_modal.added.settings_link": "pàgina de configuració",
"filter_modal.added.short_explanation": "Aquest apunt s'ha afegit a la següent categoria de filtre: {title}.",
"filter_modal.added.short_explanation": "Aquesta publicació s'ha afegit a la següent categoria de filtre: {title}.",
"filter_modal.added.title": "Filtre afegit!",
"filter_modal.select_filter.context_mismatch": "no aplica en aquest context",
"filter_modal.select_filter.expired": "caducat",
"filter_modal.select_filter.prompt_new": "Nova categoria: {name}",
"filter_modal.select_filter.search": "Cerca o crea",
"filter_modal.select_filter.subtitle": "Usa una categoria existent o crea una nova",
"filter_modal.select_filter.title": "Filtra aquest apunt",
"filter_modal.title.status": "Filtre un apunt",
"filter_modal.select_filter.title": "Filtra aquesta publicació",
"filter_modal.title.status": "Filtra una publicació",
"follow_recommendations.done": "Fet",
"follow_recommendations.heading": "Segueix a la gent de la que t'agradaria veure les seves publicacions! Aquí hi ha algunes recomanacions.",
"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_recommendations.lead": "Les publicacions dels 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 manualment.",
@ -284,18 +286,18 @@
"home.column_settings.show_replies": "Mostra les respostes",
"home.hide_announcements": "Amaga els anuncis",
"home.show_announcements": "Mostra els anuncis",
"interaction_modal.description.favourite": "Amb un compte a Mastodon, pots afavorir aquest apunt per a deixar que l'autor sàpiga que t'ha agradat i desar-lo per més tard.",
"interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus apunts en la teva línia de temps Inici.",
"interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest apunt per a compartir-lo amb els teus seguidors.",
"interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest apunt.",
"interaction_modal.description.favourite": "Amb un compte a Mastodon, pots afavorir aquesta publicació perquè l'autor sàpiga que t'ha agradat i desar-la per a més endavant.",
"interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre les seves publicacions en la teva línia de temps d'Inici.",
"interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquesta publicació per a compartir-la amb els teus seguidors.",
"interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquesta publicació.",
"interaction_modal.on_another_server": "En un servidor diferent",
"interaction_modal.on_this_server": "En aquest servidor",
"interaction_modal.other_server_instructions": "Simplement còpia i enganxa aquesta URL en la barra de cerca de la teva aplicació preferida o en l'interfície web on tens sessió iniciada.",
"interaction_modal.other_server_instructions": "Copia i enganxa aquest enllaç en el camp de cerca de la teva aplicació Mastodon preferida o en l'interfície web del teu servidor Mastodon.",
"interaction_modal.preamble": "Donat que Mastodon és descentralitzat, pots fer servir el teu compte existent a un altre servidor Mastodon o plataforma compatible si és que no tens compte en aquest.",
"interaction_modal.title.favourite": "Afavoreix l'apunt de {name}",
"interaction_modal.title.favourite": "Marca la publicació de {name}",
"interaction_modal.title.follow": "Segueix {name}",
"interaction_modal.title.reblog": "Impulsa l'apunt de {name}",
"interaction_modal.title.reply": "Respon l'apunt de {name}",
"interaction_modal.title.reblog": "Impulsa la publicació de {name}",
"interaction_modal.title.reply": "Respon a la publicació de {name}",
"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}}",
@ -308,7 +310,7 @@
"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.favourite": "Marca 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",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Amaga imatge} other {Amaga imatges}}",
"missing_indicator.label": "No s'ha trobat",
"missing_indicator.sublabel": "Aquest recurs no s'ha trobat",
"moved_to_account_banner.text": "El teu compte {disabledAccount} està actualment desactivat perquè l'has traslladat a {movedToAccount}.",
"mute_modal.duration": "Durada",
"mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?",
"mute_modal.indefinite": "Indefinit",
@ -387,7 +390,7 @@
"not_signed_in_indicator.not_signed_in": "Necessites registrar-te per a accedir aquest recurs.",
"notification.admin.report": "{name} ha reportat {target}",
"notification.admin.sign_up": "{name} s'ha registrat",
"notification.favourite": "{name} ha afavorit la teva publicació",
"notification.favourite": "a {name} li ha agradat la teva publicació",
"notification.follow": "{name} et segueix",
"notification.follow_request": "{name} ha sol·licitat seguir-te",
"notification.mention": "{name} t'ha mencionat",
@ -535,11 +538,11 @@
"server_banner.server_stats": "Estadístiques del servidor:",
"sign_in_banner.create_account": "Crea un compte",
"sign_in_banner.sign_in": "Inicia sessió",
"sign_in_banner.text": "Inicia sessió per a seguir perfils o etiquetes, afavorir, compartir o respondre apunts, o interactuar des d'el teu compte amb un servidor diferent.",
"sign_in_banner.text": "Inicia la sessió per seguir perfils o etiquetes, afavorir, compartir i respondre a publicacions o interactuar des del teu compte en un servidor diferent.",
"status.admin_account": "Obre l'interfície de moderació per a @{name}",
"status.admin_status": "Obrir aquesta publicació a la interfície de moderació",
"status.block": "Bloqueja @{name}",
"status.bookmark": "Afavoreix",
"status.bookmark": "Marca",
"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ó",
@ -550,8 +553,8 @@
"status.edited": "Editat {date}",
"status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}",
"status.embed": "Incrusta",
"status.favourite": "Favorit",
"status.filter": "Filtre aquest apunt",
"status.favourite": "Preferir",
"status.filter": "Filtra aquesta publicació",
"status.filtered": "Filtrat",
"status.hide": "Amaga publicació",
"status.history.created": "{name} ha creat {date}",
@ -589,7 +592,7 @@
"status.uncached_media_warning": "No està disponible",
"status.unmute_conversation": "No silenciïs la conversa",
"status.unpin": "No fixis al perfil",
"subscribed_languages.lead": "Només els apunts en les llengües seleccionades apareixeran en le teves línies de temps Inici i llista després del canvi. No en seleccionis cap per a rebre apunts en totes les llengües.",
"subscribed_languages.lead": "Només les publicacions en les llengües seleccionades apareixeran en les teves línies de temps \"Inici\" i \"Llistes\" després del canvi. No en seleccionis cap per a rebre publicacions en totes les llengües.",
"subscribed_languages.save": "Desa els canvis",
"subscribed_languages.target": "Canvia les llengües subscrites per a {target}",
"suggestions.dismiss": "Ignora el suggeriment",
@ -603,7 +606,7 @@
"time_remaining.minutes": "{number, plural, one {# minut} other {# minuts}} restants",
"time_remaining.moments": "Moments restants",
"time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants",
"timeline_hint.remote_resource_not_displayed": "{resource} dels altres servidors no son mostrats.",
"timeline_hint.remote_resource_not_displayed": "No es mostren {resource} d'altres servidors.",
"timeline_hint.resources.followers": "Seguidors",
"timeline_hint.resources.follows": "Seguiments",
"timeline_hint.resources.statuses": "Publicacions més antigues",

View File

@ -1,13 +1,11 @@
{
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.blocks": "ڕاژە سەرپەرشتیکراو",
"about.contact": "پەیوەندی کردن:",
"about.disclaimer": "ماستودۆن بە خۆڕایە، پرۆگرامێکی سەرچاوە کراوەیە، وە نیشانە بازرگانیەکەی ماستودۆن (gGmbH)ە",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "ماستۆدۆن بە گشتی ڕێگەت پێدەدات بە پیشاندانی ناوەڕۆکەکان و کارلێک کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە.",
"about.domain_blocks.silenced.explanation": "بە گشتی ناتوانی زانیاریە تایبەتەکان و ناوەڕۆکی ئەم ڕاژەیە ببینی، مەگەر بە ڕوونی بەدوایدا بگەڕێیت یان هەڵیبژێریت بۆ شوێنکەوتنی.",
"about.domain_blocks.silenced.title": "سنووردار",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}",
"account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.",
"account.follows_you": "شوێنکەوتووەکانت",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "داشاردنی بووستەکان لە @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
@ -46,10 +45,11 @@
"account.locked_info": "تایبەتمەندی ئەم هەژمارەیە ڕیکخراوە بۆ قوفڵدراوە. خاوەنەکە بە دەستی پێداچوونەوە دەکات کە کێ دەتوانێت شوێنیان بکەوێت.",
"account.media": "میدیا",
"account.mention": "ئاماژە @{name}",
"account.moved_to": "{name} گواسترایەوە بۆ:",
"account.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "بێدەنگکردن @{name}",
"account.mute_notifications": "هۆشیارکەرەوەکان لاببە لە @{name}",
"account.muted": "بێ دەنگ",
"account.open_original_page": "Open original page",
"account.posts": "توتس",
"account.posts_with_replies": "توتس و وەڵامەکان",
"account.report": "گوزارشت @{name}",
@ -181,6 +181,8 @@
"directory.local": "تەنها لە {domain}",
"directory.new_arrivals": "تازە گەیشتنەکان",
"directory.recently_active": "بەم دواییانە چالاکە",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "شاردنەوەی {number, plural, one {image} other {images}}",
"missing_indicator.label": "نەدۆزرایەوە",
"missing_indicator.sublabel": "ئەو سەرچاوەیە نادۆزرێتەوە",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "ماوە",
"mute_modal.hide_notifications": "شاردنەوەی ئاگانامەکان لەم بەکارهێنەرە؟ ",
"mute_modal.indefinite": "نادیار",

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} Abbunamentu} other {{counter} Abbunamenti}}",
"account.follows.empty": "St'utilizatore ùn seguita nisunu.",
"account.follows_you": "Vi seguita",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Piattà spartere da @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
@ -46,10 +45,11 @@
"account.locked_info": "U statutu di vita privata di u contu hè chjosu. U pruprietariu esamina manualmente e dumande d'abbunamentu.",
"account.media": "Media",
"account.mention": "Mintuvà @{name}",
"account.moved_to": "{name} hè partutu nant'à:",
"account.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "Piattà @{name}",
"account.mute_notifications": "Piattà nutificazione da @{name}",
"account.muted": "Piattatu",
"account.open_original_page": "Open original page",
"account.posts": "Statuti",
"account.posts_with_replies": "Statuti è risposte",
"account.report": "Palisà @{name}",
@ -181,6 +181,8 @@
"directory.local": "Solu da {domain}",
"directory.new_arrivals": "Ultimi arrivi",
"directory.recently_active": "Attività ricente",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "Piattà {number, plural, one {ritrattu} other {ritratti}}",
"missing_indicator.label": "Micca trovu",
"missing_indicator.sublabel": "Ùn era micca pussivule di truvà sta risorsa",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Durata",
"mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?",
"mute_modal.indefinite": "Indifinita",

View File

@ -1,11 +1,9 @@
{
"about.blocks": "Moderované servery",
"about.contact": "Kontakt:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Důvod",
"about.domain_blocks.domain": "Doména",
"about.disclaimer": "Mastodon je svobodný software s otevřeným zdrojovým kódem a ochranná známka společnosti Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Důvod není k dispozici",
"about.domain_blocks.preamble": "Mastodon umožňuje prohlížet obsah a komunikovat s uživateli jakéhokoliv serveru ve fediversu. Pro tento konkrétní server se vztahují následující výjimky.",
"about.domain_blocks.severity": "Závažnost",
"about.domain_blocks.silenced.explanation": "Uživatele a obsah tohoto serveru neuvidíte, pokud je nebudete výslovně hledat nebo je nezačnete sledovat.",
"about.domain_blocks.silenced.title": "Omezeno",
"about.domain_blocks.suspended.explanation": "Žádná data z tohoto serveru nebudou zpracovávána, uložena ani vyměňována, což znemožňuje jakoukoli interakci nebo komunikaci s uživateli z tohoto serveru.",
@ -21,7 +19,7 @@
"account.block_domain": "Blokovat doménu {domain}",
"account.blocked": "Blokován",
"account.browse_more_on_origin_server": "Více na původním profilu",
"account.cancel_follow_request": "Zrušit žádost o následování",
"account.cancel_follow_request": "Odvolat žádost o sledování",
"account.direct": "Poslat @{name} přímou zprávu",
"account.disable_notifications": "Zrušit upozorňování na příspěvky @{name}",
"account.domain_blocked": "Doména blokována",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} Sledovaný} few {{counter} Sledovaní} many {{counter} Sledovaných} other {{counter} Sledovaných}}",
"account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
"account.follows_you": "Sleduje vás",
"account.go_to_profile": "Přejít na profil",
"account.hide_reblogs": "Skrýt boosty od @{name}",
"account.joined_short": "Připojen/a",
"account.languages": "Změnit odebírané jazyky",
@ -46,10 +45,11 @@
"account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.",
"account.media": "Média",
"account.mention": "Zmínit @{name}",
"account.moved_to": "Uživatel {name} se přesunul na:",
"account.moved_to": "{name} uvedl/a, že jeho/její nový účet je nyní:",
"account.mute": "Skrýt @{name}",
"account.mute_notifications": "Skrýt oznámení od @{name}",
"account.muted": "Skryt",
"account.open_original_page": "Otevřít původní stránku",
"account.posts": "Příspěvky",
"account.posts_with_replies": "Příspěvky a odpovědi",
"account.report": "Nahlásit @{name}",
@ -71,7 +71,7 @@
"admin.dashboard.retention.average": "Průměr",
"admin.dashboard.retention.cohort": "Měsíc registrace",
"admin.dashboard.retention.cohort_size": "Noví uživatelé",
"alert.rate_limited.message": "Zkuste to prosím znovu za {retry_time, time, medium}.",
"alert.rate_limited.message": "Zkuste to prosím znovu po {retry_time, time, medium}.",
"alert.rate_limited.title": "Spojení omezena",
"alert.unexpected.message": "Objevila se neočekávaná chyba.",
"alert.unexpected.title": "Jejda!",
@ -150,8 +150,8 @@
"confirmations.block.block_and_report": "Blokovat a nahlásit",
"confirmations.block.confirm": "Blokovat",
"confirmations.block.message": "Opravdu chcete zablokovat {name}?",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Opravdu chcete zrušit svou žádost o sledování {name}?",
"confirmations.cancel_follow_request.confirm": "Odvolat žádost",
"confirmations.cancel_follow_request.message": "Opravdu chcete odvolat svou žádost o sledování {name}?",
"confirmations.delete.confirm": "Smazat",
"confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?",
"confirmations.delete_list.confirm": "Smazat",
@ -181,6 +181,8 @@
"directory.local": "Pouze z domény {domain}",
"directory.new_arrivals": "Nově příchozí",
"directory.recently_active": "Nedávno aktivní",
"disabled_account_banner.account_settings": "Nastavení účtu",
"disabled_account_banner.text": "Váš účet {disabledAccount} je momentálně zakázán.",
"dismissable_banner.community_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí, jejichž účty hostuje {domain}.",
"dismissable_banner.dismiss": "Odmítnout",
"dismissable_banner.explore_links": "O těchto novinkách hovoří lidé na tomto a dalších serverech decentralizované sítě.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "S účtem na Mastodonu můžete reagovat na tento příspěvek.",
"interaction_modal.on_another_server": "Na jiném serveru",
"interaction_modal.on_this_server": "Na tomto serveru",
"interaction_modal.other_server_instructions": "Jednoduše zkopírujte a vložte tuto adresu do vyhledávacího panelu vaší oblíbené aplikace nebo webového rozhraní, kde jste přihlášeni.",
"interaction_modal.other_server_instructions": "Zkopírujte a vložte tuto URL do vyhledávacího pole vaší oblíbené Mastodon aplikace nebo webového rozhraní vašeho Mastodon serveru.",
"interaction_modal.preamble": "Protože je Mastodon decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.",
"interaction_modal.title.favourite": "Oblíbený příspěvek {name}",
"interaction_modal.title.follow": "Sledovat {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Skrýt obrázek} few {Skrýt obrázky} many {Skrýt obrázky} other {Skrýt obrázky}}",
"missing_indicator.label": "Nenalezeno",
"missing_indicator.sublabel": "Tento zdroj se nepodařilo najít",
"moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně zakázán, protože jste se přesunul/a na {movedToAccount}.",
"mute_modal.duration": "Trvání",
"mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?",
"mute_modal.indefinite": "Neomezeně",
@ -607,7 +610,7 @@
"timeline_hint.resources.followers": "Sledující",
"timeline_hint.resources.follows": "Sledovaní",
"timeline_hint.resources.statuses": "Starší příspěvky",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.counter_by_accounts": "{count, plural, one {{counter} člověk} few {{counter} lidé} many {{counter} lidí} other {{counter} lidí}} za poslední {days, plural, one {den} few {{days} dny} many {{days} dnů} other {{days} dnů}}",
"trends.trending_now": "Právě populární",
"ui.beforeunload": "Pokud Mastodon opustíte, váš koncept se ztratí.",
"units.short.billion": "{count} mld.",

View File

@ -1,18 +1,16 @@
{
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules",
"about.blocks": "Gweinyddion sy'n cael eu cymedroli",
"about.contact": "Cyswllt:",
"about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Rheswm ddim ar gael",
"about.domain_blocks.preamble": "Yn gyffredinol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
"about.domain_blocks.silenced.explanation": "Yn gyffredinol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
"about.domain_blocks.silenced.title": "Tawelwyd",
"about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei storio na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
"about.domain_blocks.suspended.title": "Ataliwyd",
"about.not_available": "Nid yw'r wybodaeth hwn wedi ei wneud ar gael ar y gweinydd hwn.",
"about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}",
"about.rules": "Rheolau'r gweinydd",
"account.account_note_header": "Nodyn",
"account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau",
"account.badges.bot": "Bot",
@ -21,16 +19,16 @@
"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": "Withdraw follow request",
"account.cancel_follow_request": "Tynnu nôl cais i ddilyn",
"account.direct": "Neges breifat @{name}",
"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": "Rhowch wybod i fi pan fydd @{name} yn postio",
"account.endorse": "Arddangos ar fy mhroffil",
"account.featured_tags.last_status_at": "Last post on {date}",
"account.featured_tags.last_status_never": "No posts",
"account.featured_tags.title": "{name}'s featured hashtags",
"account.featured_tags.last_status_at": "Y cofnod diwethaf ar {date}",
"account.featured_tags.last_status_never": "Dim postiadau",
"account.featured_tags.title": "hashnodau dan sylw {name}",
"account.follow": "Dilyn",
"account.followers": "Dilynwyr",
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
@ -39,17 +37,19 @@
"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.go_to_profile": "Mynd i'r proffil",
"account.hide_reblogs": "Cuddio bwstiau o @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
"account.joined_short": "Ymunodd",
"account.languages": "Newid ieithoedd wedi tanysgrifio iddynt nhw",
"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",
"account.mention": "Crybwyll @{name}",
"account.moved_to": "Mae @{name} wedi symud i:",
"account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:",
"account.mute": "Tawelu @{name}",
"account.mute_notifications": "Cuddio hysbysiadau o @{name}",
"account.muted": "Distewyd",
"account.open_original_page": "Agor y dudalen wreiddiol",
"account.posts": "Postiadau",
"account.posts_with_replies": "Postiadau ac atebion",
"account.report": "Adrodd @{name}",
@ -77,27 +77,27 @@
"alert.unexpected.title": "Wps!",
"announcement.announcement": "Cyhoeddiad",
"attachments_list.unprocessed": "(heb eu prosesu)",
"audio.hide": "Hide audio",
"audio.hide": "Cuddio sain",
"autosuggest_hashtag.per_week": "{count} yr wythnos",
"boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Network error",
"bundle_column_error.copy_stacktrace": "Copïo'r adroddiad gwall",
"bundle_column_error.error.body": "Nid oedd modd cynhyrchu'r dudalen honno. Gall fod oherwydd gwall yn ein côd neu fater cydnawsedd porwr.",
"bundle_column_error.error.title": "O na!",
"bundle_column_error.network.body": "Bu gwall wrth geisio llwytho'r dudalen hon. Gall hyn fod oherwydd anhawster dros-dro gyda'ch cysylltiad gwe neu'r gweinydd hwn.",
"bundle_column_error.network.title": "Gwall rhwydwaith",
"bundle_column_error.retry": "Ceisiwch eto",
"bundle_column_error.return": "Go back home",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
"bundle_column_error.return": "Mynd nôl adref",
"bundle_column_error.routing.body": "Nid oedd modd canfod y dudalen honno. Ydych chi'n siŵr fod yr URL yn y bar cyfeiriad yn gywir?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Cau",
"bundle_modal_error.message": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
"bundle_modal_error.retry": "Ceiswich eto",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "About",
"closed_registrations.other_server_instructions": "Gan fod Mastodon yn ddatganoledig, gallwch greu cyfrif ar weinydd arall a dal i ryngweithio gyda hwn.",
"closed_registrations_modal.description": "Ar hyn o bryd nid yw'n bosib creu cyfrif ar {domain}, ond cadwch mewn cof nad oes raid i chi gael cyfrif yn benodol ar {domain} i ddefnyddio Mastodon.",
"closed_registrations_modal.find_another_server": "Dod o hyd i weinydd arall",
"closed_registrations_modal.preamble": "Mae Mastodon wedi'i ddatganoli, felly does dim gwahaniaeth ble rydych chi'n creu eich cyfrif, byddwch chi'n gallu dilyn a rhyngweithio ag unrhyw un ar y gweinydd hwn. Gallwch hyd yn oed ei gynnal ef eich hun!",
"closed_registrations_modal.title": "Cofrestru ar Mastodon",
"column.about": "Ynghylch",
"column.blocks": "Defnyddwyr a flociwyd",
"column.bookmarks": "Tudalnodau",
"column.community": "Ffrwd lleol",
@ -150,8 +150,8 @@
"confirmations.block.block_and_report": "Rhwystro ac Adrodd",
"confirmations.block.confirm": "Blocio",
"confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl",
"confirmations.cancel_follow_request.message": "Ydych chi'n sicr eich bod chi eisiau tynnu'ch cais i ddilyn {name} yn ôl?",
"confirmations.delete.confirm": "Dileu",
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
"confirmations.delete_list.confirm": "Dileu",
@ -175,22 +175,24 @@
"conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
"conversation.open": "Gweld sgwrs",
"conversation.with": "Gyda {names}",
"copypaste.copied": "Copied",
"copypaste.copy": "Copy",
"copypaste.copied": "Wedi ei gopïo",
"copypaste.copy": "Copïo",
"directory.federated": "O'r ffedysawd cyfan",
"directory.local": "O {domain} yn unig",
"directory.new_arrivals": "Newydd-ddyfodiaid",
"directory.recently_active": "Yn weithredol yn ddiweddar",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
"disabled_account_banner.account_settings": "Gosodiadau'r cyfrif",
"disabled_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn o bryd.",
"dismissable_banner.community_timeline": "Dyma'r postiadau cyhoeddus diweddaraf gan bobl y caiff eu cyfrifon eu cynnal ar {domain}.",
"dismissable_banner.dismiss": "Diystyru",
"dismissable_banner.explore_links": "Mae'r straeon newyddion hyn yn cael eu trafod gan bobl ar y gweinydd hwn a rhai eraill ar y rhwydwaith datganoledig hwn, ar hyn o bryd.",
"dismissable_banner.explore_statuses": "Mae'r cofnodion hyn o'r gweinydd hwn a gweinyddion eraill yn y rhwydwaith datganoledig hwn yn denu sylw ar y gweinydd hwn ar hyn o bryd.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
"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": "Clir",
"emoji_button.clear": "Clirio",
"emoji_button.custom": "Unigryw",
"emoji_button.flags": "Baneri",
"emoji_button.food": "Bwyd a Diod",
@ -245,27 +247,27 @@
"filter_modal.added.review_and_configure_title": "Filter settings",
"filter_modal.added.settings_link": "settings page",
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
"filter_modal.added.title": "Filter added!",
"filter_modal.added.title": "Hidlydd wedi'i ychwanegu!",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "expired",
"filter_modal.select_filter.prompt_new": "New category: {name}",
"filter_modal.select_filter.search": "Search or create",
"filter_modal.select_filter.prompt_new": "Categori newydd: {name}",
"filter_modal.select_filter.search": "Chwilio neu greu",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"filter_modal.select_filter.title": "Hidlo'r post hwn",
"filter_modal.title.status": "Hidlo post",
"follow_recommendations.done": "Wedi gorffen",
"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.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.about": "Ynghylch",
"footer.directory": "Cyfeiriadur proffiliau",
"footer.get_app": "Lawrlwytho'r ap",
"footer.invite": "Gwahodd pobl",
"footer.keyboard_shortcuts": "Bysellau brys",
"footer.privacy_policy": "Polisi preifatrwydd",
"footer.source_code": "Gweld y cod ffynhonnell",
"generic.saved": "Wedi'i Gadw",
"getting_started.heading": "Dechrau",
"hashtag.column_header.tag_mode.all": "a {additional}",
@ -286,16 +288,16 @@
"home.show_announcements": "Dangos cyhoeddiadau",
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r post hwn i'w rannu â'ch dilynwyr.",
"interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r post hwn.",
"interaction_modal.on_another_server": "Ar weinydd gwahanol",
"interaction_modal.on_this_server": "Ar y gweinydd hwn",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"interaction_modal.title.favourite": "Hoffi post {name}",
"interaction_modal.title.follow": "Dilyn {name}",
"interaction_modal.title.reblog": "Hybu post {name}",
"interaction_modal.title.reply": "Ymateb i bost {name}",
"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}}",
@ -338,8 +340,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 {domain}.",
"limited_account_hint.action": "Dangos y proffil beth bynnag",
"limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan arolygwyr {domain}.",
"lists.account.add": "Ychwanegwch at restr",
"lists.account.remove": "Dileu o'r rhestr",
"lists.delete": "Dileu rhestr",
@ -358,10 +360,11 @@
"media_gallery.toggle_visible": "Toglo gwelededd",
"missing_indicator.label": "Heb ei ganfod",
"missing_indicator.sublabel": "Ni ellid canfod yr adnodd hwn",
"moved_to_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn y bryd am i chi symud i {movedToAccount}.",
"mute_modal.duration": "Hyd",
"mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?",
"mute_modal.indefinite": "Amhenodol",
"navigation_bar.about": "About",
"navigation_bar.about": "Ynghylch",
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
"navigation_bar.bookmarks": "Tudalnodau",
"navigation_bar.community_timeline": "Ffrwd leol",
@ -372,7 +375,7 @@
"navigation_bar.edit_profile": "Golygu proffil",
"navigation_bar.explore": "Archwilio",
"navigation_bar.favourites": "Ffefrynnau",
"navigation_bar.filters": "Geiriau a dawelwyd",
"navigation_bar.filters": "Geiriau a fudwyd",
"navigation_bar.follow_requests": "Ceisiadau dilyn",
"navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
"navigation_bar.lists": "Rhestrau",
@ -382,10 +385,10 @@
"navigation_bar.pins": "Postiadau wedi eu pinio",
"navigation_bar.preferences": "Dewisiadau",
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
"navigation_bar.search": "Search",
"navigation_bar.search": "Chwilio",
"navigation_bar.security": "Diogelwch",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
"not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
"notification.admin.report": "Adroddodd {name} {target}",
"notification.admin.sign_up": "Cofrestrodd {name}",
"notification.favourite": "Hoffodd {name} eich post",
"notification.follow": "Dilynodd {name} chi",
@ -404,7 +407,7 @@
"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": "Dangos bar hidlo",
"notifications.column_settings.filter_bar.show_bar": "Dangos y bar hidlo",
"notifications.column_settings.follow": "Dilynwyr newydd:",
"notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
"notifications.column_settings.mention": "Crybwylliadau:",
@ -418,11 +421,11 @@
"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.boosts": "Hybiau",
"notifications.filter.favourites": "Ffefrynnau",
"notifications.filter.follows": "Yn dilyn",
"notifications.filter.mentions": "Crybwylliadau",
"notifications.filter.polls": "Canlyniadau pleidlais",
"notifications.filter.polls": "Canlyniadau polau",
"notifications.filter.statuses": "Diweddariadau gan bobl rydych chi'n eu dilyn",
"notifications.grant_permission": "Caniatáu.",
"notifications.group": "{count} o hysbysiadau",
@ -452,8 +455,8 @@
"privacy.public.short": "Cyhoeddus",
"privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod",
"privacy.unlisted.short": "Heb ei restru",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}",
"privacy_policy.title": "Polisi preifatrwydd",
"refresh": "Adnewyddu",
"regeneration_indicator.label": "Llwytho…",
"regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
@ -491,7 +494,7 @@
"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.spam_description": "Dolenni maleisus, ymgysylltu ffug, neu ymatebion 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",
@ -525,16 +528,16 @@
"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.title": "Search for {q}",
"search_results.title": "Chwilio am {q}",
"search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
"server_banner.active_users": "active users",
"server_banner.administered_by": "Administered by:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
"server_banner.learn_more": "Learn more",
"server_banner.server_stats": "Server stats:",
"sign_in_banner.create_account": "Create account",
"sign_in_banner.sign_in": "Sign in",
"server_banner.administered_by": "Gweinyddir gan:",
"server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.",
"server_banner.learn_more": "Dysgu mwy",
"server_banner.server_stats": "Ystagedau'r gweinydd:",
"sign_in_banner.create_account": "Creu cyfrif",
"sign_in_banner.sign_in": "Mewngofnodi",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
"status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
"status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio",
@ -551,9 +554,9 @@
"status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
"status.embed": "Plannu",
"status.favourite": "Hoffi",
"status.filter": "Filter this post",
"status.filter": "Hidlo'r post hwn",
"status.filtered": "Wedi'i hidlo",
"status.hide": "Hide toot",
"status.hide": "Cuddio'r post",
"status.history.created": "{name} greuodd {date}",
"status.history.edited": "{name} olygodd {date}",
"status.load_more": "Llwythwch mwy",
@ -578,19 +581,19 @@
"status.report": "Adrodd @{name}",
"status.sensitive_warning": "Cynnwys sensitif",
"status.share": "Rhannu",
"status.show_filter_reason": "Show anyway",
"status.show_filter_reason": "Dangos beth bynnag",
"status.show_less": "Dangos llai",
"status.show_less_all": "Dangos llai i bawb",
"status.show_more": "Dangos mwy",
"status.show_more_all": "Dangos mwy i bawb",
"status.show_original": "Show original",
"status.translate": "Translate",
"status.translated_from_with": "Translated from {lang} using {provider}",
"status.show_original": "Dangos y gwreiddiol",
"status.translate": "Cyfieithu",
"status.translated_from_with": "Cyfieithwyd o {lang} gan ddefnyddio {provider}",
"status.uncached_media_warning": "Dim ar gael",
"status.unmute_conversation": "Dad-dawelu sgwrs",
"status.unpin": "Dadbinio o'r proffil",
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
"subscribed_languages.save": "Save changes",
"subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd dethol fydd yn ymddangos yn eich ffrydiau ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.",
"subscribed_languages.save": "Cadw'r newidiadau",
"subscribed_languages.target": "Change subscribed languages for {target}",
"suggestions.dismiss": "Diswyddo",
"suggestions.header": "Efallai y bydd gennych ddiddordeb mewn…",
@ -635,7 +638,7 @@
"upload_modal.preparing_ocr": "Paratoi OCR…",
"upload_modal.preview_label": "Rhagolwg ({ratio})",
"upload_progress.label": "Uwchlwytho...",
"upload_progress.processing": "Processing…",
"upload_progress.processing": "Wrthi'n prosesu…",
"video.close": "Cau fideo",
"video.download": "Lawrlwytho ffeil",
"video.exit_fullscreen": "Gadael sgrîn llawn",

View File

@ -2,10 +2,8 @@
"about.blocks": "Modererede servere",
"about.contact": "Kontakt:",
"about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.",
"about.domain_blocks.comment": "Årsag",
"about.domain_blocks.domain": "Domæne",
"about.domain_blocks.no_reason_available": "Begrundelse ikke tilgængelig",
"about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
"about.domain_blocks.severity": "Alvorlighed",
"about.domain_blocks.silenced.explanation": "Man vil generelt ikke se profiler og indhold fra denne server, medmindre man udtrykkeligt slå den op eller vælger den ved at følge.",
"about.domain_blocks.silenced.title": "Begrænset",
"about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} Følges} other {{counter} Følges}}",
"account.follows.empty": "Denne bruger følger ikke nogen endnu.",
"account.follows_you": "Følger dig",
"account.go_to_profile": "Gå til profil",
"account.hide_reblogs": "Skjul boosts fra @{name}",
"account.joined_short": "Oprettet",
"account.languages": "Skift abonnementssprog",
@ -46,10 +45,11 @@
"account.locked_info": "Denne kontos fortrolighedsstatus er sat til låst. Ejeren bedømmer manuelt, hvem der kan følge vedkommende.",
"account.media": "Medier",
"account.mention": "Nævn @{name}",
"account.moved_to": "{name} er flyttet til:",
"account.moved_to": "{name} har angivet, at vedkommendes nye konto nu er:",
"account.mute": "Skjul @{name}",
"account.mute_notifications": "Skjul notifikationer fra @{name}",
"account.muted": "Tystnet",
"account.open_original_page": "Åbn oprindelig side",
"account.posts": "Indlæg",
"account.posts_with_replies": "Indlæg og svar",
"account.report": "Anmeld @{name}",
@ -181,6 +181,8 @@
"directory.local": "Kun fra {domain}",
"directory.new_arrivals": "Nye ankomster",
"directory.recently_active": "Nyligt aktive",
"disabled_account_banner.account_settings": "Kontoindstillinger",
"disabled_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret.",
"dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostes af {domain}.",
"dismissable_banner.dismiss": "Afvis",
"dismissable_banner.explore_links": "Der tales lige nu om disse nyhedshistorier af folk på denne og andre servere i det decentraliserede netværk.",
@ -262,7 +264,7 @@
"footer.about": "Om",
"footer.directory": "Profiloversigt",
"footer.get_app": "Hent appen",
"footer.invite": "Invitere personer",
"footer.invite": "Invitér personer",
"footer.keyboard_shortcuts": "Tastaturgenveje",
"footer.privacy_policy": "Fortrolighedspolitik",
"footer.source_code": "Vis kildekode",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.",
"interaction_modal.on_another_server": "På en anden server",
"interaction_modal.on_this_server": "På denne server",
"interaction_modal.other_server_instructions": "Kopiér og indsæt blot denne URL i søgefeltet i den foretrukne app eller webgrænsefladen, hvor man er logget ind.",
"interaction_modal.other_server_instructions": "Kopiér og indsæt denne URL i søgefeltet på en Mastodon-app eller webgrænseflade til en Mastodon-server.",
"interaction_modal.preamble": "Da Mastodon er decentraliseret, kan man bruge sin eksisterende konto hostet af en anden Mastodon-server eller kompatibel platform, såfremt man ikke har en konto på denne.",
"interaction_modal.title.favourite": "Gør {name}s indlæg til favorit",
"interaction_modal.title.follow": "Følg {name}",
@ -339,7 +341,7 @@
"lightbox.next": "Næste",
"lightbox.previous": "Forrige",
"limited_account_hint.action": "Vis profil alligevel",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"limited_account_hint.title": "Denne profil er blevet skjult af {domain}-moderatorerne.",
"lists.account.add": "Føj til liste",
"lists.account.remove": "Fjern fra liste",
"lists.delete": "Slet liste",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Skjul billede} other {Skjul billeder}}",
"missing_indicator.label": "Ikke fundet",
"missing_indicator.sublabel": "Denne ressource kunne ikke findes",
"moved_to_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret, da du flyttede til {movedToAccount}.",
"mute_modal.duration": "Varighed",
"mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?",
"mute_modal.indefinite": "Tidsubegrænset",
@ -435,7 +438,7 @@
"notifications_permission_banner.title": "Gå aldrig glip af noget",
"picture_in_picture.restore": "Indsæt det igen",
"poll.closed": "Lukket",
"poll.refresh": "Opdatér",
"poll.refresh": "Genindlæs",
"poll.total_people": "{count, plural, one {# person} other {# personer}}",
"poll.total_votes": "{count, plural, one {# stemme} other {# stemmer}}",
"poll.vote": "Stem",
@ -566,7 +569,7 @@
"status.pin": "Fastgør til profil",
"status.pinned": "Fastgjort indlæg",
"status.read_more": "Læs mere",
"status.reblog": "Fremhæv",
"status.reblog": "Boost",
"status.reblog_private": "Boost med oprindelig synlighed",
"status.reblogged_by": "{name} boostede",
"status.reblogs.empty": "Ingen har endnu boostet dette indlæg. Når nogen gør, vil det fremgå hér.",
@ -593,7 +596,7 @@
"subscribed_languages.save": "Gem ændringer",
"subscribed_languages.target": "Skift abonnementssprog for {target}",
"suggestions.dismiss": "Afvis foreslag",
"suggestions.header": "Du er måske interesseret i…",
"suggestions.header": "Du er måske interesseret i …",
"tabs_bar.federated_timeline": "Fælles",
"tabs_bar.home": "Hjem",
"tabs_bar.local_timeline": "Lokal",

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderierte Server",
"about.contact": "Kontakt:",
"about.disclaimer": "Mastodon ist eine freie, quelloffene Software und eine Marke der Mastodon gGmbH.",
"about.domain_blocks.comment": "Begründung",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.no_reason_available": "Grund unbekannt",
"about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediversum zu sehen und mit ihnen zu interagieren. Für diese Instanz gibt es aber ein paar Ausnahmen.",
"about.domain_blocks.severity": "Schweregrad",
"about.domain_blocks.silenced.explanation": "Alle Inhalte dieses Servers sind stumm geschaltet und werden zunächst nicht angezeigt. Du kannst die Profile und anderen Inhalte aber dennoch manuell aufrufen oder Du folgst einer Person dieser Mastodon-Instanz.",
"about.domain_blocks.silenced.title": "Limitiert",
"about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.",
@ -39,17 +37,19 @@
"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.go_to_profile": "Profil öffnen",
"account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
"account.joined_short": "Beigetreten",
"account.languages": "Abonnierte Sprachen ändern",
"account.languages": "Genutzte Sprachen überarbeiten",
"account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt",
"account.locked_info": "Der Privatsphärenstatus dieses Kontos wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.",
"account.locked_info": "Die Privatsphäre dieses Kontos wurde auf „geschützt“ gesetzt. Die Person bestimmt manuell, wer ihrem Profil folgen darf.",
"account.media": "Medien",
"account.mention": "@{name} im Beitrag erwähnen",
"account.moved_to": "{name} ist umgezogen nach:",
"account.moved_to": "{name} hat angegeben, dass dieser der neue Account ist:",
"account.mute": "@{name} stummschalten",
"account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
"account.muted": "Stummgeschaltet",
"account.open_original_page": "Ursprüngliche Seite öffnen",
"account.posts": "Beiträge",
"account.posts_with_replies": "Beiträge und Antworten",
"account.report": "@{name} melden",
@ -87,15 +87,15 @@
"bundle_column_error.network.title": "Netzwerkfehler",
"bundle_column_error.retry": "Erneut versuchen",
"bundle_column_error.return": "Zurück zur Startseite",
"bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Sind Sie sicher, dass die URL in der Adressleiste korrekt ist?",
"bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Bist du dir sicher, dass die URL in der Adressleiste korrekt ist?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Schließen",
"bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.",
"bundle_modal_error.retry": "Erneut versuchen",
"closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, können Sie ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.",
"closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenken Sie bitte, dass Sie kein spezielles Konto auf {domain} benötigen, um Mastodon nutzen zu können.",
"closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, kannst du ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.",
"closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenke, dass du kein extra Konto auf {domain} benötigst, um Mastodon nutzen zu können.",
"closed_registrations_modal.find_another_server": "Einen anderen Server auswählen",
"closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, d.h. unabhängig davon, wo Sie Ihr Konto erstellen, können Sie jedem auf diesem Server folgen und mit ihm interagieren. Sie können ihn sogar selbst hosten!",
"closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, das heißt unabhängig davon, wo du dein Konto erstellst, kannst du jedes Konto auf diesem Server folgen und mit dem interagieren. Du kannst auch deinen eigenen Server hosten!",
"closed_registrations_modal.title": "Bei Mastodon registrieren",
"column.about": "Über",
"column.blocks": "Blockierte Profile",
@ -111,7 +111,7 @@
"column.mutes": "Stummgeschaltete Profile",
"column.notifications": "Mitteilungen",
"column.pins": "Angeheftete Beiträge",
"column.public": "Föderierte Chronik",
"column.public": "Föderierte Timeline",
"column_back_button.label": "Zurück",
"column_header.hide_settings": "Einstellungen verbergen",
"column_header.moveLeft_settings": "Diese Spalte nach links verschieben",
@ -127,7 +127,7 @@
"compose.language.search": "Sprachen suchen …",
"compose_form.direct_message_warning_learn_more": "Mehr erfahren",
"compose_form.encryption_warning": "Beiträge von Mastodon sind nicht Ende-zu-Ende verschlüsselt. Teile keine senible Informationen über Mastodon.",
"compose_form.hashtag_warning": "Dieser Beitrag ist über Hashtags nicht zu finden, weil er nicht gelistet ist. Nur öffentliche Beiträge tauchen in den Hashtag-Chroniken auf.",
"compose_form.hashtag_warning": "Dieser Beitrag ist über Hashtags nicht zu finden, weil er nicht gelistet ist. Nur öffentliche Beiträge tauchen in den Hashtag-Timelines 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": "geschützt",
"compose_form.placeholder": "Was gibt's Neues?",
@ -158,7 +158,7 @@
"confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?",
"confirmations.discard_edit_media.confirm": "Verwerfen",
"confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?",
"confirmations.domain_block.confirm": "Domain sperren",
"confirmations.domain_block.confirm": "Blocke die ganze Domain",
"confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
"confirmations.logout.confirm": "Abmelden",
"confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
@ -176,11 +176,13 @@
"conversation.open": "Unterhaltung anzeigen",
"conversation.with": "Mit {names}",
"copypaste.copied": "In die Zwischenablage kopiert",
"copypaste.copy": "In die Zwischenablage kopieren",
"copypaste.copy": "Kopieren",
"directory.federated": "Aus dem Fediverse",
"directory.local": "Nur von der Domain {domain}",
"directory.new_arrivals": "Neue Profile",
"directory.recently_active": "Kürzlich aktiv",
"disabled_account_banner.account_settings": "Kontoeinstellungen",
"disabled_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert.",
"dismissable_banner.community_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen, deren Konten von {domain} gehostet werden.",
"dismissable_banner.dismiss": "Ablehnen",
"dismissable_banner.explore_links": "Diese Nachrichten werden gerade von Leuten auf diesem und anderen Servern des dezentralen Netzwerks besprochen.",
@ -200,7 +202,7 @@
"emoji_button.objects": "Gegenstände",
"emoji_button.people": "Personen",
"emoji_button.recent": "Häufig benutzte Emojis",
"emoji_button.search": "Nach Emojis suchen …",
"emoji_button.search": "Suchen …",
"emoji_button.search_results": "Suchergebnisse",
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Reisen & Orte",
@ -209,7 +211,7 @@
"empty_column.account_unavailable": "Profil nicht verfügbar",
"empty_column.blocks": "Du hast bisher 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 Chronik ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
"empty_column.community": "Die lokale Timeline 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": "Du hast noch keine Domains blockiert.",
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
@ -224,7 +226,7 @@
"empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt werden.",
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
"empty_column.notifications": "Du hast noch keine Mitteilungen. Sobald Du mit anderen Personen interagierst, wirst Du hier darüber benachrichtigt.",
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen",
"error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
"error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
"error.unexpected_crash.next_steps": "Versuche, die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
@ -244,17 +246,17 @@
"filter_modal.added.review_and_configure": "Um diese Filterkategorie zu überprüfen und weiter zu konfigurieren, gehe zu {settings_link}.",
"filter_modal.added.review_and_configure_title": "Filtereinstellungen",
"filter_modal.added.settings_link": "Einstellungsseite",
"filter_modal.added.short_explanation": "Dieser Post wurde zu folgender Filterkategorie hinzugefügt: {title}.",
"filter_modal.added.short_explanation": "Dieser Post wurde folgender Filterkategorie hinzugefügt: {title}.",
"filter_modal.added.title": "Filter hinzugefügt!",
"filter_modal.select_filter.context_mismatch": "gilt nicht für diesen Kontext",
"filter_modal.select_filter.expired": "abgelaufen",
"filter_modal.select_filter.prompt_new": "Neue Kategorie: {name}",
"filter_modal.select_filter.search": "Suchen oder Erstellen",
"filter_modal.select_filter.search": "Suchen oder erstellen",
"filter_modal.select_filter.subtitle": "Eine existierende Kategorie benutzen oder eine erstellen",
"filter_modal.select_filter.title": "Diesen Beitrag filtern",
"filter_modal.title.status": "Einen Beitrag filtern",
"follow_recommendations.done": "Fertig",
"follow_recommendations.heading": "Folge Leuten, von denen du Beiträge sehen möchtest! Hier sind einige Vorschläge.",
"follow_recommendations.heading": "Folge Leuten, deren Beiträge du sehen möchtest! Hier sind einige Vorschläge.",
"follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!",
"follow_request.authorize": "Erlauben",
"follow_request.reject": "Ablehnen",
@ -284,13 +286,13 @@
"home.column_settings.show_replies": "Antworten anzeigen",
"home.hide_announcements": "Ankündigungen verbergen",
"home.show_announcements": "Ankündigungen anzeigen",
"interaction_modal.description.favourite": "Mit einem Account auf Mastodon können Sie diesen Beitrag favorisieren, um dem Autor mitzuteilen, dass Sie den Beitrag schätzen und ihn für einen späteren Zeitpunkt speichern.",
"interaction_modal.description.favourite": "Mit einem Account auf Mastodon kannst du diesen Beitrag favorisieren, um deine Wertschätzung auszudrücken, und ihn für einen späteren Zeitpunkt speichern.",
"interaction_modal.description.follow": "Mit einem Konto auf Mastodon kannst du {name} folgen, um seine Beiträge in deinem Home Feed zu erhalten.",
"interaction_modal.description.reblog": "Mit einem Mastodon-Account kannst du die Reichweite dieses Beitrags erhöhen, in dem du ihn mit deinen eigenen Followern teilst.",
"interaction_modal.description.reply": "Mit einem Account auf Mastodon können Sie auf diesen Beitrag antworten.",
"interaction_modal.description.reply": "Mit einem Account auf Mastodon kannst du auf diesen Beitrag antworten.",
"interaction_modal.on_another_server": "Auf einem anderen Server",
"interaction_modal.on_this_server": "Auf diesem Server",
"interaction_modal.other_server_instructions": "Kopiere einfach diese URL und füge sie in die Suchleiste deiner Lieblings-App oder in die Weboberfläche, in der du angemeldet bist, ein.",
"interaction_modal.other_server_instructions": "Kopiere diese URL und füge sie in das Suchfeld deiner bevorzugten Mastodon-App oder im Webinterface deiner Mastodon-Instanz ein.",
"interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.",
"interaction_modal.title.favourite": "Lieblingsbeitrag von {name}",
"interaction_modal.title.follow": "Folge {name}",
@ -301,21 +303,21 @@
"intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
"keyboard_shortcuts.back": "Zurück navigieren",
"keyboard_shortcuts.blocked": "Liste blockierter Profile öffnen",
"keyboard_shortcuts.boost": "teilen",
"keyboard_shortcuts.boost": "Beitrag teilen",
"keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren",
"keyboard_shortcuts.compose": "fokussiere das Eingabefeld",
"keyboard_shortcuts.description": "Beschreibung",
"keyboard_shortcuts.direct": "um die Spalte mit den Direktnachrichten zu öffnen",
"keyboard_shortcuts.down": "sich in der Liste hinunter bewegen",
"keyboard_shortcuts.down": "In der Liste nach unten bewegen",
"keyboard_shortcuts.enter": "Beitrag öffnen",
"keyboard_shortcuts.favourite": "favorisieren",
"keyboard_shortcuts.favourites": "Favoriten-Liste öffnen",
"keyboard_shortcuts.federated": "Föderierte Chronik öffnen",
"keyboard_shortcuts.federated": "Föderierte Timeline öffnen",
"keyboard_shortcuts.heading": "Tastenkombinationen",
"keyboard_shortcuts.home": "Startseite öffnen",
"keyboard_shortcuts.hotkey": "Tastenkürzel",
"keyboard_shortcuts.legend": "diese Übersicht anzeigen",
"keyboard_shortcuts.local": "Lokale Chronik öffnen",
"keyboard_shortcuts.local": "Lokale Timeline öffnen",
"keyboard_shortcuts.mention": "Profil erwähnen",
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
"keyboard_shortcuts.my_profile": "Dein Profil öffnen",
@ -339,7 +341,7 @@
"lightbox.next": "Weiter",
"lightbox.previous": "Zurück",
"limited_account_hint.action": "Profil trotzdem anzeigen",
"limited_account_hint.title": "Dieses Profil wurde von den Moderator*innnen der Mastodon-Instanz {domain} ausgeblendet.",
"limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen der Mastodon-Instanz {domain} ausgeblendet.",
"lists.account.add": "Zur Liste hinzufügen",
"lists.account.remove": "Von der Liste entfernen",
"lists.delete": "Liste löschen",
@ -358,13 +360,14 @@
"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",
"moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.",
"mute_modal.duration": "Dauer",
"mute_modal.hide_notifications": "Benachrichtigungen von diesem Profil verbergen?",
"mute_modal.indefinite": "Unbestimmt",
"navigation_bar.about": "Über",
"navigation_bar.blocks": "Blockierte Profile",
"navigation_bar.bookmarks": "Lesezeichen",
"navigation_bar.community_timeline": "Lokale Chronik",
"navigation_bar.community_timeline": "Lokale Timeline",
"navigation_bar.compose": "Neuen Beitrag verfassen",
"navigation_bar.direct": "Direktnachrichten",
"navigation_bar.discover": "Entdecken",
@ -381,7 +384,7 @@
"navigation_bar.personal": "Persönlich",
"navigation_bar.pins": "Angeheftete Beiträge",
"navigation_bar.preferences": "Einstellungen",
"navigation_bar.public_timeline": "Föderierte Chronik",
"navigation_bar.public_timeline": "Föderierte Timeline",
"navigation_bar.search": "Suche",
"navigation_bar.security": "Sicherheit",
"not_signed_in_indicator.not_signed_in": "Sie müssen sich anmelden, um diese Funktion zu nutzen.",
@ -457,7 +460,7 @@
"refresh": "Aktualisieren",
"regeneration_indicator.label": "Laden…",
"regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
"relative_time.days": "{number}d",
"relative_time.days": "{number}T",
"relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
"relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}",
"relative_time.full.just_now": "gerade eben",
@ -488,7 +491,7 @@
"report.placeholder": "Zusätzliche Kommentare",
"report.reasons.dislike": "Das gefällt mir nicht",
"report.reasons.dislike_description": "Es ist etwas, das du nicht sehen willst",
"report.reasons.other": "Da ist was anderes",
"report.reasons.other": "Es geht um etwas anderes",
"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",
@ -537,12 +540,12 @@
"sign_in_banner.sign_in": "Einloggen",
"sign_in_banner.text": "Melden Sie sich an, um Profilen oder Hashtags zu folgen, Favoriten, Teilen und Antworten auf Beiträge oder interagieren Sie von Ihrem Konto auf einem anderen Server.",
"status.admin_account": "Moderationsoberfläche für @{name} öffnen",
"status.admin_status": "Öffne Beitrag in der Moderationsoberfläche",
"status.admin_status": "Diesen Beitrag in der Moderationsoberfläche öffnen",
"status.block": "@{name} blockieren",
"status.bookmark": "Lesezeichen setzen",
"status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
"status.copy": "Kopiere Link des Beitrags",
"status.copy": "Link zum Beitrag kopieren",
"status.delete": "Beitrag löschen",
"status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
"status.direct": "Direktnachricht an @{name}",
@ -565,7 +568,7 @@
"status.open": "Diesen Beitrag öffnen",
"status.pin": "Im Profil anheften",
"status.pinned": "Angehefteter Beitrag",
"status.read_more": "Mehr lesen",
"status.read_more": "Gesamten Beitrag anschauen",
"status.reblog": "Teilen",
"status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen",
"status.reblogged_by": "{name} teilte",
@ -585,7 +588,7 @@
"status.show_more_all": "Alle Inhaltswarnungen aufklappen",
"status.show_original": "Original anzeigen",
"status.translate": "Übersetzen",
"status.translated_from_with": "Ins {lang}e mithilfe von {provider} übersetzt",
"status.translated_from_with": "Aus {lang} mittels {provider} übersetzt",
"status.uncached_media_warning": "Nicht verfügbar",
"status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben",
"status.unpin": "Vom Profil lösen",
@ -594,7 +597,7 @@
"subscribed_languages.target": "Abonnierte Sprachen für {target} ändern",
"suggestions.dismiss": "Empfehlung ausblenden",
"suggestions.header": "Du bist vielleicht interessiert an…",
"tabs_bar.federated_timeline": "Vereinigte Timeline",
"tabs_bar.federated_timeline": "Föderierte Timeline",
"tabs_bar.home": "Startseite",
"tabs_bar.local_timeline": "Lokale Timeline",
"tabs_bar.notifications": "Mitteilungen",
@ -635,7 +638,7 @@
"upload_modal.preparing_ocr": "Vorbereitung von OCR…",
"upload_modal.preview_label": "Vorschau ({ratio})",
"upload_progress.label": "Wird hochgeladen …",
"upload_progress.processing": "Wird verarbeitet …",
"upload_progress.processing": "Wird verarbeitet…",
"video.close": "Video schließen",
"video.download": "Datei herunterladen",
"video.exit_fullscreen": "Vollbild verlassen",

View File

@ -682,6 +682,10 @@
{
"defaultMessage": "Filter this post",
"id": "status.filter"
},
{
"defaultMessage": "Open original page",
"id": "account.open_original_page"
}
],
"path": "app/javascript/mastodon/components/status_action_bar.json"
@ -887,16 +891,8 @@
"id": "about.domain_blocks.preamble"
},
{
"defaultMessage": "Domain",
"id": "about.domain_blocks.domain"
},
{
"defaultMessage": "Severity",
"id": "about.domain_blocks.severity"
},
{
"defaultMessage": "Reason",
"id": "about.domain_blocks.comment"
"defaultMessage": "Reason not available",
"id": "about.domain_blocks.no_reason_available"
},
{
"defaultMessage": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
@ -951,8 +947,12 @@
{
"descriptors": [
{
"defaultMessage": "{name} has moved to:",
"defaultMessage": "{name} has indicated that their new account is now:",
"id": "account.moved_to"
},
{
"defaultMessage": "Go to profile",
"id": "account.go_to_profile"
}
],
"path": "app/javascript/mastodon/features/account_timeline/components/moved_note.json"
@ -1183,6 +1183,10 @@
"defaultMessage": "Change subscribed languages",
"id": "account.languages"
},
{
"defaultMessage": "Open original page",
"id": "account.open_original_page"
},
{
"defaultMessage": "Follows you",
"id": "account.follows_you"
@ -2599,7 +2603,7 @@
"id": "interaction_modal.on_another_server"
},
{
"defaultMessage": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"defaultMessage": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"id": "interaction_modal.other_server_instructions"
}
],
@ -3594,6 +3598,10 @@
{
"defaultMessage": "Unblock @{name}",
"id": "account.unblock"
},
{
"defaultMessage": "Open original page",
"id": "account.open_original_page"
}
],
"path": "app/javascript/mastodon/features/status/components/action_bar.json"
@ -3836,6 +3844,31 @@
],
"path": "app/javascript/mastodon/features/ui/components/confirmation_modal.json"
},
{
"descriptors": [
{
"defaultMessage": "Are you sure you want to log out?",
"id": "confirmations.logout.message"
},
{
"defaultMessage": "Log out",
"id": "confirmations.logout.confirm"
},
{
"defaultMessage": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"id": "moved_to_account_banner.text"
},
{
"defaultMessage": "Your account {disabledAccount} is currently disabled.",
"id": "disabled_account_banner.text"
},
{
"defaultMessage": "Account settings",
"id": "disabled_account_banner.account_settings"
}
],
"path": "app/javascript/mastodon/features/ui/components/disabled_account_banner.json"
},
{
"descriptors": [
{
@ -3969,6 +4002,15 @@
],
"path": "app/javascript/mastodon/features/ui/components/header.json"
},
{
"descriptors": [
{
"defaultMessage": "Close",
"id": "lightbox.close"
}
],
"path": "app/javascript/mastodon/features/ui/components/image_modal.json"
},
{
"descriptors": [
{

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderated servers",
"about.contact": "Επικοινωνία:",
"about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Τομέας (Domain)",
"about.domain_blocks.no_reason_available": "Αιτιολογία μη διαθέσιμη",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Σοβαρότητα",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, other {{counter} Ακολουθεί}}",
"account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.",
"account.follows_you": "Σε ακολουθεί",
"account.go_to_profile": "Μετάβαση στο προφίλ",
"account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
@ -46,10 +45,11 @@
"account.locked_info": "Η κατάσταση απορρήτου αυτού του λογαριασμού είναι κλειδωμένη. Ο ιδιοκτήτης επιβεβαιώνει χειροκίνητα ποιος μπορεί να τον ακολουθήσει.",
"account.media": "Πολυμέσα",
"account.mention": "Ανάφερε @{name}",
"account.moved_to": "{name} μεταφέρθηκε στο:",
"account.moved_to": "Ο/Η {name} έχει υποδείξει ότι ο νέος λογαριασμός του/της είναι τώρα:",
"account.mute": "Σώπασε @{name}",
"account.mute_notifications": "Σώπασε τις ειδοποιήσεις από @{name}",
"account.muted": "Αποσιωπημένος/η",
"account.open_original_page": "Open original page",
"account.posts": "Τουτ",
"account.posts_with_replies": "Τουτ και απαντήσεις",
"account.report": "Κατάγγειλε @{name}",
@ -181,6 +181,8 @@
"directory.local": "Μόνο από {domain}",
"directory.new_arrivals": "Νέες αφίξεις",
"directory.recently_active": "Πρόσφατα ενεργοί",
"disabled_account_banner.account_settings": "Ρυθμίσεις λογαριασμού",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Παράβλεψη",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή",
"interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Αντιγράψτε και επικολλήστε αυτήν τη διεύθυνση URL στο πεδίο αναζήτησης της αγαπημένης σας εφαρμογής Mastodon ή στο web interface του διακομιστή σας Mastodon.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "Εναλλαγή ορατότητας",
"missing_indicator.label": "Δε βρέθηκε",
"missing_indicator.sublabel": "Αδύνατη η εύρεση αυτού του πόρου",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Διάρκεια",
"mute_modal.hide_notifications": "Απόκρυψη ειδοποιήσεων αυτού του χρήστη;",
"mute_modal.indefinite": "Αόριστη",

View File

@ -2,16 +2,14 @@
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the Fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.powered_by": "Decentralised social media powered by {mastodon}",
"about.rules": "Server rules",
"account.account_note_header": "Note",
"account.add_or_remove_from_list": "Add or Remove from lists",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
@ -46,10 +45,11 @@
"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.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.open_original_page": "Open original page",
"account.posts": "Posts",
"account.posts_with_replies": "Posts and replies",
"account.report": "Report @{name}",
@ -65,7 +65,7 @@
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.unmute_short": "Unmute",
"account_note.placeholder": "Click to add a note",
"account_note.placeholder": "Click to add 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",
@ -92,10 +92,10 @@
"bundle_modal_error.close": "Close",
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Try again",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralised, you can create an account on another server and still interact with this one.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.preamble": "Mastodon is decentralised, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "About",
"column.blocks": "Blocked users",
@ -110,7 +110,7 @@
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.notifications": "Notifications",
"column.pins": "Pinned post",
"column.pins": "Pinned posts",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_header.hide_settings": "Hide settings",
@ -121,16 +121,16 @@
"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.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.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any sensitive 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": "What's on your mind?",
"compose_form.poll.add_option": "Add a choice",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
@ -143,8 +143,8 @@
"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.marked": "Remove content warning",
"compose_form.spoiler.unmarked": "Add content warning",
"compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Cancel",
"confirmations.block.block_and_report": "Block & Report",
@ -153,7 +153,7 @@
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete.message": "Are you sure you want to delete this post?",
"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",
@ -181,6 +181,8 @@
"directory.local": "From {domain} only",
"directory.new_arrivals": "New arrivals",
"directory.recently_active": "Recently active",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -205,7 +207,7 @@
"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_timeline": "No posts here!",
"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.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"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",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite",

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows_you": "Follows you",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
@ -50,6 +49,7 @@
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.open_original_page": "Open original page",
"account.posts": "Doots",
"account.posts_with_replies": "Doots and replies",
"account.report": "Report @{name}",
@ -181,6 +181,8 @@
"directory.local": "From {domain} only",
"directory.new_arrivals": "New arrivals",
"directory.recently_active": "Recently active",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public doots from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this doot.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s doot",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"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",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite",

View File

@ -2,14 +2,12 @@
"about.blocks": "Moderigitaj serviloj",
"about.contact": "Kontakto:",
"about.disclaimer": "Mastodon estas libera, malfermitkoda programaro kaj varmarko de la firmao Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Graveco",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.no_reason_available": "Kialo ne disponebla",
"about.domain_blocks.preamble": "Mastodono ebligas vidi enhavojn el uzantoj kaj komuniki kun ilin el aliaj serviloj el la Fediverso. Estas la limigoj deciditaj por tiu ĉi servilo.",
"about.domain_blocks.silenced.explanation": "Vi ne ĝenerale vidos profilojn kaj enhavojn de ĉi tiu servilo, krom se vi eksplice trovas aŭ estas permesita de via sekvato.",
"about.domain_blocks.silenced.title": "Limigita",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.domain_blocks.suspended.title": "Suspendita",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Reguloj de la servilo",
@ -28,8 +26,8 @@
"account.edit_profile": "Redakti la profilon",
"account.enable_notifications": "Sciigi min, kiam @{name} mesaĝas",
"account.endorse": "Rekomendi ĉe via profilo",
"account.featured_tags.last_status_at": "Last post on {date}",
"account.featured_tags.last_status_never": "No posts",
"account.featured_tags.last_status_at": "Lasta afîŝo je {date}",
"account.featured_tags.last_status_never": "Neniuj afiŝoj",
"account.featured_tags.title": "{name}'s featured hashtags",
"account.follow": "Sekvi",
"account.followers": "Sekvantoj",
@ -39,17 +37,19 @@
"account.following_counter": "{count, plural, one {{counter} Sekvado} other {{counter} Sekvadoj}}",
"account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.",
"account.follows_you": "Sekvas vin",
"account.go_to_profile": "Iri al profilo",
"account.hide_reblogs": "Kaŝi la plusendojn de @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
"account.joined_short": "Aliĝis",
"account.languages": "Ŝanĝi elekton de abonitaj lingvoj",
"account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}",
"account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.",
"account.media": "Aŭdovidaĵoj",
"account.mention": "Mencii @{name}",
"account.moved_to": "{name} moviĝis al:",
"account.moved_to": "{name} indikis, ke ria nova konto estas nun:",
"account.mute": "Silentigi @{name}",
"account.mute_notifications": "Silentigi la sciigojn de @{name}",
"account.muted": "Silentigita",
"account.open_original_page": "Malfermi originan paĝon",
"account.posts": "Mesaĝoj",
"account.posts_with_replies": "Mesaĝoj kaj respondoj",
"account.report": "Raporti @{name}",
@ -80,13 +80,13 @@
"audio.hide": "Kaŝi aŭdion",
"autosuggest_hashtag.per_week": "{count} semajne",
"boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.copy_stacktrace": "Kopii la raporto de error",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.error.title": "Ho, ne!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Network error",
"bundle_column_error.network.title": "Eraro de reto",
"bundle_column_error.retry": "Provu refoje",
"bundle_column_error.return": "Go back home",
"bundle_column_error.return": "Reveni al la hejmo",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Fermi",
@ -94,10 +94,10 @@
"bundle_modal_error.retry": "Provu refoje",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.find_another_server": "Trovi alian servilon",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "About",
"closed_registrations_modal.title": "Krei konton en Mastodon",
"column.about": "Pri",
"column.blocks": "Blokitaj uzantoj",
"column.bookmarks": "Legosignoj",
"column.community": "Loka templinio",
@ -150,8 +150,8 @@
"confirmations.block.block_and_report": "Bloki kaj raporti",
"confirmations.block.confirm": "Bloki",
"confirmations.block.message": "Ĉu vi certas, ke vi volas bloki {name}?",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.cancel_follow_request.confirm": "Eksigi peton",
"confirmations.cancel_follow_request.message": "Ĉu vi certas ke vi volas eksigi vian peton por sekvi {name}?",
"confirmations.delete.confirm": "Forigi",
"confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?",
"confirmations.delete_list.confirm": "Forigi",
@ -181,8 +181,10 @@
"directory.local": "Nur de {domain}",
"directory.new_arrivals": "Novaj alvenoj",
"directory.recently_active": "Lastatempe aktiva",
"disabled_account_banner.account_settings": "Konto-agordoj",
"disabled_account_banner.text": "Via konto {disabledAccount} estas nune malvalidigita.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.dismiss": "Eksigi",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
@ -238,21 +240,21 @@
"explore.trending_statuses": "Afiŝoj",
"explore.trending_tags": "Kradvortoj",
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
"filter_modal.added.context_mismatch_title": "Context mismatch!",
"filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!",
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
"filter_modal.added.expired_title": "Expired filter!",
"filter_modal.added.expired_title": "Eksvalida filtrilo!",
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
"filter_modal.added.review_and_configure_title": "Filtrilopcioj",
"filter_modal.added.settings_link": "opciopaĝo",
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
"filter_modal.added.title": "Filter added!",
"filter_modal.added.title": "Filtrilo aldonita!",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "eksvalidiĝinta",
"filter_modal.select_filter.prompt_new": "Nova klaso: {name}",
"filter_modal.select_filter.search": "Serĉi aŭ krei",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filtri ĉi afiŝo",
"filter_modal.title.status": "Filter a post",
"filter_modal.select_filter.title": "Filtri ĉi tiun afiŝon",
"filter_modal.title.status": "Filtri mesaĝon",
"follow_recommendations.done": "Farita",
"follow_recommendations.heading": "Sekvi la personojn kies mesaĝojn vi volas vidi! Jen iom da sugestoj.",
"follow_recommendations.lead": "La mesaĝoj de personoj kiujn vi sekvas, aperos laŭ kronologia ordo en via hejma templinio. Ne timu erari, vi povas ĉesi sekvi facile iam ajn!",
@ -260,11 +262,11 @@
"follow_request.reject": "Rifuzi",
"follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la teamo de {domain} pensas, ke vi eble volas permane kontroli la demandojn de sekvado de ĉi tiuj kontoj.",
"footer.about": "Pri",
"footer.directory": "Profiles directory",
"footer.directory": "Profilujo",
"footer.get_app": "Akiru la Programon",
"footer.invite": "Inviti homojn",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.keyboard_shortcuts": "Fulmoklavoj",
"footer.privacy_policy": "Politiko de privateco",
"footer.source_code": "Montri fontkodon",
"generic.saved": "Konservita",
"getting_started.heading": "Por komenci",
@ -288,14 +290,14 @@
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.on_another_server": "En alia servilo",
"interaction_modal.on_this_server": "En ĉi tiu servilo",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"interaction_modal.title.favourite": "Aldoni afiŝon de {name} al la preferaĵoj",
"interaction_modal.title.follow": "Sekvi {name}",
"interaction_modal.title.reblog": "Suprenigi la afiŝon de {name}",
"interaction_modal.title.reply": "Respondi al la afiŝo de {name}",
"intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}",
"intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}",
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}",
@ -308,8 +310,8 @@
"keyboard_shortcuts.direct": "malfermi la kolumnon de rektaj mesaĝoj",
"keyboard_shortcuts.down": "iri suben en la listo",
"keyboard_shortcuts.enter": "malfermi mesaĝon",
"keyboard_shortcuts.favourite": "Aldoni la mesaĝon al preferaĵoj",
"keyboard_shortcuts.favourites": "Malfermi la liston de preferaĵoj",
"keyboard_shortcuts.favourite": "Aldoni la mesaĝon al la preferaĵoj",
"keyboard_shortcuts.favourites": "Malfermi la liston de la preferaĵoj",
"keyboard_shortcuts.federated": "Malfermi la frataran templinion",
"keyboard_shortcuts.heading": "Klavaraj mallongigoj",
"keyboard_shortcuts.home": "Malfermi la hejman templinion",
@ -358,10 +360,11 @@
"media_gallery.toggle_visible": "{number, plural, one {Kaŝi la bildon} other {Kaŝi la bildojn}}",
"missing_indicator.label": "Ne trovita",
"missing_indicator.sublabel": "Ĉi tiu elemento ne estis trovita",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Daŭro",
"mute_modal.hide_notifications": "Ĉu vi volas kaŝi la sciigojn de ĉi tiu uzanto?",
"mute_modal.indefinite": "Nedifinita",
"navigation_bar.about": "About",
"navigation_bar.about": "Pri",
"navigation_bar.blocks": "Blokitaj uzantoj",
"navigation_bar.bookmarks": "Legosignoj",
"navigation_bar.community_timeline": "Loka templinio",
@ -382,11 +385,11 @@
"navigation_bar.pins": "Alpinglitaj mesaĝoj",
"navigation_bar.preferences": "Preferoj",
"navigation_bar.public_timeline": "Fratara templinio",
"navigation_bar.search": "Search",
"navigation_bar.search": "Serĉi",
"navigation_bar.security": "Sekureco",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} raportis {target}",
"notification.admin.sign_up": "{name} registris",
"notification.admin.sign_up": "{name} kreis konton",
"notification.favourite": "{name} aldonis vian mesaĝon al siaj preferaĵoj",
"notification.follow": "{name} eksekvis vin",
"notification.follow_request": "{name} petis sekvi vin",
@ -453,7 +456,7 @@
"privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive de la funkcio de esploro",
"privacy.unlisted.short": "Nelistigita",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"privacy_policy.title": "Politiko de privateco",
"refresh": "Refreŝigu",
"regeneration_indicator.label": "Ŝargado…",
"regeneration_indicator.sublabel": "Via abonfluo estas preparata!",
@ -461,8 +464,8 @@
"relative_time.full.days": "antaŭ {number, plural, one {# tago} other {# tagoj}}",
"relative_time.full.hours": "antaŭ {number, plural, one {# horo} other {# horoj}}",
"relative_time.full.just_now": "ĵus nun",
"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.minutes": "antaŭ {number, plural, one {# minuto} other {# minutoj}}",
"relative_time.full.seconds": "antaŭ {number, plural, one {# sekundo} other {# sekundoj}}",
"relative_time.hours": "{number}h",
"relative_time.just_now": "nun",
"relative_time.minutes": "{number}m",
@ -473,7 +476,7 @@
"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": "Aliaj",
"report.categories.spam": "Trudmesaĝo",
"report.categories.violation": "Content violates one or more server rules",
"report.categories.violation": "Enhavo malobservas unu aŭ plurajn servilajn regulojn",
"report.category.subtitle": "Elektu la plej bonan kongruon",
"report.category.title": "Diru al ni kio okazas pri ĉi tiu {type}",
"report.category.title_account": "profilo",
@ -525,15 +528,15 @@
"search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj",
"search_results.statuses": "Mesaĝoj",
"search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.",
"search_results.title": "Search for {q}",
"search_results.title": "Serĉ-rezultoj por {q}",
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
"server_banner.active_users": "active users",
"server_banner.administered_by": "Administered by:",
"server_banner.administered_by": "Administrata de:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
"server_banner.learn_more": "Learn more",
"server_banner.server_stats": "Server stats:",
"sign_in_banner.create_account": "Create account",
"server_banner.server_stats": "Statistikoj de la servilo:",
"sign_in_banner.create_account": "Krei konton",
"sign_in_banner.sign_in": "Sign in",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
"status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
@ -551,7 +554,7 @@
"status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}",
"status.embed": "Enkorpigi",
"status.favourite": "Aldoni al viaj preferaĵoj",
"status.filter": "Filtri ĉi afiŝo",
"status.filter": "Filtri ĉi tiun afiŝon",
"status.filtered": "Filtrita",
"status.hide": "Kaŝi la mesaĝon",
"status.history.created": "{name} kreis {date}",
@ -584,13 +587,13 @@
"status.show_more": "Montri pli",
"status.show_more_all": "Montri pli ĉiun",
"status.show_original": "Show original",
"status.translate": "Translate",
"status.translated_from_with": "Translated from {lang} using {provider}",
"status.translate": "Traduki",
"status.translated_from_with": "Tradukita el {lang} per {provider}",
"status.uncached_media_warning": "Nedisponebla",
"status.unmute_conversation": "Malsilentigi la konversacion",
"status.unpin": "Depingli de profilo",
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
"subscribed_languages.save": "Save changes",
"subscribed_languages.save": "Konservi ŝanĝojn",
"subscribed_languages.target": "Change subscribed languages for {target}",
"suggestions.dismiss": "Forigi la proponon",
"suggestions.header": "Vi povus interesiĝi pri…",
@ -607,7 +610,7 @@
"timeline_hint.resources.followers": "Sekvantoj",
"timeline_hint.resources.follows": "Sekvatoj",
"timeline_hint.resources.statuses": "Pli malnovaj mesaĝoj",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.counter_by_accounts": "{count, plural, one {{counter} persono} other {{counter} personoj}} dum la pasinta{days, plural, one { tago} other {j {days} tagoj}}",
"trends.trending_now": "Nunaj furoraĵoj",
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
"units.short.billion": "{count}Md",

View File

@ -2,10 +2,8 @@
"about.blocks": "Servidores moderados",
"about.contact": "Contacto:",
"about.disclaimer": "Mastodon es software libre y de código abierto y una marca comercial de Mastodon gGmbH.",
"about.domain_blocks.comment": "Motivo",
"about.domain_blocks.domain": "Dominio",
"about.domain_blocks.no_reason_available": "Motivo no disponible",
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
"about.domain_blocks.severity": "Gravedad",
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busqués explícitamente o sigás alguna cuenta.",
"about.domain_blocks.silenced.title": "Limitados",
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
"account.follows.empty": "Todavía este usuario no sigue a nadie.",
"account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar adhesiones de @{name}",
"account.joined_short": "En este servidor desde",
"account.languages": "Cambiar idiomas suscritos",
@ -46,12 +45,13 @@
"account.locked_info": "Esta cuenta es privada. El propietario manualmente revisa quién puede seguirle.",
"account.media": "Medios",
"account.mention": "Mencionar a @{name}",
"account.moved_to": "{name} se ha mudó a:",
"account.moved_to": "{name} indicó que su nueva cuenta ahora es:",
"account.mute": "Silenciar a @{name}",
"account.mute_notifications": "Silenciar notificaciones de @{name}",
"account.muted": "Silenciado",
"account.open_original_page": "Abrir página original",
"account.posts": "Mensajes",
"account.posts_with_replies": "Mensajes y respuestas públicas",
"account.posts_with_replies": "Mnsjs y resp. públicas",
"account.report": "Denunciar a @{name}",
"account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento",
"account.share": "Compartir el perfil de @{name}",
@ -181,6 +181,8 @@
"directory.local": "Sólo de {domain}",
"directory.new_arrivals": "Recién llegados",
"directory.recently_active": "Recientemente activos",
"disabled_account_banner.account_settings": "Config. de la cuenta",
"disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.",
"dismissable_banner.community_timeline": "Estos son los mensajes públicos más recientes de cuentas alojadas en {domain}.",
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada ahora mismo.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.",
"interaction_modal.on_another_server": "En un servidor diferente",
"interaction_modal.on_this_server": "En este servidor",
"interaction_modal.other_server_instructions": "Simplemente copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita o en la interface web en donde hayás iniciado sesión.",
"interaction_modal.other_server_instructions": "Copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita de Mastodon, o en la interface web de tu servidor de Mastodon.",
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, podés usar tu cuenta existente alojada por otro servidor Mastodon (u otra plataforma compatible, si no tenés una cuenta en ésta).",
"interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}",
"interaction_modal.title.follow": "Seguir a {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "Ocultar {number, plural, one {imagen} other {imágenes}}",
"missing_indicator.label": "No se encontró",
"missing_indicator.sublabel": "No se encontró este recurso",
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te mudaste a {movedToAccount}.",
"mute_modal.duration": "Duración",
"mute_modal.hide_notifications": "¿Querés ocultar las notificaciones de este usuario?",
"mute_modal.indefinite": "Indefinida",
@ -611,8 +614,8 @@
"trends.trending_now": "Tendencia ahora",
"ui.beforeunload": "Tu borrador se perderá si abandonás Mastodon.",
"units.short.billion": "{count}MM",
"units.short.million": "{count}M",
"units.short.thousand": "{count}mil",
"units.short.million": "{count} M",
"units.short.thousand": "{count} mil",
"upload_area.title": "Para subir, arrastrá y soltá",
"upload_button.label": "Agregá imágenes, o un archivo de audio o video",
"upload_error.limit": "Se excedió el límite de subida de archivos.",

View File

@ -1,11 +1,9 @@
{
"about.blocks": "Servidores moderados",
"about.contact": "Contacto:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Razón",
"about.domain_blocks.domain": "Dominio",
"about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
"about.domain_blocks.severity": "Gravedad",
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.",
"about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
"account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar retoots de @{name}",
"account.joined_short": "Se unió",
"account.languages": "Cambiar idiomas suscritos",
@ -46,10 +45,11 @@
"account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.",
"account.media": "Multimedia",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} se ha mudado a:",
"account.moved_to": "{name} ha indicado que su nueva cuenta es ahora:",
"account.mute": "Silenciar a @{name}",
"account.mute_notifications": "Silenciar notificaciones de @{name}",
"account.muted": "Silenciado",
"account.open_original_page": "Open original page",
"account.posts": "Publicaciones",
"account.posts_with_replies": "Publicaciones y respuestas",
"account.report": "Reportar a @{name}",
@ -181,6 +181,8 @@
"directory.local": "Sólo de {domain}",
"directory.new_arrivals": "Recién llegados",
"directory.recently_active": "Recientemente activo",
"disabled_account_banner.account_settings": "Ajustes de la cuenta",
"disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.",
"dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.",
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.",
@ -259,13 +261,13 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfiles",
"footer.get_app": "Obtener la aplicación",
"footer.invite": "Invitar gente",
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.column_header.tag_mode.all": "y {additional}",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.",
"interaction_modal.on_another_server": "En un servidor diferente",
"interaction_modal.on_this_server": "En este servidor",
"interaction_modal.other_server_instructions": "Simplemente copia y pega esta URL en la barra de búsqueda de tu aplicación favorita o en la interfaz web donde hayas iniciado sesión.",
"interaction_modal.other_server_instructions": "Copia y pega esta URL en la barra de búsqueda de tu aplicación Mastodon favorita o la interfaz web de tu servidor Mastodon.",
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.",
"interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}",
"interaction_modal.title.follow": "Seguir a {name}",
@ -339,7 +341,7 @@
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Mostrar perfil de todos modos",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.",
"lists.account.add": "Añadir a lista",
"lists.account.remove": "Quitar de lista",
"lists.delete": "Borrar lista",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "Cambiar visibilidad",
"missing_indicator.label": "No encontrado",
"missing_indicator.sublabel": "No se encontró este recurso",
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.",
"mute_modal.duration": "Duración",
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
"mute_modal.indefinite": "Indefinida",
@ -512,7 +515,7 @@
"report_notification.categories.violation": "Infracción de regla",
"report_notification.open": "Abrir informe",
"search.placeholder": "Buscar",
"search.search_or_paste": "Search or paste URL",
"search.search_or_paste": "Buscar o pegar URL",
"search_popout.search_format": "Formato de búsqueda avanzada",
"search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
"search_popout.tips.hashtag": "etiqueta",
@ -635,7 +638,7 @@
"upload_modal.preparing_ocr": "Preparando OCR…",
"upload_modal.preview_label": "Vista previa ({ratio})",
"upload_progress.label": "Subiendo…",
"upload_progress.processing": "Processing…",
"upload_progress.processing": "Procesando…",
"video.close": "Cerrar video",
"video.download": "Descargar archivo",
"video.exit_fullscreen": "Salir de pantalla completa",

View File

@ -1,11 +1,9 @@
{
"about.blocks": "Servidores moderados",
"about.contact": "Contacto:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Razón",
"about.domain_blocks.domain": "Dominio",
"about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razón no disponible",
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
"about.domain_blocks.severity": "Gravedad",
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.",
"about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
"account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar retoots de @{name}",
"account.joined_short": "Se unió",
"account.languages": "Cambiar idiomas suscritos",
@ -46,10 +45,11 @@
"account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.",
"account.media": "Multimedia",
"account.mention": "Mencionar a @{name}",
"account.moved_to": "{name} se ha mudado a:",
"account.moved_to": "{name} ha indicado que su nueva cuenta es ahora:",
"account.mute": "Silenciar a @{name}",
"account.mute_notifications": "Silenciar notificaciones de @{name}",
"account.muted": "Silenciado",
"account.open_original_page": "Abrir página original",
"account.posts": "Publicaciones",
"account.posts_with_replies": "Publicaciones y respuestas",
"account.report": "Reportar a @{name}",
@ -181,6 +181,8 @@
"directory.local": "Sólo de {domain}",
"directory.new_arrivals": "Recién llegados",
"directory.recently_active": "Recientemente activo",
"disabled_account_banner.account_settings": "Ajustes de la cuenta",
"disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.",
"dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.",
"dismissable_banner.dismiss": "Descartar",
"dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.",
@ -259,13 +261,13 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.about": "Acerca de",
"footer.directory": "Directorio de perfiles",
"footer.get_app": "Obtener la aplicación",
"footer.invite": "Invitar gente",
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.column_header.tag_mode.all": "y {additional}",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.",
"interaction_modal.on_another_server": "En un servidor diferente",
"interaction_modal.on_this_server": "En este servidor",
"interaction_modal.other_server_instructions": "Simplemente copia y pega esta URL en la barra de búsqueda de tu aplicación favorita o en la interfaz web donde hayas iniciado sesión.",
"interaction_modal.other_server_instructions": "Copia y pega esta URL en la barra de búsqueda de tu aplicación Mastodon favorita o la interfaz web de tu servidor Mastodon.",
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.",
"interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}",
"interaction_modal.title.follow": "Seguir a {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "Cambiar visibilidad",
"missing_indicator.label": "No encontrado",
"missing_indicator.sublabel": "No se encontró este recurso",
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.",
"mute_modal.duration": "Duración",
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
"mute_modal.indefinite": "Indefinida",
@ -498,7 +501,7 @@
"report.rules.title": "¿Qué normas se están violando?",
"report.statuses.subtitle": "Selecciona todos los que correspondan",
"report.statuses.title": "¿Hay alguna publicación que respalde este informe?",
"report.submit": "Publicar",
"report.submit": "Enviar",
"report.target": "Reportando",
"report.thanks.take_action": "Aquí están tus opciones para controlar lo que ves en Mastodon:",
"report.thanks.take_action_actionable": "Mientras revisamos esto, puedes tomar medidas contra @{name}:",
@ -512,7 +515,7 @@
"report_notification.categories.violation": "Infracción de regla",
"report_notification.open": "Abrir informe",
"search.placeholder": "Buscar",
"search.search_or_paste": "Search or paste URL",
"search.search_or_paste": "Buscar o pegar URL",
"search_popout.search_format": "Formato de búsqueda avanzada",
"search_popout.tips.full_text": "Las búsquedas de texto recuperan publicaciones que has escrito, marcado como favoritas, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
"search_popout.tips.hashtag": "etiqueta",
@ -567,7 +570,7 @@
"status.pinned": "Publicación fijada",
"status.read_more": "Leer más",
"status.reblog": "Retootear",
"status.reblog_private": "Implusar a la audiencia original",
"status.reblog_private": "Impulsar a la audiencia original",
"status.reblogged_by": "Retooteado por {name}",
"status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.",
"status.redraft": "Borrar y volver a borrador",
@ -635,7 +638,7 @@
"upload_modal.preparing_ocr": "Preparando OCR…",
"upload_modal.preview_label": "Vista previa ({ratio})",
"upload_progress.label": "Subiendo…",
"upload_progress.processing": "Processing…",
"upload_progress.processing": "Procesando…",
"video.close": "Cerrar video",
"video.download": "Descargar archivo",
"video.exit_fullscreen": "Salir de pantalla completa",

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
@ -39,6 +37,7 @@
"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.go_to_profile": "Go to profile",
"account.hide_reblogs": "Peida upitused kasutajalt @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
@ -46,10 +45,11 @@
"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}'i",
"account.moved_to": "{name} on kolinud:",
"account.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "Vaigista @{name}",
"account.mute_notifications": "Vaigista teated kasutajalt @{name}",
"account.muted": "Vaigistatud",
"account.open_original_page": "Open original page",
"account.posts": "Postitused",
"account.posts_with_replies": "Postitused ja vastused",
"account.report": "Raporteeri @{name}",
@ -181,6 +181,8 @@
"directory.local": "Ainult domeenilt {domain}",
"directory.new_arrivals": "Uustulijad",
"directory.recently_active": "Hiljuti aktiivne",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Varja pilt} other {Varja pildid}}",
"missing_indicator.label": "Ei leitud",
"missing_indicator.sublabel": "Seda ressurssi ei leitud",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?",
"mute_modal.indefinite": "Indefinite",

View File

@ -2,10 +2,8 @@
"about.blocks": "Moderatutako zerbitzariak",
"about.contact": "Kontaktua:",
"about.disclaimer": "Mastodon software libre eta kode irekikoa da, eta Mastodon gGmbH-ren marka erregistratua.",
"about.domain_blocks.comment": "Arrazoia",
"about.domain_blocks.domain": "Domeinua",
"about.domain_blocks.no_reason_available": "Arrazoia ez dago eskuragarri",
"about.domain_blocks.preamble": "Mastodonek orokorrean aukera ematen dizu fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikusi eta haiekin komunikatzeko. Zerbitzari zehatz honi ezarritako salbuespenak hauek dira.",
"about.domain_blocks.severity": "Larritasuna",
"about.domain_blocks.silenced.explanation": "Orokorrean ez duzu zerbitzari honetako profil eta edukirik ikusiko. Profilak jarraitzen badituzu edo edukia esplizituki bilatzen baduzu bai.",
"about.domain_blocks.silenced.title": "Mugatua",
"about.domain_blocks.suspended.explanation": "Ez da zerbitzari honetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari honetako erabiltzaileekin komunikatzea ezinezkoa eginez.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
"account.follows_you": "Jarraitzen dizu",
"account.go_to_profile": "Joan profilera",
"account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak",
"account.joined_short": "Elkartuta",
"account.languages": "Aldatu harpidetutako hizkuntzak",
@ -46,10 +45,11 @@
"account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.",
"account.media": "Multimedia",
"account.mention": "Aipatu @{name}",
"account.moved_to": "{name} hona migratu da:",
"account.moved_to": "{name} erabiltzaileak adierazi du bere kontu berria hau dela:",
"account.mute": "Mututu @{name}",
"account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak",
"account.muted": "Mutututa",
"account.open_original_page": "Ireki jatorrizko orria",
"account.posts": "Bidalketa",
"account.posts_with_replies": "Bidalketak eta erantzunak",
"account.report": "Salatu @{name}",
@ -181,6 +181,8 @@
"directory.local": "{domain} domeinukoak soilik",
"directory.new_arrivals": "Iritsi berriak",
"directory.recently_active": "Duela gutxi aktibo",
"disabled_account_banner.account_settings": "Kontuaren ezarpenak",
"disabled_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan.",
"dismissable_banner.community_timeline": "Hauek dira {domain} zerbitzarian ostatatutako kontuen bidalketa publiko berrienak.",
"dismissable_banner.dismiss": "Baztertu",
"dismissable_banner.explore_links": "Albiste hauei buruz hitz egiten ari da jendea orain zerbitzari honetan eta sare deszentralizatuko besteetan.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "Mastodon kontu batekin bidalketa honi erantzun diezaiokezu.",
"interaction_modal.on_another_server": "Beste zerbitzari batean",
"interaction_modal.on_this_server": "Zerbitzari honetan",
"interaction_modal.other_server_instructions": "Kopiatu eta itsatsi URL hau zure aplikazio gogokoenaren bilaketa-barran edo saioa hasita daukazun web interfazean.",
"interaction_modal.other_server_instructions": "Kopiatu eta itsatsi URL hau zure Mastodon aplikazio gogokoenaren edo zure Mastodon zerbitzariaren web interfazeko bilaketa eremuan.",
"interaction_modal.preamble": "Mastodon deszentralizatua denez, zerbitzari honetan konturik ez badaukazu, beste Mastodon zerbitzari batean edo bateragarria den plataforma batean ostatatutako kontua erabil dezakezu.",
"interaction_modal.title.favourite": "Egin gogoko {name}(r)en bidalketa",
"interaction_modal.title.follow": "Jarraitu {name}",
@ -339,7 +341,7 @@
"lightbox.next": "Hurrengoa",
"lightbox.previous": "Aurrekoa",
"limited_account_hint.action": "Erakutsi profila hala ere",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.",
"lists.account.add": "Gehitu zerrendara",
"lists.account.remove": "Kendu zerrendatik",
"lists.delete": "Ezabatu zerrenda",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "Txandakatu ikusgaitasuna",
"missing_indicator.label": "Ez aurkitua",
"missing_indicator.sublabel": "Baliabide hau ezin izan da aurkitu",
"moved_to_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan, {movedToAccount} kontura aldatu zinelako.",
"mute_modal.duration": "Iraupena",
"mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?",
"mute_modal.indefinite": "Zehaztu gabe",

View File

@ -2,10 +2,8 @@
"about.blocks": "کارسازهای نظارت شده",
"about.contact": "تماس:",
"about.disclaimer": "ماستودون نرم‌افزار آزاد، متن باز و یک شرکت غیر انتفاعی با مسئولیت محدود طبق قوانین آلمان است.",
"about.domain_blocks.comment": "دلیل",
"about.domain_blocks.domain": "دامنه",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "ماستودون عموماً می‌گذارد محتوا را از از هر کارساز دیگری در دنیای شبکه‌های اجتماعی غیرمتمرکز دیده و با آنان برهم‌کنش داشته باشید. این‌ها استثناهایی هستند که روی این کارساز خاص وضع شده‌اند.",
"about.domain_blocks.severity": "شدت",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "محدود",
"about.domain_blocks.suspended.explanation": "هیچ داده‌ای از این کارساز پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهم‌کنش یا ارتباط با کاربران این کارساز را غیرممکن خواهد کرد.",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} پی‌گرفته} other {{counter} پی‌گرفته}}",
"account.follows.empty": "این کاربر هنوز پی‌گیر کسی نیست.",
"account.follows_you": "پی می‌گیردتان",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "نهفتن تقویت‌های @{name}",
"account.joined_short": "پیوسته",
"account.languages": "تغییر زبان‌های مشترک شده",
@ -46,10 +45,11 @@
"account.locked_info": "این حساب خصوصی است. صاحبش تصمیم می‌گیرد که چه کسی پی‌گیرش باشد.",
"account.media": "رسانه",
"account.mention": "نام‌بردن از @{name}",
"account.moved_to": "{name} منتقل شده به:",
"account.moved_to": "{name} has indicated that their new account is now:",
"account.mute": "خموشاندن @{name}",
"account.mute_notifications": "خموشاندن آگاهی‌های @{name}",
"account.muted": "خموش",
"account.open_original_page": "Open original page",
"account.posts": "فرسته",
"account.posts_with_replies": "فرسته‌ها و پاسخ‌ها",
"account.report": "گزارش @{name}",
@ -181,6 +181,8 @@
"directory.local": "تنها از {domain}",
"directory.new_arrivals": "تازه‌واردان",
"directory.recently_active": "کاربران فعال اخیر",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "دور انداختن",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "روی کارسازی دیگر",
"interaction_modal.on_this_server": "روی این کارساز",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "از آن‌جا که ماستودون نامتمرکز است، می‌توانید در صورت نداشتن حساب روی این کارساز، از حساب موجود خودتان که روی کارساز ماستودون یا بن‌سازهٔ سازگار دیگری میزبانی می‌شود استفاده کنید.",
"interaction_modal.title.favourite": "فرسته‌های برگزیدهٔ {name}",
"interaction_modal.title.follow": "پیگیری {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}",
"missing_indicator.label": "پیدا نشد",
"missing_indicator.sublabel": "این منبع پیدا نشد",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "مدت زمان",
"mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟",
"mute_modal.indefinite": "نامعلوم",

View File

@ -1,11 +1,9 @@
{
"about.blocks": "Moderoidut palvelimet",
"about.contact": "Yhteystiedot:",
"about.disclaimer": "Mastodon on ilmainen avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
"about.domain_blocks.comment": "Syy",
"about.domain_blocks.domain": "Verkkotunnus",
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
"about.domain_blocks.no_reason_available": "Syy ei saatavilla",
"about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.",
"about.domain_blocks.severity": "Vakavuus",
"about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.",
"about.domain_blocks.silenced.title": "Rajoitettu",
"about.domain_blocks.suspended.explanation": "Tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee käyttäjän kanssa vuorovaikutuksen tai yhteydenpidon mahdottomaksi tällä palvelimella.",
@ -18,7 +16,7 @@
"account.badges.bot": "Botti",
"account.badges.group": "Ryhmä",
"account.block": "Estä @{name}",
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
"account.block_domain": "Estä verkkotunnus {domain}",
"account.blocked": "Estetty",
"account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
"account.cancel_follow_request": "Peruuta seurantapyyntö",
@ -39,6 +37,7 @@
"account.following_counter": "{count, plural, one {{counter} seuraa} other {{counter} seuraa}}",
"account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
"account.follows_you": "Seuraa sinua",
"account.go_to_profile": "Mene profiiliin",
"account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}",
"account.joined_short": "Liittynyt",
"account.languages": "Vaihda tilattuja kieliä",
@ -46,10 +45,11 @@
"account.locked_info": "Tämän tilin yksityisyyden tila on asetettu lukituksi. Omistaja arvioi manuaalisesti, kuka voi seurata niitä.",
"account.media": "Media",
"account.mention": "Mainitse @{name}",
"account.moved_to": "{name} on muuttanut:",
"account.moved_to": "{name} on ilmoittanut uudeksi tilikseen",
"account.mute": "Mykistä @{name}",
"account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
"account.muted": "Mykistetty",
"account.open_original_page": "Avaa alkuperäinen sivu",
"account.posts": "Viestit",
"account.posts_with_replies": "Viestit ja vastaukset",
"account.report": "Raportoi @{name}",
@ -163,7 +163,7 @@
"confirmations.logout.confirm": "Kirjaudu ulos",
"confirmations.logout.message": "Oletko varma, että haluat kirjautua ulos?",
"confirmations.mute.confirm": "Mykistä",
"confirmations.mute.explanation": "Tämä piilottaa heidän julkaisut ja julkaisut, joissa heidät mainitaan, mutta sallii edelleen heidän nähdä julkaisusi ja seurata sinua.",
"confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta mukaan lukien ne, joissa heidät mainitaan sallien heidän yhä nähdä julkaisusi ja seurata sinua.",
"confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?",
"confirmations.redraft.confirm": "Poista & palauta muokattavaksi",
"confirmations.redraft.message": "Oletko varma että haluat poistaa tämän julkaisun ja tehdä siitä uuden luonnoksen? Suosikit ja buustaukset menetään, alkuperäisen julkaisusi vastaukset jäävät orvoiksi.",
@ -181,6 +181,8 @@
"directory.local": "Vain palvelimelta {domain}",
"directory.new_arrivals": "Äskettäin saapuneet",
"directory.recently_active": "Hiljattain aktiiviset",
"disabled_account_banner.account_settings": "Tilin asetukset",
"disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.",
"dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset viestit ihmisiltä, joiden tilejä isännöi {domain}.",
"dismissable_banner.dismiss": "Hylkää",
"dismissable_banner.explore_links": "Näistä uutisista puhuvat ihmiset juuri nyt tällä ja muilla hajautetun verkon palvelimilla.",
@ -290,7 +292,7 @@
"interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.",
"interaction_modal.on_another_server": "Toisella palvelimella",
"interaction_modal.on_this_server": "Tällä palvelimella",
"interaction_modal.other_server_instructions": "Yksinkertaisesti kopioi ja liitä tämä URL-osoite suosikki sovelluksen tai web-käyttöliittymän hakupalkkiin, jossa olet kirjautunut sisään.",
"interaction_modal.other_server_instructions": "Kopioi ja liitä tämä URL-osoite käyttämäsi Mastodon-sovelluksen hakukenttään tai Mastodon-palvelimen web-käyttöliittymään.",
"interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.",
"interaction_modal.title.favourite": "Suosikin {name} viesti",
"interaction_modal.title.follow": "Seuraa {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}",
"missing_indicator.label": "Ei löytynyt",
"missing_indicator.sublabel": "Tätä resurssia ei löytynyt",
"moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.",
"mute_modal.duration": "Kesto",
"mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?",
"mute_modal.indefinite": "Ikuisesti",

View File

@ -2,19 +2,17 @@
"about.blocks": "Serveurs modérés",
"about.contact": "Contact :",
"about.disclaimer": "Mastodon est un logiciel libre, open-source et une marque déposée de Mastodon gGmbH.",
"about.domain_blocks.comment": "Motif :",
"about.domain_blocks.domain": "Domaine",
"about.domain_blocks.no_reason_available": "Raison non disponible",
"about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateurs de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
"about.domain_blocks.severity": "Sévérité",
"about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.",
"about.domain_blocks.silenced.title": "Limité",
"about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.",
"about.domain_blocks.suspended.title": "Suspendu",
"about.not_available": "Cette information n'a pas été rendue disponibles sur ce serveur.",
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
"about.rules": "Règles du serveur",
"account.account_note_header": "Note",
"account.add_or_remove_from_list": "Ajouter ou enlever des listes",
"account.add_or_remove_from_list": "Ajouter ou retirer des listes",
"account.badges.bot": "Bot",
"account.badges.group": "Groupe",
"account.block": "Bloquer @{name}",
@ -23,7 +21,7 @@
"account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
"account.cancel_follow_request": "Retirer la demande dabonnement",
"account.direct": "Envoyer un message direct à @{name}",
"account.disable_notifications": "Ne plus 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 quelque chose",
@ -39,6 +37,7 @@
"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.go_to_profile": "Voir le profil",
"account.hide_reblogs": "Masquer les partages de @{name}",
"account.joined_short": "Ici depuis",
"account.languages": "Changer les langues abonnées",
@ -46,10 +45,11 @@
"account.locked_info": "Ce compte est privé. Son ou sa propriétaire approuve manuellement qui peut le suivre.",
"account.media": "Médias",
"account.mention": "Mentionner @{name}",
"account.moved_to": "{name} a déménagé vers:",
"account.moved_to": "{name} a indiqué que son nouveau compte est tmaintenant  :",
"account.mute": "Masquer @{name}",
"account.mute_notifications": "Masquer les notifications de @{name}",
"account.muted": "Masqué·e",
"account.open_original_page": "Ouvrir la page d'origine",
"account.posts": "Messages",
"account.posts_with_replies": "Messages et réponses",
"account.report": "Signaler @{name}",
@ -181,12 +181,14 @@
"directory.local": "De {domain} seulement",
"directory.new_arrivals": "Inscrit·e·s récemment",
"directory.recently_active": "Actif·ve·s récemment",
"disabled_account_banner.account_settings": "Paramètres du compte",
"disabled_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé.",
"dismissable_banner.community_timeline": "Voici les messages publics les plus récents des personnes dont les comptes sont hébergés par {domain}.",
"dismissable_banner.dismiss": "Rejeter",
"dismissable_banner.explore_links": "Ces nouvelles sont actuellement en cours de discussion par des personnes sur d'autres serveurs du réseau décentralisé ainsi que sur celui-ci.",
"dismissable_banner.explore_statuses": "Ces publications depuis les serveurs du réseau décentralisé, dont celui-ci, sont actuellement en train de gagner de l'ampleur sur ce serveur.",
"dismissable_banner.explore_tags": "Ces hashtags sont actuellement en train de gagner de l'ampleur parmi les personnes sur les serveurs du réseau décentralisé dont celui-ci.",
"dismissable_banner.public_timeline": "Ce sont les publications publiques les plus récentes des personnes sur les serveurs du réseau décentralisé dont ce serveur que celui-ci connaît.",
"dismissable_banner.public_timeline": "Voici les publications publiques les plus récentes des personnes de ce serveur et des autres du réseau décentralisé que ce serveur connait.",
"embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.",
"embed.preview": "Il apparaîtra comme cela:",
"emoji_button.activity": "Activités",
@ -286,11 +288,11 @@
"home.show_announcements": "Afficher les annonces",
"interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce post aux favoris pour informer l'auteur que vous l'appréciez et le sauvegarder pour plus tard.",
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.",
"interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez booster ce message pour le partager avec vos propres abonné·e·s.",
"interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez booster ce message pour le partager avec vos propres abonnés.",
"interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.",
"interaction_modal.on_another_server": "Sur un autre serveur",
"interaction_modal.on_this_server": "Sur ce serveur",
"interaction_modal.other_server_instructions": "Copiez et collez simplement cette URL dans la barre de recherche de votre application préférée ou dans linterface web où vous êtes connecté.",
"interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou l'interface web de votre serveur Mastodon.",
"interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.",
"interaction_modal.title.favourite": "Ajouter de post de {name} aux favoris",
"interaction_modal.title.follow": "Suivre {name}",
@ -358,6 +360,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Cacher limage} other {Cacher les images}}",
"missing_indicator.label": "Non trouvé",
"missing_indicator.sublabel": "Ressource introuvable",
"moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous avez déplacé vers {movedToAccount}.",
"mute_modal.duration": "Durée",
"mute_modal.hide_notifications": "Masquer les notifications de cette personne?",
"mute_modal.indefinite": "Indéfinie",
@ -374,7 +377,7 @@
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Mots masqués",
"navigation_bar.follow_requests": "Demandes dabonnement",
"navigation_bar.follows_and_followers": "Abonnements et abonné⋅e·s",
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Déconnexion",
"navigation_bar.mutes": "Comptes masqués",
@ -446,8 +449,8 @@
"privacy.change": "Ajuster la confidentialité du message",
"privacy.direct.long": "Visible uniquement par les comptes mentionnés",
"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.private.long": "Visible uniquement par vos abonnés",
"privacy.private.short": "Abonnés uniquement",
"privacy.public.long": "Visible pour tous",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalités de découverte",
@ -528,7 +531,7 @@
"search_results.title": "Rechercher {q}",
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
"server_banner.about_active_users": "Personnes utilisant ce serveur au cours des 30 derniers jours (Utilisateur·rice·s Actifs·ives Mensuellement)",
"server_banner.active_users": "Utilisateur·rice·s actif·ve·s",
"server_banner.active_users": "Utilisateurs actifs",
"server_banner.administered_by": "Administré par :",
"server_banner.introduction": "{domain} fait partie du réseau social décentralisé propulsé par {mastodon}.",
"server_banner.learn_more": "En savoir plus",
@ -606,7 +609,7 @@
"timeline_hint.remote_resource_not_displayed": "{resource} des autres serveurs ne sont pas affichés.",
"timeline_hint.resources.followers": "Les abonnés",
"timeline_hint.resources.follows": "Les abonnements",
"timeline_hint.resources.statuses": "Messages plus anciens",
"timeline_hint.resources.statuses": "Les messages plus anciens",
"trends.counter_by_accounts": "{count, plural, one {{counter} personne} other {{counter} personnes}} au cours {days, plural, one {des dernières 24h} other {des {days} derniers jours}}",
"trends.trending_now": "Tendance en ce moment",
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",

View File

@ -1,70 +1,70 @@
{
"about.blocks": "Moderated servers",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules",
"account.account_note_header": "Note",
"account.add_or_remove_from_list": "Add or Remove from lists",
"about.blocks": "Moderearre servers",
"about.contact": "Kontakt:",
"about.disclaimer": "Mastodon is frije, iepenboarnesoftware en in hannelsmerk fan Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Reason not available",
"about.domain_blocks.preamble": "Yn it algemien kinsto mei Mastodon berjochten ûntfange fan, en ynteraksje hawwe mei brûkers fan elke server yn de fediverse. Dit binne de útsûnderingen dyt op dizze spesifike server jilde.",
"about.domain_blocks.silenced.explanation": "Yn it algemien sjochsto gjin berjochten en accounts fan dizze server, útsein do berjochten eksplisyt opsikest of derfoar kiest om in account fan dizze server te folgjen.",
"about.domain_blocks.silenced.title": "Beheind",
"about.domain_blocks.suspended.explanation": "Der wurde gjin gegevens fan dizze server ferwurke, bewarre of útwiksele, wat ynteraksje of kommunikaasje mei brûkers fan dizze server ûnmooglik makket.",
"about.domain_blocks.suspended.title": "Utsteld",
"about.not_available": "Dizze ynformaasje is troch dizze server net iepenbier makke.",
"about.powered_by": "Desintralisearre sosjale media, mooglik makke troch {mastodon}",
"about.rules": "Serverrigels",
"account.account_note_header": "Opmerking",
"account.add_or_remove_from_list": "Tafoegje of fuortsmite fan listen út",
"account.badges.bot": "Bot",
"account.badges.group": "Groep",
"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": "Withdraw follow request",
"account.direct": "Direct message @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.block": "@{name} blokkearje",
"account.block_domain": "Domein {domain} blokkearje",
"account.blocked": "Blokkearre",
"account.browse_more_on_origin_server": "Mear op it orizjinele profyl besjen",
"account.cancel_follow_request": "Folchfersyk annulearje",
"account.direct": "@{name} in direkt berjocht stjoere",
"account.disable_notifications": "Jou gjin melding mear wannear @{name} in berjocht pleatst",
"account.domain_blocked": "Domein blokkearre",
"account.edit_profile": "Profyl oanpasse",
"account.enable_notifications": "Notify me when @{name} posts",
"account.endorse": "Feature on profile",
"account.featured_tags.last_status_at": "Last post on {date}",
"account.featured_tags.last_status_never": "No posts",
"account.featured_tags.title": "{name}'s featured hashtags",
"account.edit_profile": "Profyl bewurkje",
"account.enable_notifications": "Jou in melding mear wannear @{name} in berjocht pleatst",
"account.endorse": "Op profyl werjaan",
"account.featured_tags.last_status_at": "Lêste berjocht op {date}",
"account.featured_tags.last_status_never": "Gjin berjochten",
"account.featured_tags.title": "Utljochte hashtags fan {name}",
"account.follow": "Folgje",
"account.followers": "Folgers",
"account.followers.empty": "No one follows this user yet.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following": "Folget",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.followers.empty": "Noch net ien folget dizze brûker.",
"account.followers_counter": "{count, plural, one {{counter} folger} other {{counter} folgers}}",
"account.following": "Folgjend",
"account.following_counter": "{count, plural, one {{counter} folgjend} other {{counter} folgjend}}",
"account.follows.empty": "Dizze brûker folget noch net ien.",
"account.follows_you": "Folget dy",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.joined_short": "Joined",
"account.languages": "Change subscribed languages",
"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.go_to_profile": "Go to profile",
"account.hide_reblogs": "Boosts fan @{name} ferstopje",
"account.joined_short": "Registrearre op",
"account.languages": "Toande talen wizigje",
"account.link_verified_on": "Eigendom fan dizze keppeling is kontrolearre op {date}",
"account.locked_info": "De privacysteat fan dizze account is op beskoattele set. De eigener bepaalt hânmjittich wat dyjinge folgje kin.",
"account.media": "Media",
"account.mention": "Fermeld @{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.mention": "@{name} fermelde",
"account.moved_to": "{name} is ferhuze net:",
"account.mute": "@{name} negearje",
"account.mute_notifications": "Meldingen fan @{name} negearje",
"account.muted": "Negearre",
"account.open_original_page": "Open original page",
"account.posts": "Berjochten",
"account.posts_with_replies": "Berjochten en reaksjes",
"account.report": "@{name} rapportearje",
"account.requested": "Wacht op goedkarring. Klik om it folchfersyk te annulearjen",
"account.share": "Profyl fan @{name} diele",
"account.show_reblogs": "Boosts fan @{name} toane",
"account.statuses_counter": "{count, plural, one {{counter} berjocht} other {{counter} berjochten}}",
"account.unblock": "@{name} deblokkearje",
"account.unblock_domain": "Domein {domain} deblokkearje",
"account.unblock_short": "Deblokkearje",
"account.unendorse": "Net op profyl werjaan",
"account.unfollow": "Net mear folgje",
"account.unmute": "Unmute @{name}",
"account.unmute": "@{name} net langer negearje",
"account.unmute_notifications": "Unmute notifications from @{name}",
"account.unmute_short": "Net mear negearre",
"account.unmute_short": "Net mear negearje",
"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",
@ -74,19 +74,19 @@
"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": "Oepsy!",
"announcement.announcement": "Meidieling",
"attachments_list.unprocessed": "(net ferwurke)",
"audio.hide": "Hide audio",
"autosuggest_hashtag.per_week": "{count} per week",
"audio.hide": "Audio ferstopje",
"autosuggest_hashtag.per_week": "{count} yn e wike",
"boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.error.title": "Oh nee!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Network error",
"bundle_column_error.retry": "Try again",
"bundle_column_error.return": "Go back home",
"bundle_column_error.network.title": "Netwurkflater",
"bundle_column_error.retry": "Opnij probearje",
"bundle_column_error.return": "Tebek nei startside",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Slute",
@ -97,117 +97,119 @@
"closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "About",
"column.about": "Oer",
"column.blocks": "Blokkearre brûkers",
"column.bookmarks": "Blêdwizers",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.directory": "Browse profiles",
"column.community": "Lokale tiidline",
"column.direct": "Direkte berjochten",
"column.directory": "Profilen trochsykje",
"column.domain_blocks": "Blokkeare domeinen",
"column.favourites": "Favoriten",
"column.follow_requests": "Follow requests",
"column.home": "Home",
"column.follow_requests": "Folchfersiken",
"column.home": "Startside",
"column.lists": "Listen",
"column.mutes": "Negearre brûkers",
"column.notifications": "Notifikaasjes",
"column.notifications": "Meldingen",
"column.pins": "Fêstsette berjochten",
"column.public": "Federated timeline",
"column.public": "Globale tiidline",
"column_back_button.label": "Werom",
"column_header.hide_settings": "Ynstellings ferbergje",
"column_header.hide_settings": "Ynstellingen ferstopje",
"column_header.moveLeft_settings": "Kolom nei links ferpleatse",
"column_header.moveRight_settings": "Kolom nei rjochts ferpleatse",
"column_header.pin": "Fêstsette",
"column_header.show_settings": "Ynstellings sjen litte",
"column_header.show_settings": "Ynstellingen toane",
"column_header.unpin": "Los helje",
"column_subheading.settings": "Ynstellings",
"column_subheading.settings": "Ynstellingen",
"community.column_settings.local_only": "Allinnich lokaal",
"community.column_settings.media_only": "Allinnich media",
"community.column_settings.remote_only": "Allinnich oare tsjinners",
"compose.language.change": "Fan taal feroarje",
"compose.language.search": "Talen sykje...",
"compose_form.direct_message_warning_learn_more": "Lês mear",
"community.column_settings.remote_only": "Allinnich oare servers",
"compose.language.change": "Taal wizigje",
"compose.language.search": "Talen sykje",
"compose_form.direct_message_warning_learn_more": "Mear ynfo",
"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": "Wat wolst kwyt?",
"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.lock_disclaimer.lock": "beskoattele",
"compose_form.placeholder": "Wat wolsto kwyt?",
"compose_form.poll.add_option": "Kar tafoegje",
"compose_form.poll.duration": "Doer fan de poll",
"compose_form.poll.option_placeholder": "Keuze {number}",
"compose_form.poll.remove_option": "Dizze kar fuortsmite",
"compose_form.poll.switch_to_multiple": "Poll wizigje om meardere karren ta te stean",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "Publisearje",
"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.save_changes": "Wizigingen bewarje",
"compose_form.sensitive.hide": "{count, plural, one {Media as gefoelich markearje} other {Media as gefoelich markearje}}",
"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": "Ynhâldswarskôging fuortsmite",
"compose_form.spoiler.unmarked": "Ynhâldswarskôging tafoegje",
"compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Ofbrekke",
"confirmations.block.block_and_report": "Blokkearre & Oanjaan",
"confirmations.block.confirm": "Blokkearre",
"confirmations.block.message": "Wolle jo {name} werklik blokkearre?",
"confirmation_modal.cancel": "Annulearje",
"confirmations.block.block_and_report": "Blokkearje en rapportearje",
"confirmations.block.confirm": "Blokkearje",
"confirmations.block.message": "Bisto wis datsto {name} blokkearje wolst?",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.delete.confirm": "Fuortsmite",
"confirmations.delete.message": "Wolle jo dit berjocht werklik fuortsmite?",
"confirmations.delete.message": "Bisto wis datsto dit berjocht fuortsmite wolst?",
"confirmations.delete_list.confirm": "Fuortsmite",
"confirmations.delete_list.message": "Wolle jo dizze list werklik foar ivich fuortsmite?",
"confirmations.discard_edit_media.confirm": "Discard",
"confirmations.delete_list.message": "Bisto wis datsto dizze list foar permanint fuortsmite wolst?",
"confirmations.discard_edit_media.confirm": "Fuortsmite",
"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": "Wolle jo werklik útlogge?",
"confirmations.mute.confirm": "Negearre",
"confirmations.mute.explanation": "Dit sil berjochten fan harren ûnsichtber meitsje en berjochen wêr se yn fermeld wurde, mar se sille jo berjochten noch immen sjen kinne en jo folgje kinne.",
"confirmations.mute.message": "Wolle jo {name} werklik negearre?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Wolle jo dit berjocht werklik fuortsmite en opnij opstelle? Favoriten en boosts geane dan ferlern, en reaksjes op it oarspronklike berjocht reitsje jo kwyt.",
"confirmations.reply.confirm": "Reagearre",
"confirmations.reply.message": "Troch no te reagearjen sil it berjocht wat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo troch gean?",
"confirmations.logout.confirm": "Ofmelde",
"confirmations.logout.message": "Bisto wis datsto ôfmelde wolst?",
"confirmations.mute.confirm": "Negearje",
"confirmations.mute.explanation": "Dit sil berjochten fan harren en berjochten wêrt se yn fermeld wurden ûnsichtber meitsje, mar se sille dyn berjochten noch hieltyd sjen kinne en dy folgje kinne.",
"confirmations.mute.message": "Bisto wis datsto {name} negearje wolst?",
"confirmations.redraft.confirm": "Fuortsmite en opnij opstelle",
"confirmations.redraft.message": "Wolsto dit berjocht wurklik fuortsmite en opnij opstelle? Favoriten en boosts geane dan ferlern en reaksjes op it oarspronklike berjocht rekkesto kwyt.",
"confirmations.reply.confirm": "Reagearje",
"confirmations.reply.message": "Troch no te reagearjen sil it berjocht watsto no oan it skriuwen binne oerskreaun wurde. Wolsto trochgean?",
"confirmations.unfollow.confirm": "Net mear folgje",
"confirmations.unfollow.message": "Wolle jo {name} werklik net mear folgje?",
"confirmations.unfollow.message": "Bisto wis datsto {name} net mear folgje wolst?",
"conversation.delete": "Petear fuortsmite",
"conversation.mark_as_read": "As lêzen oanmurkje",
"conversation.open": "Petear besjen",
"conversation.mark_as_read": "As lêzen markearje",
"conversation.open": "Petear toane",
"conversation.with": "Mei {names}",
"copypaste.copied": "Copied",
"copypaste.copy": "Copy",
"directory.federated": "From known fediverse",
"directory.local": "From {domain} only",
"directory.new_arrivals": "New arrivals",
"directory.recently_active": "Resintlik warber",
"copypaste.copied": "Kopiearre",
"copypaste.copy": "Kopiearje",
"directory.federated": "Fediverse (wat bekend is)",
"directory.local": "Allinnich fan {domain}",
"directory.new_arrivals": "Nije accounts",
"directory.recently_active": "Resint aktyf",
"disabled_account_banner.account_settings": "Account settings",
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"dismissable_banner.dismiss": "Slute",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
"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.activity": "Aktiviteiten",
"emoji_button.clear": "Wiskje",
"emoji_button.custom": "Oanpast",
"emoji_button.flags": "Flaggen",
"emoji_button.food": "Iten en drinken",
"emoji_button.label": "Emoji tafoegje",
"emoji_button.nature": "Natuer",
"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": "Gjin berjochten hjir!",
"emoji_button.objects": "Objekten",
"emoji_button.people": "Minsken",
"emoji_button.recent": "Faaks brûkt",
"emoji_button.search": "Sykje…",
"emoji_button.search_results": "Sykresultaten",
"emoji_button.symbols": "Symboalen",
"emoji_button.travel": "Reizgje en lokaasjes",
"empty_column.account_suspended": "Account beskoattele",
"empty_column.account_timeline": "Hjir binne gjin berjochten!",
"empty_column.account_unavailable": "Profyl net beskikber",
"empty_column.blocks": "Jo hawwe noch gjin brûkers blokkearre.",
"empty_column.blocks": "Do hast noch gjin brûkers blokkearre.",
"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.",
@ -222,17 +224,17 @@
"empty_column.home.suggestions": "Suggestjes besjen",
"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": "Jo hawwe noch gjin brûkers negearre.",
"empty_column.notifications": "Jo hawwe noch gjin notifikaasjes. Ynteraksjes mei oare minsken sjogge jo hjir.",
"empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare tsjinners om it hjir te foljen",
"error.unexpected_crash.explanation": "Troch in bug in ús koade as in probleem mei de komptabiliteit fan jo browser, koe dizze side net sjen litten wurde.",
"error.unexpected_crash.explanation_addons": "Dizze side kin net goed sjen litten wurde. Dit probleem komt faaks troch in browser útwreiding of ark foar automatysk oersetten.",
"empty_column.mutes": "Do hast noch gjin brûkers negearre.",
"empty_column.notifications": "Do hast noch gjin meldingen. Ynteraksjes mei oare minsken sjochsto hjir.",
"empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare servers om it hjir te foljen",
"error.unexpected_crash.explanation": "Troch in bug in ús koade of in probleem mei de komptabiliteit fan jo browser, koe dizze side net toand wurde.",
"error.unexpected_crash.explanation_addons": "Dizze side kin net goed toand wurde. Dit probleem komt faaks troch in browserútwreiding of ark foar automatysk oersetten.",
"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": "Technysk probleem oanjaan",
"explore.search_results": "Search results",
"explore.suggested_follows": "Foar jo",
"errors.unexpected_crash.report_issue": "Technysk probleem melde",
"explore.search_results": "Sykresultaten",
"explore.suggested_follows": "Foar dy",
"explore.title": "Ferkenne",
"explore.trending_links": "Nijs",
"explore.trending_statuses": "Berjochten",
@ -242,32 +244,32 @@
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
"filter_modal.added.expired_title": "Expired filter!",
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
"filter_modal.added.review_and_configure_title": "Filter settings",
"filter_modal.added.settings_link": "settings page",
"filter_modal.added.review_and_configure_title": "Filterynstellingen",
"filter_modal.added.settings_link": "ynstellingenside",
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
"filter_modal.added.title": "Filter added!",
"filter_modal.added.title": "Filter tafoege!",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "expired",
"filter_modal.select_filter.prompt_new": "New category: {name}",
"filter_modal.select_filter.search": "Search or create",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"filter_modal.select_filter.expired": "ferrûn",
"filter_modal.select_filter.prompt_new": "Nije kategory: {name}",
"filter_modal.select_filter.search": "Sykje of tafoegje",
"filter_modal.select_filter.subtitle": "In besteande kategory brûke of in nije oanmeitsje",
"filter_modal.select_filter.title": "Dit berjocht filterje",
"filter_modal.title.status": "In berjocht filterje",
"follow_recommendations.done": "Klear",
"follow_recommendations.heading": "Folgje minsken wer as jo graach berjochten fan sjen wolle! Hjir binne wat suggestjes.",
"follow_recommendations.heading": "Folgje minsken dêrtsto graach berjochten fan sjen wolst! Hjir binne wat suggestjes.",
"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": "Goedkarre",
"follow_request.reject": "Ofkarre",
"follow_request.reject": "Wegerje",
"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.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"footer.about": "Oer",
"footer.directory": "Profylmap",
"footer.get_app": "App downloade",
"footer.invite": "Minsken útnûgje",
"footer.keyboard_shortcuts": "Fluchtoetsen",
"footer.privacy_policy": "Privacybelied",
"footer.source_code": "Boarnekoade besjen",
"generic.saved": "Bewarre",
"getting_started.heading": "Utein sette",
"getting_started.heading": "Uteinsette",
"hashtag.column_header.tag_mode.all": "en {additional}",
"hashtag.column_header.tag_mode.any": "of {additional}",
"hashtag.column_header.tag_mode.none": "sûnder {additional}",
@ -279,21 +281,21 @@
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"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",
"home.column_settings.basic": "Algemien",
"home.column_settings.show_reblogs": "Boosts toane",
"home.column_settings.show_replies": "Reaksjes toane",
"home.hide_announcements": "Meidielingen ferstopje",
"home.show_announcements": "Meidielingen toane",
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server",
"interaction_modal.on_this_server": "On this server",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.on_this_server": "Op dizze server",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
"interaction_modal.title.follow": "{name} folgje",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
@ -301,128 +303,129 @@
"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.boost": "Berjocht booste",
"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.description": "Omskriuwing",
"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.enter": "Berjocht iepenje",
"keyboard_shortcuts.favourite": "As favoryt markearje",
"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.heading": "Fluchtoetsen",
"keyboard_shortcuts.home": "Starttiidline toane",
"keyboard_shortcuts.hotkey": "Fluchtoets",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "to open local timeline",
"keyboard_shortcuts.mention": "Skriuwer beneame",
"keyboard_shortcuts.mention": "Skriuwer fermelde",
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "Jo profyl iepenje",
"keyboard_shortcuts.notifications": "Notifikaasjes sjen litte",
"keyboard_shortcuts.my_profile": "Dyn profyl iepenje",
"keyboard_shortcuts.notifications": "Meldingen toane",
"keyboard_shortcuts.open_media": "Media iepenje",
"keyboard_shortcuts.pinned": "Fêstsette berjochten sjen litte",
"keyboard_shortcuts.profile": "Profyl fan skriuwer iepenje",
"keyboard_shortcuts.pinned": "Fêstsette berjochten toane",
"keyboard_shortcuts.profile": "Skriuwersprofyl iepenje",
"keyboard_shortcuts.reply": "Berjocht beäntwurdzje",
"keyboard_shortcuts.requests": "Folgfersiken sjen litte",
"keyboard_shortcuts.requests": "Folchfersiken toane",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.spoilers": "CW fjild ferstopje/sjen litte",
"keyboard_shortcuts.start": "\"Útein sette\" iepenje",
"keyboard_shortcuts.toggle_hidden": "Tekst efter CW fjild ferstopje/sjen litte",
"keyboard_shortcuts.toggle_sensitivity": "Media ferstopje/sjen litte",
"keyboard_shortcuts.spoilers": "CW-fjild ferstopje/toane",
"keyboard_shortcuts.start": "Uteinsette iepenje",
"keyboard_shortcuts.toggle_hidden": "Tekst efter CW-fjild ferstopje/toane",
"keyboard_shortcuts.toggle_sensitivity": "Media ferstopje/toane",
"keyboard_shortcuts.toot": "Nij berjocht skriuwe",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "Nei boppe yn list ferpleatse",
"lightbox.close": "Slute",
"lightbox.compress": "Compress image view box",
"lightbox.expand": "Expand image view box",
"lightbox.next": "Fierder",
"lightbox.previous": "Werom",
"lightbox.next": "Folgjende",
"lightbox.previous": "Foarige",
"limited_account_hint.action": "Profyl dochs besjen",
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Oan list tafoegje",
"lists.account.remove": "Ut list wei smite",
"lists.account.remove": "Ut list fuortsmite",
"lists.delete": "List fuortsmite",
"lists.edit": "Edit list",
"lists.edit.submit": "Titel feroarje",
"lists.edit.submit": "Titel wizigje",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "Nije list titel",
"lists.new.title_placeholder": "Nije listtitel",
"lists.replies_policy.followed": "Elke folge brûker",
"lists.replies_policy.list": "Leden fan de list",
"lists.replies_policy.none": "Net ien",
"lists.replies_policy.title": "Reaksjes sjen litte oan:",
"lists.replies_policy.title": "Reaksjes toane oan:",
"lists.search": "Search among people you follow",
"lists.subheading": "Jo listen",
"lists.subheading": "Dyn listen",
"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": "Net fûn",
"missing_indicator.sublabel": "This resource could not be found",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Duration",
"mute_modal.hide_notifications": "Notifikaasjes fan dizze brûker ferstopje?",
"mute_modal.hide_notifications": "Meldingen fan dizze brûker ferstopje?",
"mute_modal.indefinite": "Indefinite",
"navigation_bar.about": "About",
"navigation_bar.blocks": "Blokkearre brûkers",
"navigation_bar.bookmarks": "Blêdwiizers",
"navigation_bar.bookmarks": "Blêdwizers",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Direct messages",
"navigation_bar.compose": "Nij berjocht skriuwe",
"navigation_bar.direct": "Direkte berjochten",
"navigation_bar.discover": "Untdekke",
"navigation_bar.domain_blocks": "Blokkearre domeinen",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.edit_profile": "Profyl bewurkje",
"navigation_bar.explore": "Ferkenne",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Negearre wurden",
"navigation_bar.follow_requests": "Folgfersiken",
"navigation_bar.follow_requests": "Folchfersiken",
"navigation_bar.follows_and_followers": "Folgers en folgjenden",
"navigation_bar.lists": "Listen",
"navigation_bar.logout": "Utlogge",
"navigation_bar.logout": "Ofmelde",
"navigation_bar.mutes": "Negearre brûkers",
"navigation_bar.personal": "Persoanlik",
"navigation_bar.pins": "Fêstsette berjochten",
"navigation_bar.preferences": "Foarkarren",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.search": "Search",
"navigation_bar.security": "Security",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} hat harren ynskreaun",
"notification.favourite": "{name} hat jo berjocht as favoryt markearre",
"notification.follow": "{name} folget jo",
"notification.follow_request": "{name} hat jo in folgfersyk stjoerd",
"notification.mention": "{name} hat jo fermeld",
"notification.own_poll": "Jo poll is beëinige",
"notification.poll": "In poll wêr jo yn stimt ha is beëinige",
"notification.reblog": "{name} hat jo berjocht boost",
"navigation_bar.public_timeline": "Globale tiidline",
"navigation_bar.search": "Sykje",
"navigation_bar.security": "Befeiliging",
"not_signed_in_indicator.not_signed_in": "Do moatst oanmelde om tagong ta dizze ynformaasje te krijen.",
"notification.admin.report": "{name} hat {target} rapportearre",
"notification.admin.sign_up": "{name} hat harren registrearre",
"notification.favourite": "{name} hat dyn berjocht as favoryt markearre",
"notification.follow": "{name} folget dy",
"notification.follow_request": "{name} hat dy in folchfersyk stjoerd",
"notification.mention": "{name} hat dy fermeld",
"notification.own_poll": "Dyn poll is beëinige",
"notification.poll": "In poll wêrtsto yn stimd hast is beëinige",
"notification.reblog": "{name} hat dyn berjocht boost",
"notification.status": "{name} hat in berjocht pleatst",
"notification.update": "{name} hat in berjocht feroare",
"notifications.clear": "Notifikaasjes leegje",
"notifications.clear_confirmation": "Wolle jo al jo notifikaasjes werklik foar ivich fuortsmite?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "Nije ynskriuwingen:",
"notifications.column_settings.alert": "Desktop notifikaasjes",
"notification.update": "{name} hat in berjocht bewurke",
"notifications.clear": "Meldingen wiskje",
"notifications.clear_confirmation": "Bisto wis datsto al dyn meldingen permanint fuortsmite wolst?",
"notifications.column_settings.admin.report": "Nije rapportaazjes:",
"notifications.column_settings.admin.sign_up": "Nije registraasjes:",
"notifications.column_settings.alert": "Desktopmeldingen",
"notifications.column_settings.favourite": "Favoriten:",
"notifications.column_settings.filter_bar.advanced": "Alle kategorien sjen litte",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
"notifications.column_settings.filter_bar.advanced": "Alle kategoryen toane",
"notifications.column_settings.filter_bar.category": "Flugge filterbalke",
"notifications.column_settings.filter_bar.show_bar": "Filterbalke toane",
"notifications.column_settings.follow": "Nije folgers:",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.follow_request": "Nij folchfersyk:",
"notifications.column_settings.mention": "Fermeldingen:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.poll": "Pollresultaten:",
"notifications.column_settings.push": "Pushmeldingen",
"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.column_settings.show": "Yn kolom toane",
"notifications.column_settings.sound": "Lûd ôfspylje",
"notifications.column_settings.status": "Nije berjochten:",
"notifications.column_settings.unread_notifications.category": "Net lêzen meldingen",
"notifications.column_settings.unread_notifications.highlight": "Net lêzen meldingen markearje",
"notifications.column_settings.update": "Bewurkingen:",
"notifications.filter.all": "Alle",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.favourites": "Favoriten",
"notifications.filter.follows": "Folget",
"notifications.filter.mentions": "Fermeldingen",
"notifications.filter.polls": "Poll results",
"notifications.filter.polls": "Pollresultaten",
"notifications.filter.statuses": "Updates from people you follow",
"notifications.grant_permission": "Grant permission.",
"notifications.group": "{count} notifications",
@ -434,16 +437,16 @@
"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 {# persoan} other {# minsken}}",
"poll.closed": "Sluten",
"poll.refresh": "Ferfarskje",
"poll.total_people": "{count, plural, one {# persoan} other {# persoanen}}",
"poll.total_votes": "{count, plural, one {# stim} other {# stimmen}}",
"poll.vote": "Stim",
"poll.voted": "Jo hawwe hjir op stimt",
"poll.vote": "Stimme",
"poll.voted": "Do hast hjir op stimd",
"poll.votes": "{votes, plural, one {# stim} other {# stimmen}}",
"poll_button.add_poll": "In poll tafoegje",
"poll_button.add_poll": "Poll tafoegje",
"poll_button.remove_poll": "Poll fuortsmite",
"privacy.change": "Adjust status privacy",
"privacy.change": "Sichtberheid fan berjocht oanpasse",
"privacy.direct.long": "Allinnich sichtber foar fermelde brûkers",
"privacy.direct.short": "Allinnich fermelde minsken",
"privacy.private.long": "Allinnich sichtber foar folgers",
@ -455,12 +458,12 @@
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"refresh": "Fernije",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.label": "Lade…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dei} other {# dagen}} lyn",
"relative_time.full.hours": "{number, plural, one {# oere} other {# oeren}} lyn",
"relative_time.full.just_now": "no krekt",
"relative_time.full.just_now": "sakrekt",
"relative_time.full.minutes": "{number, plural, one {# minút} other {# minuten}} lyn",
"relative_time.full.seconds": "{number, plural, one {# sekonde} other {# sekonden}} lyn",
"relative_time.hours": "{number}o",
@ -468,26 +471,26 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hjoed",
"reply_indicator.cancel": "Ofbrekke",
"report.block": "Blokkearre",
"report.block_explanation": "Jo sille harren berjochten net sjen kinne. Se sille jo berjochten net sjen kinne en jo net folgje kinne. Se sille wol sjen kinne dat se blokkearre binne.",
"report.categories.other": "Other",
"reply_indicator.cancel": "Annulearje",
"report.block": "Blokkearje",
"report.block_explanation": "Do silst harren berjochten net sjen kinne. Se sille dyn berjochten net sjen kinne en do net folgje kinne. Se sille wol sjen kinne dat se blokkearre binne.",
"report.categories.other": "Oars",
"report.categories.spam": "Spam",
"report.categories.violation": "Ynhâld ferbrekt ien of mear tsjinner regels",
"report.category.subtitle": "Selektearje wat it bêst past",
"report.categories.violation": "De ynhâld oertrêdet ien of mear serverrigels",
"report.category.subtitle": "Selektearje wat it bêste past",
"report.category.title": "Fertel ús wat der mei dit {type} oan de hân is",
"report.category.title_account": "profyl",
"report.category.title_status": "berjocht",
"report.close": "Klear",
"report.comment.title": "Tinke jo dat wy noch mear witte moatte?",
"report.forward": "Troch stjoere nei {target}",
"report.comment.title": "Tinksto dat wy noch mear witte moatte?",
"report.forward": "Nei {target} trochstjoere",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"report.mute": "Negearre",
"report.mute": "Negearje",
"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": "Fierder",
"report.next": "Folgjende",
"report.placeholder": "Type or paste additional comments",
"report.reasons.dislike": "Ik fyn der neat oan",
"report.reasons.dislike_description": "It is net eat wat jo sjen wolle",
"report.reasons.dislike_description": "It is net eat watsto sjen wolst",
"report.reasons.other": "It is wat oars",
"report.reasons.other_description": "It probleem stiet der net tusken",
"report.reasons.spam": "It's spam",
@ -523,92 +526,92 @@
"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": "Berjochten",
"search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
"search_results.title": "Search for {q}",
"search_results.title": "Nei {q} sykje",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
"server_banner.active_users": "active users",
"server_banner.administered_by": "Administered by:",
"server_banner.active_users": "warbere brûkers",
"server_banner.administered_by": "Beheard troch:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
"server_banner.learn_more": "Learn more",
"server_banner.server_stats": "Server stats:",
"sign_in_banner.create_account": "Create account",
"sign_in_banner.sign_in": "Sign in",
"server_banner.learn_more": "Mear ynfo",
"server_banner.server_stats": "Serverstatistiken:",
"sign_in_banner.create_account": "Account registrearje",
"sign_in_banner.sign_in": "Oanmelde",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
"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.block": "@{name} blokkearje",
"status.bookmark": "Blêdwizer tafoegje",
"status.cancel_reblog_private": "Net langer booste",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detaillearre oersjoch fan petear",
"status.delete": "Fuortsmite",
"status.detailed_status": "Detaillearre petearoersjoch",
"status.direct": "Direct message @{name}",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edit": "Bewurkje",
"status.edited": "Bewurke op {date}",
"status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke",
"status.embed": "Ynslute",
"status.favourite": "Favorite",
"status.filter": "Filter this post",
"status.favourite": "Favoryt",
"status.filter": "Dit berjocht filterje",
"status.filtered": "Filtere",
"status.hide": "Hide toot",
"status.hide": "Berjocht ferstopje",
"status.history.created": "{name} makke dit {date}",
"status.history.edited": "{name} feroare dit {date}",
"status.load_more": "Load more",
"status.history.edited": "{name} bewurke dit {date}",
"status.load_more": "Mear lade",
"status.media_hidden": "Media ferstoppe",
"status.mention": "Fermeld @{name}",
"status.mention": "@{name} fermelde",
"status.more": "Mear",
"status.mute": "Negearje @{name}",
"status.mute_conversation": "Petear negearre",
"status.open": "Dit berjocht útflappe",
"status.pin": "Op profyl fêstsette",
"status.mute": "@{name} negearje",
"status.mute_conversation": "Petear negearje",
"status.open": "Dit berjocht útklappe",
"status.pin": "Op profylside fêstsette",
"status.pinned": "Fêstset berjocht",
"status.read_more": "Lês mear",
"status.reblog": "Boost",
"status.read_more": "Mear ynfo",
"status.reblog": "Booste",
"status.reblog_private": "Boost with original visibility",
"status.reblogged_by": "{name} hat boost",
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Fuortsmite en opnij opstelle",
"status.remove_bookmark": "Remove bookmark",
"status.replied_to": "Replied to {name}",
"status.reply": "Reagearre",
"status.replyAll": "Op elkenien reagearre",
"status.report": "Jou @{name} oan",
"status.sensitive_warning": "Sensitive content",
"status.remove_bookmark": "Blêdwizer fuortsmite",
"status.replied_to": "Antwurde op {name}",
"status.reply": "Beäntwurdzje",
"status.replyAll": "Alle beäntwurdzje",
"status.report": "@{name} rapportearje",
"status.sensitive_warning": "Gefoelige ynhâld",
"status.share": "Diele",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Minder sjen litte",
"status.show_less_all": "Foar alles minder sjen litte",
"status.show_more": "Mear sjen litte",
"status.show_more_all": "Foar alles mear sjen litte",
"status.show_original": "Show original",
"status.translate": "Translate",
"status.translated_from_with": "Translated from {lang} using {provider}",
"status.show_filter_reason": "Dochs toane",
"status.show_less": "Minder toane",
"status.show_less_all": "Alles minder toane",
"status.show_more": "Mear toane",
"status.show_more_all": "Alles mear toane",
"status.show_original": "Orizjineel besjen",
"status.translate": "Oersette",
"status.translated_from_with": "Fan {lang} út oersetten mei {provider}",
"status.uncached_media_warning": "Net beskikber",
"status.unmute_conversation": "Petear net mear negearre",
"status.unpin": "Unpin from profile",
"status.unmute_conversation": "Petear net mear negearje",
"status.unpin": "Fan profylside losmeitsje",
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
"subscribed_languages.save": "Save changes",
"subscribed_languages.target": "Change subscribed languages for {target}",
"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": "Notifikaasjes",
"tabs_bar.home": "Startside",
"tabs_bar.local_timeline": "Lokaal",
"tabs_bar.notifications": "Meldingen",
"time_remaining.days": "{number, plural, one {# dei} other {# dagen}} te gean",
"time_remaining.hours": "{number, plural, one {# oere} other {# oeren}} te gean",
"time_remaining.minutes": "{number, plural, one {# minút} other {# minuten}} te gean",
"time_remaining.moments": "Noch krekt even te gean",
"time_remaining.moments": "Noch krekt efkes te gean",
"time_remaining.seconds": "{number, plural, one {# sekonde} other {# sekonden}} te gean",
"timeline_hint.remote_resource_not_displayed": "{resource} fan oare tsjinners wurde net sjen litten.",
"timeline_hint.remote_resource_not_displayed": "{resource} fan oare servers wurde net toand.",
"timeline_hint.resources.followers": "Folgers",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.follows": "Folgjend",
"timeline_hint.resources.statuses": "Aldere berjochten",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "Trending now",
"trends.counter_by_accounts": "{count, plural, one {{counter} persoan} other {{counter} persoanen}} {days, plural, one {de ôfrûne dei} other {de ôfrûne {days} dagen}}",
"trends.trending_now": "Aktuele trends",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
@ -640,10 +643,10 @@
"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.fullscreen": "Folslein skerm",
"video.hide": "Fideo ferstopje",
"video.mute": "Lûd dôvje",
"video.pause": "Skoft",
"video.play": "Ofspylje",
"video.unmute": "Lûd oan"
}

View File

@ -2,22 +2,20 @@
"about.blocks": "Freastalaithe faoi stiúir",
"about.contact": "Teagmháil:",
"about.disclaimer": "Bogearra foinse oscailte saor in aisce is ea Mastodon, agus is le Mastodon gGmbH an trádmharc.",
"about.domain_blocks.comment": "Fáth",
"about.domain_blocks.domain": "Fearann",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Déine",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.no_reason_available": "Níl an fáth ar fáil",
"about.domain_blocks.preamble": "Go hiondúil, tugann Mastadán cead duit a bheith ag plé le húsáideoirí as freastalaí ar bith eile sa chomhchruinne agus a gcuid inneachair a fheiceáil. Seo iad na heisceachtaí a rinneadh ar an bhfreastalaí áirithe seo.",
"about.domain_blocks.silenced.explanation": "Go hiondúil ní fheicfidh tú próifílí ná inneachar ón bhfreastalaí seo, ach amháin má bhíonn tú á lorg nó má ghlacann tú lena leanúint d'aon ghnó.",
"about.domain_blocks.silenced.title": "Teoranta",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.explanation": "Ní dhéanfar aon sonra ón fhreastalaí seo a phróiseáil, a stóráil ná a mhalartú, rud a fhágann nach féidir aon teagmháil ná aon chumarsáid a dhéanamh le húsáideoirí ón fhreastalaí seo.",
"about.domain_blocks.suspended.title": "Ar fionraí",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
"about.not_available": "Níor cuireadh an t-eolas seo ar fáil ar an bhfreastalaí seo.",
"about.powered_by": "Meáin shóisialta díláraithe faoi chumhacht {mastodon}",
"about.rules": "Rialacha an fhreastalaí",
"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": "Déan cosc ar @{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",
@ -39,17 +37,19 @@
"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.go_to_profile": "Téigh go dtí próifíl",
"account.hide_reblogs": "Folaigh athphostálacha ó @{name}",
"account.joined_short": "Chuaigh i",
"account.languages": "Change subscribed languages",
"account.link_verified_on": "Ownership of this link was checked on {date}",
"account.joined_short": "Cláraithe",
"account.languages": "Athraigh teangacha foscríofa",
"account.link_verified_on": "Seiceáladh úinéireacht an naisc seo ar {date}",
"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.moved_to": "Tá tugtha le fios ag {name} gurb é an cuntas nua atá acu ná:",
"account.mute": "Balbhaigh @{name}",
"account.mute_notifications": "Balbhaigh fógraí ó @{name}",
"account.muted": "Balbhaithe",
"account.open_original_page": "Oscail an leathanach bunaidh",
"account.posts": "Postálacha",
"account.posts_with_replies": "Postálacha agus freagraí",
"account.report": "Tuairiscigh @{name}",
@ -76,11 +76,11 @@
"alert.unexpected.message": "Tharla earráid gan choinne.",
"alert.unexpected.title": "Hiúps!",
"announcement.announcement": "Fógra",
"attachments_list.unprocessed": "(unprocessed)",
"attachments_list.unprocessed": "(neamhphróiseáilte)",
"audio.hide": "Cuir fuaim i bhfolach",
"autosuggest_hashtag.per_week": "{count} sa seachtain",
"boost_modal.combo": "Is féidir leat brúigh {combo} chun é seo a scipeáil an chéad uair eile",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.copy_stacktrace": "Cóipeáil tuairisc earráide",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Ná habair!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
@ -103,9 +103,9 @@
"column.community": "Amlíne áitiúil",
"column.direct": "Teachtaireachtaí dhíreacha",
"column.directory": "Brabhsáil próifílí",
"column.domain_blocks": "Blocked domains",
"column.domain_blocks": "Fearainn bhactha",
"column.favourites": "Roghanna",
"column.follow_requests": "Follow requests",
"column.follow_requests": "Iarratais leanúnaí",
"column.home": "Baile",
"column.lists": "Liostaí",
"column.mutes": "Úsáideoirí balbhaithe",
@ -114,81 +114,83 @@
"column.public": "Amlíne cónaidhmithe",
"column_back_button.label": "Siar",
"column_header.hide_settings": "Folaigh socruithe",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.moveLeft_settings": "Bog an colún ar chlé",
"column_header.moveRight_settings": "Bog an colún ar dheis",
"column_header.pin": "Greamaigh",
"column_header.show_settings": "Taispeáin socruithe",
"column_header.unpin": "Díghreamaigh",
"column_subheading.settings": "Socruithe",
"community.column_settings.local_only": "Áitiúil amháin",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Remote only",
"community.column_settings.media_only": "Meáin Amháin",
"community.column_settings.remote_only": "Cian amháin",
"compose.language.change": "Athraigh teanga",
"compose.language.search": "Cuardaigh teangacha...",
"compose_form.direct_message_warning_learn_more": "Tuilleadh eolais",
"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": "Níl an cuntas seo {locked}. Féadfaidh duine ar bith tú a leanúint agus na postálacha atá dírithe agat ar do lucht leanúna amháin a fheiceáil.",
"compose_form.lock_disclaimer.lock": "faoi ghlas",
"compose_form.placeholder": "Cad atá ag tarlú?",
"compose_form.poll.add_option": "Cuir rogha isteach",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.duration": "Achar suirbhéanna",
"compose_form.poll.option_placeholder": "Rogha {number}",
"compose_form.poll.remove_option": "Bain an rogha seo",
"compose_form.poll.switch_to_multiple": "Athraigh suirbhé chun cead a thabhairt do ilrogha",
"compose_form.poll.switch_to_single": "Athraigh suirbhé chun cead a thabhairt do rogha amháin",
"compose_form.publish": "Foilsigh",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.save_changes": "Sábháil",
"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",
"compose_form.spoiler.marked": "Bain rabhadh ábhair",
"compose_form.spoiler.unmarked": "Cuir rabhadh ábhair",
"compose_form.spoiler_placeholder": "Scríobh do rabhadh anseo",
"confirmation_modal.cancel": "Cealaigh",
"confirmations.block.block_and_report": "Bac ⁊ Tuairiscigh",
"confirmations.block.confirm": "Bac",
"confirmations.block.message": "An bhfuil tú cinnte gur mhaith leat {name} a bhac?",
"confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
"confirmations.cancel_follow_request.confirm": "Éirigh as iarratas",
"confirmations.cancel_follow_request.message": "An bhfuil tú cinnte gur mhaith leat éirigh as an iarratas leanta {name}?",
"confirmations.delete.confirm": "Scrios",
"confirmations.delete.message": "An bhfuil tú cinnte gur mhaith leat an phostáil seo a scriosadh?",
"confirmations.delete_list.confirm": "Scrios",
"confirmations.delete_list.message": "An bhfuil tú cinnte gur mhaith leat an liosta seo a scriosadh go buan?",
"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.confirm": "Bac fearann go hiomlán",
"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": "An bhfuil tú cinnte gur mhaith leat logáil amach?",
"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": "An bhfuil tú cinnte gur mhaith leat {name} a bhalbhú?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.confirm": "Scrios ⁊ athdhréachtaigh",
"confirmations.redraft.message": "An bhfuil tú cinnte gur mhaith leat an phostáil sin a scriosadh agus athdhréachtú? Beidh roghanna agus treisithe caillte, agus beidh freagraí ar an bpostáil bhunúsach ina ndílleachtaí.",
"confirmations.reply.confirm": "Freagair",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.unfollow.confirm": "Ná lean",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"conversation.delete": "Delete conversation",
"confirmations.unfollow.message": "An bhfuil tú cinnte gur mhaith leat {name} a dhíleanúint?",
"conversation.delete": "Scrios comhrá",
"conversation.mark_as_read": "Marcáil mar léite",
"conversation.open": "View conversation",
"conversation.with": "With {names}",
"copypaste.copied": "Copied",
"conversation.open": "Féach ar comhrá",
"conversation.with": "Le {names}",
"copypaste.copied": "Cóipeáilte",
"copypaste.copy": "Cóipeáil",
"directory.federated": "From known fediverse",
"directory.federated": "Ó chomhchruinne aitheanta",
"directory.local": "Ó {domain} amháin",
"directory.new_arrivals": "Daoine atá tar éis teacht",
"directory.recently_active": "Daoine gníomhacha le déanaí",
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss": "Dismiss",
"disabled_account_banner.account_settings": "Socruithe cuntais",
"disabled_account_banner.text": "Tá do chuntas {disabledAccount} díchumasaithe faoi láthair.",
"dismissable_banner.community_timeline": "Seo iad na postála is déanaí ó dhaoine le cuntais ar {domain}.",
"dismissable_banner.dismiss": "Diúltaigh",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"embed.preview": "Seo an chuma a bheidh air:",
"emoji_button.activity": "Gníomhaíocht",
"emoji_button.clear": "Glan",
"emoji_button.custom": "Saincheaptha",
@ -196,10 +198,10 @@
"emoji_button.food": "Bia ⁊ Ól",
"emoji_button.label": "Cuir emoji isteach",
"emoji_button.nature": "Nádur",
"emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects",
"emoji_button.not_found": "Ní bhfuarthas an cineál emoji sin",
"emoji_button.objects": "Rudaí",
"emoji_button.people": "Daoine",
"emoji_button.recent": "Frequently used",
"emoji_button.recent": "Úsáidte go minic",
"emoji_button.search": "Cuardaigh...",
"emoji_button.search_results": "Torthaí cuardaigh",
"emoji_button.symbols": "Comharthaí",
@ -207,19 +209,19 @@
"empty_column.account_suspended": "Cuntas ar fionraí",
"empty_column.account_timeline": "Níl postálacha ar bith anseo!",
"empty_column.account_unavailable": "Níl an phróifíl ar fáil",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.blocks": "Níl aon úsáideoir bactha agat fós.",
"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.domain_blocks": "Níl aon fearainn bhactha ann go fóill.",
"empty_column.explore_statuses": "Níl rud ar bith ag treochtáil faoi láthair. Tar ar ais ar ball!",
"empty_column.favourited_statuses": "Níor roghnaigh tú postáil ar bith fós. Nuair a roghnaigh tú ceann, beidh sí le feiceáil anseo.",
"empty_column.favourites": "Níor roghnaigh éinne an phostáil seo fós. Nuair a roghnaigh duine éigin, beidh siad le feiceáil anseo.",
"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.hashtag": "Níl rud ar bith faoin haischlib seo go fóill.",
"empty_column.home": "Tá d'amlíne baile folamh! B'fhiú duit cúpla duine eile a leanúint lena líonadh! {suggestions}",
"empty_column.home.suggestions": "Féach ar roinnt moltaí",
"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": "Níl aon úsáideoir balbhaithe agat fós.",
@ -230,7 +232,7 @@
"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",
"errors.unexpected_crash.report_issue": "Tuairiscigh deacracht",
"explore.search_results": "Torthaí cuardaigh",
"explore.suggested_follows": "Duitse",
"explore.title": "Féach thart",
@ -240,83 +242,83 @@
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
"filter_modal.added.context_mismatch_title": "Context mismatch!",
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
"filter_modal.added.expired_title": "Expired filter!",
"filter_modal.added.expired_title": "Scagaire as feidhm!",
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
"filter_modal.added.review_and_configure_title": "Filter settings",
"filter_modal.added.review_and_configure_title": "Socruithe scagtha",
"filter_modal.added.settings_link": "leathan socruithe",
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
"filter_modal.added.title": "Filter added!",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "expired",
"filter_modal.added.title": "Scagaire curtha leis!",
"filter_modal.select_filter.context_mismatch": "ní bhaineann sé leis an gcomhthéacs seo",
"filter_modal.select_filter.expired": "as feidhm",
"filter_modal.select_filter.prompt_new": "Catagóir nua: {name}",
"filter_modal.select_filter.search": "Search or create",
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"filter_modal.select_filter.search": "Cuardaigh nó cruthaigh",
"filter_modal.select_filter.subtitle": "Bain úsáid as catagóir reatha nó cruthaigh ceann nua",
"filter_modal.select_filter.title": "Déan scagadh ar an bpostáil seo",
"filter_modal.title.status": "Déan scagadh ar phostáil",
"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": "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.",
"follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.",
"footer.about": "Maidir le",
"footer.directory": "Profiles directory",
"footer.directory": "Eolaire próifílí",
"footer.get_app": "Faigh an aip",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.invite": "Tabhair cuireadh do dhaoine",
"footer.keyboard_shortcuts": "Aicearraí méarchláir",
"footer.privacy_policy": "Polasaí príobháideachais",
"footer.source_code": "View source code",
"generic.saved": "Saved",
"footer.source_code": "Féach ar an gcód foinseach",
"generic.saved": "Sábháilte",
"getting_started.heading": "Getting started",
"hashtag.column_header.tag_mode.all": "agus {additional}",
"hashtag.column_header.tag_mode.any": "nó {additional}",
"hashtag.column_header.tag_mode.none": "gan {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.select.placeholder": "Iontráil haischlibeanna…",
"hashtag.column_settings.tag_mode.all": "Iad seo go léir",
"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",
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"hashtag.follow": "Lean haischlib",
"hashtag.unfollow": "Ná lean haischlib",
"home.column_settings.basic": "Bunúsach",
"home.column_settings.show_reblogs": "Taispeáin treisithe",
"home.column_settings.show_replies": "Show replies",
"home.hide_announcements": "Hide announcements",
"home.show_announcements": "Show announcements",
"home.column_settings.show_replies": "Taispeán freagraí",
"home.hide_announcements": "Cuir fógraí i bhfolach",
"home.show_announcements": "Taispeáin fógraí",
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "Ar freastalaí eile",
"interaction_modal.on_this_server": "Ar an freastalaí seo",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "Follow {name}",
"interaction_modal.title.reblog": "Boost {name}'s post",
"interaction_modal.title.reply": "Reply to {name}'s post",
"interaction_modal.title.follow": "Lean {name}",
"interaction_modal.title.reblog": "Cuir postáil {name} chun cinn",
"interaction_modal.title.reply": "Freagair postáil {name}",
"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.blocked": "Oscail liosta na n-úsáideoirí bactha",
"keyboard_shortcuts.boost": "Treisigh postáil",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Cuntas",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.down": "Bog síos ar an liosta",
"keyboard_shortcuts.enter": "Oscail postáil",
"keyboard_shortcuts.favourite": "Roghnaigh postáil",
"keyboard_shortcuts.favourites": "Oscail liosta roghanna",
"keyboard_shortcuts.federated": "to open federated timeline",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.federated": "Oscail amlíne cónaidhmithe",
"keyboard_shortcuts.heading": "Aicearraí méarchláir",
"keyboard_shortcuts.home": "to open home timeline",
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.hotkey": "Eochair aicearra",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "Oscail an amlíne áitiúil",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.mention": "Luaigh údar",
"keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe",
"keyboard_shortcuts.my_profile": "Oscail do phróifíl",
"keyboard_shortcuts.notifications": "to open notifications column",
@ -324,15 +326,15 @@
"keyboard_shortcuts.pinned": "to open pinned posts list",
"keyboard_shortcuts.profile": "Oscail próifíl an t-údar",
"keyboard_shortcuts.reply": "Freagair ar phostáil",
"keyboard_shortcuts.requests": "to open follow requests list",
"keyboard_shortcuts.requests": "Oscail liosta iarratas leanúnaí",
"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.toggle_sensitivity": "Taispeáin / cuir i bhfolach meáin",
"keyboard_shortcuts.toot": "Cuir tús le postáil nua",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"keyboard_shortcuts.up": "Bog suas ar an liosta",
"lightbox.close": "Dún",
"lightbox.compress": "Compress image view box",
"lightbox.expand": "Expand image view box",
@ -348,27 +350,28 @@
"lists.new.create": "Cruthaigh liosta",
"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.list": "Baill an liosta",
"lists.replies_policy.none": "Duine ar bith",
"lists.replies_policy.title": "Show replies to:",
"lists.search": "Search among people you follow",
"lists.replies_policy.title": "Taispeáin freagraí:",
"lists.search": "Cuardaigh i measc daoine atá á leanúint agat",
"lists.subheading": "Do liostaí",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Ag lódáil...",
"media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
"missing_indicator.label": "Níor aimsíodh é",
"missing_indicator.sublabel": "This resource could not be found",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"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.about": "Maidir le",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.blocks": "Cuntais bhactha",
"navigation_bar.bookmarks": "Leabharmharcanna",
"navigation_bar.community_timeline": "Amlíne áitiúil",
"navigation_bar.compose": "Cum postáil nua",
"navigation_bar.direct": "Teachtaireachtaí dhíreacha",
"navigation_bar.discover": "Faigh amach",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.domain_blocks": "Fearainn bhactha",
"navigation_bar.edit_profile": "Cuir an phróifíl in eagar",
"navigation_bar.explore": "Féach thart",
"navigation_bar.favourites": "Roghanna",
@ -385,18 +388,18 @@
"navigation_bar.search": "Cuardaigh",
"navigation_bar.security": "Slándáil",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.admin.report": "Tuairiscigh {name} {target}",
"notification.admin.sign_up": "Chláraigh {name}",
"notification.favourite": "Roghnaigh {name} do phostáil",
"notification.follow": "Lean {name} thú",
"notification.follow_request": "D'iarr {name} ort do chuntas a leanúint",
"notification.mention": "{name} mentioned you",
"notification.mention": "Luaigh {name} tú",
"notification.own_poll": "Your poll has ended",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "Threisigh {name} do phostáil",
"notification.status": "Phostáil {name} díreach",
"notification.update": "Chuir {name} postáil in eagar",
"notifications.clear": "Clear notifications",
"notifications.clear": "Glan fógraí",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.report": "Tuairiscí nua:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
@ -404,33 +407,33 @@
"notifications.column_settings.favourite": "Roghanna:",
"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.filter_bar.show_bar": "Taispeáin barra scagaire",
"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.mention": "Tráchtanna:",
"notifications.column_settings.poll": "Torthaí suirbhéanna:",
"notifications.column_settings.push": "Brúfhógraí",
"notifications.column_settings.reblog": "Treisithe:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
"notifications.column_settings.show": "Taispeáin i gcolún",
"notifications.column_settings.sound": "Seinn an fhuaim",
"notifications.column_settings.status": "Postálacha nua:",
"notifications.column_settings.unread_notifications.category": "Unread notifications",
"notifications.column_settings.unread_notifications.category": "Brúfhógraí neamhléite",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.update": "Eagair:",
"notifications.filter.all": "Uile",
"notifications.filter.boosts": "Treisithe",
"notifications.filter.favourites": "Roghanna",
"notifications.filter.follows": "Ag leanúint",
"notifications.filter.mentions": "Mentions",
"notifications.filter.polls": "Poll results",
"notifications.filter.mentions": "Tráchtanna",
"notifications.filter.polls": "Torthaí suirbhéanna",
"notifications.filter.statuses": "Updates from people you follow",
"notifications.grant_permission": "Grant permission.",
"notifications.group": "{count} notifications",
"notifications.grant_permission": "Tabhair cead.",
"notifications.group": "{count} fógraí",
"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.enable": "Ceadaigh fógraí ar an deasc",
"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": "Cuir é ar ais",
@ -441,14 +444,14 @@
"poll.vote": "Vótáil",
"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",
"poll_button.add_poll": "Cruthaigh suirbhé",
"poll_button.remove_poll": "Bain suirbhé",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Visible for mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Sofheicthe do Leantóirí amháin",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all",
"privacy.private.short": "Leantóirí amháin",
"privacy.public.long": "Infheicthe do chách",
"privacy.public.short": "Poiblí",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Neamhliostaithe",
@ -473,7 +476,7 @@
"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": "Eile",
"report.categories.spam": "Turscar",
"report.categories.violation": "Content violates one or more server rules",
"report.categories.violation": "Sáraíonn ábhar riail freastalaí amháin nó níos mó",
"report.category.subtitle": "Roghnaigh an toradh is fearr",
"report.category.title": "Tell us what's going on with this {type}",
"report.category.title_account": "próifíl",
@ -498,18 +501,18 @@
"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.submit": "Cuir isteach",
"report.target": "Ag tuairisciú {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": "Ná lean @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Eile",
"report_notification.categories.spam": "Turscar",
"report_notification.categories.violation": "Rule violation",
"report_notification.categories.violation": "Sárú rialach",
"report_notification.open": "Oscail tuairisc",
"search.placeholder": "Cuardaigh",
"search.search_or_paste": "Search or paste URL",
@ -553,7 +556,7 @@
"status.favourite": "Rogha",
"status.filter": "Filter this post",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.hide": "Cuir postáil i bhfolach",
"status.history.created": "{name} created {date}",
"status.history.edited": "Curtha in eagar ag {name} in {date}",
"status.load_more": "Lódáil a thuilleadh",
@ -570,20 +573,20 @@
"status.reblog_private": "Treisigh le léargas bunúsach",
"status.reblogged_by": "Treisithe ag {name}",
"status.reblogs.empty": "Níor threisigh éinne an phostáil seo fós. Nuair a threisigh duine éigin, beidh siad le feiceáil anseo.",
"status.redraft": "Delete & re-draft",
"status.redraft": "Scrios ⁊ athdhréachtaigh",
"status.remove_bookmark": "Remove bookmark",
"status.replied_to": "Replied to {name}",
"status.reply": "Freagair",
"status.replyAll": "Reply to thread",
"status.replyAll": "Freagair le snáithe",
"status.report": "Tuairiscigh @{name}",
"status.sensitive_warning": "Sensitive content",
"status.sensitive_warning": "Ábhar íogair",
"status.share": "Comhroinn",
"status.show_filter_reason": "Show anyway",
"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_original": "Show original",
"status.show_filter_reason": "Taispeáin ar aon nós",
"status.show_less": "Taispeáin níos lú",
"status.show_less_all": "Taispeáin níos lú d'uile",
"status.show_more": "Taispeáin níos mó",
"status.show_more_all": "Taispeáin níos mó d'uile",
"status.show_original": "Taispeáin bunchóip",
"status.translate": "Aistrigh",
"status.translated_from_with": "D'Aistrigh ón {lang} ag úsáid {provider}",
"status.uncached_media_warning": "Ní ar fáil",
@ -594,7 +597,7 @@
"subscribed_languages.target": "Change subscribed languages for {target}",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.federated_timeline": "Cónasctha",
"tabs_bar.home": "Baile",
"tabs_bar.local_timeline": "Áitiúil",
"tabs_bar.notifications": "Fógraí",
@ -613,7 +616,7 @@
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Drag & drop to upload",
"upload_area.title": "Tarraing ⁊ scaoil chun uaslódáil",
"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.",
@ -640,7 +643,7 @@
"video.download": "Íoslódáil comhad",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Leath físeán",
"video.fullscreen": "Full screen",
"video.fullscreen": "Lánscáileán",
"video.hide": "Cuir físeán i bhfolach",
"video.mute": "Ciúnaigh fuaim",
"video.pause": "Cuir ar sos",

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