mirror of
https://framagit.org/tykayn/mastodon.git
synced 2023-08-25 08:33:12 +02:00
Merge branch 'master' of https://github.com/tootsuite/mastodon
This commit is contained in:
commit
7d0bde2763
@ -115,6 +115,20 @@ SMTP_FROM_ADDRESS=notifications@example.com
|
||||
# S3_ENDPOINT=
|
||||
# S3_SIGNATURE_VERSION=
|
||||
|
||||
# Google Cloud Storage (optional)
|
||||
# Use S3 compatible API. Since GCS does not support Multipart Upload,
|
||||
# increase the value of S3_MULTIPART_THRESHOLD to disable Multipart Upload.
|
||||
# The attachment host must allow cross origin request - see the description
|
||||
# above.
|
||||
# S3_ENABLED=true
|
||||
# AWS_ACCESS_KEY_ID=
|
||||
# AWS_SECRET_ACCESS_KEY=
|
||||
# S3_REGION=
|
||||
# S3_PROTOCOL=https
|
||||
# S3_HOSTNAME=storage.googleapis.com
|
||||
# S3_ENDPOINT=https://storage.googleapis.com
|
||||
# S3_MULTIPART_THRESHOLD=52428801 # 50.megabytes
|
||||
|
||||
# Swift (optional)
|
||||
# The attachment host must allow cross origin request - see the description
|
||||
# above.
|
||||
|
@ -1 +1 @@
|
||||
2.6.1
|
||||
2.6.4
|
||||
|
168
CHANGELOG.md
168
CHANGELOG.md
@ -5,7 +5,173 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
## Unreleased
|
||||
|
||||
TODO
|
||||
### Added
|
||||
|
||||
- Add "not available" label to unloaded media attachments in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11715), [Gargron](https://github.com/tootsuite/mastodon/pull/11745))
|
||||
- **Add profile directory to web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11688), [mayaeh](https://github.com/tootsuite/mastodon/pull/11872))
|
||||
- Add profile directory opt-in federation
|
||||
- Add profile directory REST API
|
||||
- Add special alert for throttled requests in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11677))
|
||||
- Add confirmation modal when logging out from the web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11671))
|
||||
- **Add audio player in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11644), [Gargron](https://github.com/tootsuite/mastodon/pull/11652), [Gargron](https://github.com/tootsuite/mastodon/pull/11654), [ThibG](https://github.com/tootsuite/mastodon/pull/11629))
|
||||
- **Add autosuggestions for hashtags in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11422), [ThibG](https://github.com/tootsuite/mastodon/pull/11632), [Gargron](https://github.com/tootsuite/mastodon/pull/11764), [Gargron](https://github.com/tootsuite/mastodon/pull/11588), [Gargron](https://github.com/tootsuite/mastodon/pull/11442))
|
||||
- **Add media editing modal with OCR tool in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11563), [Gargron](https://github.com/tootsuite/mastodon/pull/11566), [ThibG](https://github.com/tootsuite/mastodon/pull/11575), [ThibG](https://github.com/tootsuite/mastodon/pull/11576), [Gargron](https://github.com/tootsuite/mastodon/pull/11577), [Gargron](https://github.com/tootsuite/mastodon/pull/11573), [Gargron](https://github.com/tootsuite/mastodon/pull/11571))
|
||||
- Add indicator of unread notifications to window title when web UI is out of focus ([Gargron](https://github.com/tootsuite/mastodon/pull/11560), [Gargron](https://github.com/tootsuite/mastodon/pull/11572))
|
||||
- Add indicator for which options you voted for in a poll in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11195))
|
||||
- **Add search results pagination to web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11409), [ThibG](https://github.com/tootsuite/mastodon/pull/11447))
|
||||
- **Add option to disable real-time updates in web UI ("slow mode")** ([Gargron](https://github.com/tootsuite/mastodon/pull/9984), [ykzts](https://github.com/tootsuite/mastodon/pull/11880), [ThibG](https://github.com/tootsuite/mastodon/pull/11883), [Gargron](https://github.com/tootsuite/mastodon/pull/11898), [ThibG](https://github.com/tootsuite/mastodon/pull/11859))
|
||||
- Add option to disable blurhash previews in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11188))
|
||||
- Add native smooth scrolling when supported in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11207))
|
||||
- Add search and sort functions to hashtag admin UI ([mayaeh](https://github.com/tootsuite/mastodon/pull/11829), [Gargron](https://github.com/tootsuite/mastodon/pull/11897), [mayaeh](https://github.com/tootsuite/mastodon/pull/11875))
|
||||
- Add setting for default search engine indexing in admin UI ([brortao](https://github.com/tootsuite/mastodon/pull/11804))
|
||||
- Add account bio to account view in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11473))
|
||||
- **Add option to include reported statuses in warning e-mail from admin UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11639), [Gargron](https://github.com/tootsuite/mastodon/pull/11812), [Gargron](https://github.com/tootsuite/mastodon/pull/11741), [Gargron](https://github.com/tootsuite/mastodon/pull/11698), [mayaeh](https://github.com/tootsuite/mastodon/pull/11765))
|
||||
- Add number of pending accounts and pending hashtags to dashboard in admin UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11514))
|
||||
- **Add account migration UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11846), [noellabo](https://github.com/tootsuite/mastodon/pull/11905), [noellabo](https://github.com/tootsuite/mastodon/pull/11907), [noellabo](https://github.com/tootsuite/mastodon/pull/11906), [noellabo](https://github.com/tootsuite/mastodon/pull/11902))
|
||||
- **Add table of contents to about page** ([Gargron](https://github.com/tootsuite/mastodon/pull/11885), [ykzts](https://github.com/tootsuite/mastodon/pull/11941), [ykzts](https://github.com/tootsuite/mastodon/pull/11895), [Kjwon15](https://github.com/tootsuite/mastodon/pull/11916))
|
||||
- **Add password challenge to 2FA settings, e-mail notifications** ([Gargron](https://github.com/tootsuite/mastodon/pull/11878))
|
||||
- Add optional invite comments ([ThibG](https://github.com/tootsuite/mastodon/pull/10465))
|
||||
- **Add optional public list of domain blocks with comments** ([ThibG](https://github.com/tootsuite/mastodon/pull/11298), [ThibG](https://github.com/tootsuite/mastodon/pull/11515), [Gargron](https://github.com/tootsuite/mastodon/pull/11908))
|
||||
- Add an RSS feed for featured hashtags ([noellabo](https://github.com/tootsuite/mastodon/pull/10502))
|
||||
- Add explanations to featured hashtags UI and profile ([Gargron](https://github.com/tootsuite/mastodon/pull/11586))
|
||||
- **Add hashtag trends with admin and user settings** ([Gargron](https://github.com/tootsuite/mastodon/pull/11490), [Gargron](https://github.com/tootsuite/mastodon/pull/11502), [Gargron](https://github.com/tootsuite/mastodon/pull/11641), [Gargron](https://github.com/tootsuite/mastodon/pull/11594), [Gargron](https://github.com/tootsuite/mastodon/pull/11517), [mayaeh](https://github.com/tootsuite/mastodon/pull/11845), [Gargron](https://github.com/tootsuite/mastodon/pull/11774), [Gargron](https://github.com/tootsuite/mastodon/pull/11712), [Gargron](https://github.com/tootsuite/mastodon/pull/11791), [Gargron](https://github.com/tootsuite/mastodon/pull/11743), [Gargron](https://github.com/tootsuite/mastodon/pull/11740), [Gargron](https://github.com/tootsuite/mastodon/pull/11714), [ThibG](https://github.com/tootsuite/mastodon/pull/11631), [Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/11569), [Gargron](https://github.com/tootsuite/mastodon/pull/11524), [Gargron](https://github.com/tootsuite/mastodon/pull/11513))
|
||||
- Add hashtag usage breakdown to admin UI
|
||||
- Add batch actions for hashtags to admin UI
|
||||
- Add trends to web UI
|
||||
- Add trends to public pages
|
||||
- Add user preference to hide trends
|
||||
- Add admin setting to disable trends
|
||||
- **Add categories for custom emojis** ([Gargron](https://github.com/tootsuite/mastodon/pull/11196), [Gargron](https://github.com/tootsuite/mastodon/pull/11793), [Gargron](https://github.com/tootsuite/mastodon/pull/11920), [highemerly](https://github.com/tootsuite/mastodon/pull/11876))
|
||||
- Add custom emoji categories to emoji picker in web UI
|
||||
- Add `category` to custom emojis in REST API
|
||||
- Add batch actions for custom emojis in admin UI
|
||||
- Add max image dimensions to error message ([raboof](https://github.com/tootsuite/mastodon/pull/11552))
|
||||
- Add aac, m4a, 3gp, amr, wma to allowed audio formats ([Gargron](https://github.com/tootsuite/mastodon/pull/11342), [umonaca](https://github.com/tootsuite/mastodon/pull/11687))
|
||||
- **Add search syntax for operators and phrases** ([Gargron](https://github.com/tootsuite/mastodon/pull/11411))
|
||||
- **Add REST API for managing featured hashtags** ([noellabo](https://github.com/tootsuite/mastodon/pull/11778))
|
||||
- **Add REST API for managing timeline read markers** ([Gargron](https://github.com/tootsuite/mastodon/pull/11762))
|
||||
- **Add ActivityPub secure mode** ([Gargron](https://github.com/tootsuite/mastodon/pull/11269), [ThibG](https://github.com/tootsuite/mastodon/pull/11332), [ThibG](https://github.com/tootsuite/mastodon/pull/11295))
|
||||
- Add HTTP signatures to all outgoing ActivityPub GET requests ([Gargron](https://github.com/tootsuite/mastodon/pull/11284), [ThibG](https://github.com/tootsuite/mastodon/pull/11300))
|
||||
- Add support for ActivityPub Audio activities ([ThibG](https://github.com/tootsuite/mastodon/pull/11189))
|
||||
- Add ActivityPub actor representing the entire server ([ThibG](https://github.com/tootsuite/mastodon/pull/11321), [rtucker](https://github.com/tootsuite/mastodon/pull/11400), [ThibG](https://github.com/tootsuite/mastodon/pull/11561), [Gargron](https://github.com/tootsuite/mastodon/pull/11798))
|
||||
- **Add whitelist mode** ([Gargron](https://github.com/tootsuite/mastodon/pull/11291), [mayaeh](https://github.com/tootsuite/mastodon/pull/11634))
|
||||
- Add config of multipart threshold for S3 ([ykzts](https://github.com/tootsuite/mastodon/pull/11924), [ykzts](https://github.com/tootsuite/mastodon/pull/11944))
|
||||
- Add health check endpoint for web ([ykzts](https://github.com/tootsuite/mastodon/pull/11770), [ykzts](https://github.com/tootsuite/mastodon/pull/11947))
|
||||
- Add HTTP signature keyId to request log ([Gargron](https://github.com/tootsuite/mastodon/pull/11591))
|
||||
- Add `SMTP_REPLY_TO` environment variable ([hugogameiro](https://github.com/tootsuite/mastodon/pull/11718))
|
||||
- Add `tootctl preview_cards remove` command ([mayaeh](https://github.com/tootsuite/mastodon/pull/11320))
|
||||
- Add `tootctl media refresh` command ([Gargron](https://github.com/tootsuite/mastodon/pull/11775))
|
||||
- Add `tootctl cache recount` command ([Gargron](https://github.com/tootsuite/mastodon/pull/11597))
|
||||
- Add option to exclude suspended domains from `tootctl domains crawl` ([dariusk](https://github.com/tootsuite/mastodon/pull/11454))
|
||||
- Add soft delete for statuses for instant deletes through API ([Gargron](https://github.com/tootsuite/mastodon/pull/11623), [Gargron](https://github.com/tootsuite/mastodon/pull/11648))
|
||||
- Add rails-level JSON caching ([Gargron](https://github.com/tootsuite/mastodon/pull/11333), [Gargron](https://github.com/tootsuite/mastodon/pull/11271))
|
||||
- **Add request pool to improve delivery performance** ([Gargron](https://github.com/tootsuite/mastodon/pull/10353), [ykzts](https://github.com/tootsuite/mastodon/pull/11756))
|
||||
- Add concurrent connection attempts to resolved IP addresses ([ThibG](https://github.com/tootsuite/mastodon/pull/11757))
|
||||
- Add index for remember_token to improve login performance ([abcang](https://github.com/tootsuite/mastodon/pull/11881))
|
||||
- **Add more accurate hashtag search** ([Gargron](https://github.com/tootsuite/mastodon/pull/11579), [Gargron](https://github.com/tootsuite/mastodon/pull/11427), [Gargron](https://github.com/tootsuite/mastodon/pull/11448))
|
||||
- **Add more accurate account search** ([Gargron](https://github.com/tootsuite/mastodon/pull/11537), [Gargron](https://github.com/tootsuite/mastodon/pull/11580))
|
||||
- **Add a spam check** ([Gargron](https://github.com/tootsuite/mastodon/pull/11217), [Gargron](https://github.com/tootsuite/mastodon/pull/11806), [ThibG](https://github.com/tootsuite/mastodon/pull/11296))
|
||||
|
||||
### Changed
|
||||
|
||||
- **Change conversations UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11896))
|
||||
- Change dashboard to short number notation ([noellabo](https://github.com/tootsuite/mastodon/pull/11847), [noellabo](https://github.com/tootsuite/mastodon/pull/11911))
|
||||
- Change REST API `GET /api/v1/timelines/public` to require authentication when public preview is off ([ThibG](https://github.com/tootsuite/mastodon/pull/11802))
|
||||
- Change REST API `POST /api/v1/follow_requests/:id/(approve|reject)` to return relationship ([ThibG](https://github.com/tootsuite/mastodon/pull/11800))
|
||||
- Change rate limit for media proxy ([ykzts](https://github.com/tootsuite/mastodon/pull/11814))
|
||||
- Change unlisted custom emoji to not appear in autosuggestions ([Gargron](https://github.com/tootsuite/mastodon/pull/11818))
|
||||
- Change max length of media descriptions from 420 to 1500 characters ([Gargron](https://github.com/tootsuite/mastodon/pull/11819), [ThibG](https://github.com/tootsuite/mastodon/pull/11836))
|
||||
- **Change deletes to preserve soft-deleted statuses in unresolved reports** ([Gargron](https://github.com/tootsuite/mastodon/pull/11805))
|
||||
- **Change tootctl to use inline parallelization instead of Sidekiq** ([Gargron](https://github.com/tootsuite/mastodon/pull/11776))
|
||||
- **Change account deletion page to have better explanations** ([Gargron](https://github.com/tootsuite/mastodon/pull/11753), [Gargron](https://github.com/tootsuite/mastodon/pull/11763))
|
||||
- Change hashtag component in web UI to show numbers for 2 last days ([Gargron](https://github.com/tootsuite/mastodon/pull/11742), [Gargron](https://github.com/tootsuite/mastodon/pull/11755), [Gargron](https://github.com/tootsuite/mastodon/pull/11754))
|
||||
- Change OpenGraph description on sign-up page to reflect invite ([Gargron](https://github.com/tootsuite/mastodon/pull/11744))
|
||||
- Change layout of public profile directory to be the same as in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11705))
|
||||
- Change detailed status child ordering to sort self-replies on top ([ThibG](https://github.com/tootsuite/mastodon/pull/11686))
|
||||
- Change window resize handler to switch to/from mobile layout as soon as needed ([ThibG](https://github.com/tootsuite/mastodon/pull/11656))
|
||||
- Change icon button styles to make hover/focus states more obvious ([ThibG](https://github.com/tootsuite/mastodon/pull/11474))
|
||||
- Change contrast of status links that are not mentions or hashtags ([ThibG](https://github.com/tootsuite/mastodon/pull/11406))
|
||||
- **Change hashtags to preserve first-used casing** ([Gargron](https://github.com/tootsuite/mastodon/pull/11416), [Gargron](https://github.com/tootsuite/mastodon/pull/11508), [Gargron](https://github.com/tootsuite/mastodon/pull/11504), [Gargron](https://github.com/tootsuite/mastodon/pull/11507), [Gargron](https://github.com/tootsuite/mastodon/pull/11441))
|
||||
- **Change unconfirmed user login behaviour** ([Gargron](https://github.com/tootsuite/mastodon/pull/11375), [ThibG](https://github.com/tootsuite/mastodon/pull/11394), [Gargron](https://github.com/tootsuite/mastodon/pull/11860))
|
||||
- **Change single-column mode to scroll the whole page** ([Gargron](https://github.com/tootsuite/mastodon/pull/11359), [Gargron](https://github.com/tootsuite/mastodon/pull/11894), [Gargron](https://github.com/tootsuite/mastodon/pull/11891), [ThibG](https://github.com/tootsuite/mastodon/pull/11655), [Gargron](https://github.com/tootsuite/mastodon/pull/11463), [Gargron](https://github.com/tootsuite/mastodon/pull/11458), [ThibG](https://github.com/tootsuite/mastodon/pull/11395), [Gargron](https://github.com/tootsuite/mastodon/pull/11418))
|
||||
- Change `tootctl accounts follow` to only work with local accounts ([angristan](https://github.com/tootsuite/mastodon/pull/11592))
|
||||
- Change Dockerfile ([Shleeble](https://github.com/tootsuite/mastodon/pull/11710), [ykzts](https://github.com/tootsuite/mastodon/pull/11768), [Shleeble](https://github.com/tootsuite/mastodon/pull/11707))
|
||||
- Change supported Node versions to include v12 ([abcang](https://github.com/tootsuite/mastodon/pull/11706))
|
||||
- Change Portuguese language from `pt` to `pt-PT` ([Gargron](https://github.com/tootsuite/mastodon/pull/11820))
|
||||
|
||||
### Removed
|
||||
|
||||
- **Remove OStatus support** ([Gargron](https://github.com/tootsuite/mastodon/pull/11205), [Gargron](https://github.com/tootsuite/mastodon/pull/11303), [Gargron](https://github.com/tootsuite/mastodon/pull/11460), [ThibG](https://github.com/tootsuite/mastodon/pull/11280), [ThibG](https://github.com/tootsuite/mastodon/pull/11278))
|
||||
- Remove Atom feeds and old URLs in the form of `GET /:username/updates/:id` ([Gargron](https://github.com/tootsuite/mastodon/pull/11247))
|
||||
- Remove WebP support ([angristan](https://github.com/tootsuite/mastodon/pull/11589))
|
||||
- Remove deprecated config options from Heroku and Scalingo ([ykzts](https://github.com/tootsuite/mastodon/pull/11925))
|
||||
- Remove deprecated REST API `GET /api/v1/search` API ([Gargron](https://github.com/tootsuite/mastodon/pull/11823))
|
||||
- Remove deprecated REST API `GET /api/v1/statuses/:id/card` ([Gargron](https://github.com/tootsuite/mastodon/pull/11213))
|
||||
- Remove deprecated REST API `POST /api/v1/notifications/dismiss?id=:id` ([Gargron](https://github.com/tootsuite/mastodon/pull/11214))
|
||||
- Remove deprecated REST API `GET /api/v1/timelines/direct` ([Gargron](https://github.com/tootsuite/mastodon/pull/11212))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix manifest warning ([ykzts](https://github.com/tootsuite/mastodon/pull/11767))
|
||||
- Fix admin UI for custom emoji not respecting GIF autoplay preference ([ThibG](https://github.com/tootsuite/mastodon/pull/11801))
|
||||
- Fix page body not being scrollable in admin/settings layout ([Gargron](https://github.com/tootsuite/mastodon/pull/11893))
|
||||
- Fix placeholder colors for inputs not being explicitly defined ([Gargron](https://github.com/tootsuite/mastodon/pull/11890))
|
||||
- Fix incorrect enclosure length in RSS ([tsia](https://github.com/tootsuite/mastodon/pull/11889))
|
||||
- Fix TOTP codes not being filtered from logs during enabling/disabling ([Gargron](https://github.com/tootsuite/mastodon/pull/11877))
|
||||
- Fix webfinger response not returning 410 when account is suspended ([Gargron](https://github.com/tootsuite/mastodon/pull/11869))
|
||||
- Fix ActivityPub Move handler queuing jobs that will fail if account is suspended ([Gargron](https://github.com/tootsuite/mastodon/pull/11864))
|
||||
- Fix SSO login not using existing account when e-mail is verified ([Gargron](https://github.com/tootsuite/mastodon/pull/11862))
|
||||
- Fix web UI allowing uploads past status limit via drag & drop ([Gargron](https://github.com/tootsuite/mastodon/pull/11863))
|
||||
- Fix expiring polls not being displayed as such in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11835))
|
||||
- Fix 2FA challenge and password challenge for non-database users ([Gargron](https://github.com/tootsuite/mastodon/pull/11831), [Gargron](https://github.com/tootsuite/mastodon/pull/11943))
|
||||
- Fix profile fields overflowing page width in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11828))
|
||||
- Fix web push subscriptions being deleted on rate limit or timeout ([Gargron](https://github.com/tootsuite/mastodon/pull/11826))
|
||||
- Fix display of long poll options in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11717), [ThibG](https://github.com/tootsuite/mastodon/pull/11833))
|
||||
- Fix search API not resolving URL when `type` is given ([Gargron](https://github.com/tootsuite/mastodon/pull/11822))
|
||||
- Fix hashtags being split by ZWNJ character ([Gargron](https://github.com/tootsuite/mastodon/pull/11821))
|
||||
- Fix scroll position resetting when opening media modals in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11815))
|
||||
- Fix duplicate HTML IDs on about page ([ThibG](https://github.com/tootsuite/mastodon/pull/11803))
|
||||
- Fix admin UI showing superfluous reject media/reports on suspended domain blocks ([ThibG](https://github.com/tootsuite/mastodon/pull/11749))
|
||||
- Fix ActivityPub context not being dynamically computed ([ThibG](https://github.com/tootsuite/mastodon/pull/11746))
|
||||
- Fix Mastodon logo style on hover on public pages' footer ([ThibG](https://github.com/tootsuite/mastodon/pull/11735))
|
||||
- Fix height of dashboard counters ([ThibG](https://github.com/tootsuite/mastodon/pull/11736))
|
||||
- Fix custom emoji animation on hover in web UI directory bios ([ThibG](https://github.com/tootsuite/mastodon/pull/11716))
|
||||
- Fix non-numbers being passed to Redis and causing an error ([Gargron](https://github.com/tootsuite/mastodon/pull/11697))
|
||||
- Fix error in REST API for an account's statuses ([Gargron](https://github.com/tootsuite/mastodon/pull/11700))
|
||||
- Fix uncaught error when resource param is missing in Webfinger request ([Gargron](https://github.com/tootsuite/mastodon/pull/11701))
|
||||
- Fix uncaught domain normalization error in remote follow ([Gargron](https://github.com/tootsuite/mastodon/pull/11703))
|
||||
- Fix uncaught 422 and 500 errors ([Gargron](https://github.com/tootsuite/mastodon/pull/11590), [Gargron](https://github.com/tootsuite/mastodon/pull/11811))
|
||||
- Fix uncaught parameter missing exceptions and missing error templates ([Gargron](https://github.com/tootsuite/mastodon/pull/11702))
|
||||
- Fix encoding error when checking e-mail MX records ([Gargron](https://github.com/tootsuite/mastodon/pull/11696))
|
||||
- Fix items in StatusContent render list not all having a key ([ThibG](https://github.com/tootsuite/mastodon/pull/11645))
|
||||
- Fix remote and staff-removed statuses leaving media behind for a day ([Gargron](https://github.com/tootsuite/mastodon/pull/11638))
|
||||
- Fix CSP needlessly allowing blob URLs in script-src ([ThibG](https://github.com/tootsuite/mastodon/pull/11620))
|
||||
- Fix ignoring whole status because of one invalid hashtag ([Gargron](https://github.com/tootsuite/mastodon/pull/11621))
|
||||
- Fix hidden statuses losing focus ([ThibG](https://github.com/tootsuite/mastodon/pull/11208))
|
||||
- Fix loading bar being obscured by other elements in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11598))
|
||||
- Fix multiple issues with replies collection for pages further than self-replies ([ThibG](https://github.com/tootsuite/mastodon/pull/11582))
|
||||
- Fix blurhash and autoplay not working on public pages ([Gargron](https://github.com/tootsuite/mastodon/pull/11585))
|
||||
- Fix 422 being returned instead of 404 when POSTing to unmatched routes ([Gargron](https://github.com/tootsuite/mastodon/pull/11574), [Gargron](https://github.com/tootsuite/mastodon/pull/11704))
|
||||
- Fix client-side resizing of image uploads ([ThibG](https://github.com/tootsuite/mastodon/pull/11570))
|
||||
- Fix short number formatting for numbers above million in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11559))
|
||||
- Fix ActivityPub and REST API queries setting cookies and preventing caching ([ThibG](https://github.com/tootsuite/mastodon/pull/11539), [ThibG](https://github.com/tootsuite/mastodon/pull/11557), [ThibG](https://github.com/tootsuite/mastodon/pull/11336), [ThibG](https://github.com/tootsuite/mastodon/pull/11331))
|
||||
- Fix some emojis in profile metadata labels are not emojified. ([kedamaDQ](https://github.com/tootsuite/mastodon/pull/11534))
|
||||
- Fix account search always returning exact match on paginated results ([Gargron](https://github.com/tootsuite/mastodon/pull/11525))
|
||||
- Fix acct URIs with IDN domains not being resolved ([Gargron](https://github.com/tootsuite/mastodon/pull/11520))
|
||||
- Fix admin dashboard missing latest features ([Gargron](https://github.com/tootsuite/mastodon/pull/11505))
|
||||
- Fix jumping of toot date when clicking spoiler button ([ariasuni](https://github.com/tootsuite/mastodon/pull/11449))
|
||||
- Fix boost to original audience not working on mobile in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11371))
|
||||
- Fix handling of webfinger redirects in ResolveAccountService ([ThibG](https://github.com/tootsuite/mastodon/pull/11279))
|
||||
- Fix URLs appearing twice in errors of ActivityPub::DeliveryWorker ([Gargron](https://github.com/tootsuite/mastodon/pull/11231))
|
||||
- Fix support for HTTP proxies ([ThibG](https://github.com/tootsuite/mastodon/pull/11245))
|
||||
- Fix HTTP requests to IPv6 hosts ([ThibG](https://github.com/tootsuite/mastodon/pull/11240))
|
||||
- Fix error in ElasticSearch index import ([mayaeh](https://github.com/tootsuite/mastodon/pull/11192))
|
||||
- Fix duplicate account error when seeding development database ([ysksn](https://github.com/tootsuite/mastodon/pull/11366))
|
||||
- Fix performance of session clean-up scheduler ([abcang](https://github.com/tootsuite/mastodon/pull/11871))
|
||||
- Fix older migrations not running ([zunda](https://github.com/tootsuite/mastodon/pull/11377))
|
||||
- Fix URLs counting towards RTL detection ([ahangarha](https://github.com/tootsuite/mastodon/pull/11759))
|
||||
- Fix unnecessary status re-rendering in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11211))
|
||||
- Fix http_parser.rb gem not being compiled when no network available ([petabyteboy](https://github.com/tootsuite/mastodon/pull/11444))
|
||||
|
||||
## [2.9.3] - 2019-08-10
|
||||
### Added
|
||||
|
8
Gemfile
8
Gemfile
@ -5,7 +5,7 @@ ruby '>= 2.4.0', '< 2.7.0'
|
||||
|
||||
gem 'pkg-config', '~> 1.3'
|
||||
|
||||
gem 'puma', '~> 4.1'
|
||||
gem 'puma', '~> 4.2'
|
||||
gem 'rails', '~> 5.2.3'
|
||||
gem 'thor', '~> 0.20'
|
||||
|
||||
@ -29,7 +29,7 @@ gem 'bootsnap', '~> 1.4', require: false
|
||||
gem 'browser'
|
||||
gem 'charlock_holmes', '~> 0.7.6'
|
||||
gem 'iso-639'
|
||||
gem 'chewy', '~> 5.0'
|
||||
gem 'chewy', '~> 5.1'
|
||||
gem 'cld3', '~> 3.2.4'
|
||||
gem 'devise', '~> 4.7'
|
||||
gem 'devise-two-factor', '~> 3.1'
|
||||
@ -50,7 +50,7 @@ gem 'fastimage'
|
||||
gem 'goldfinger', '~> 2.1'
|
||||
gem 'hiredis', '~> 0.6'
|
||||
gem 'redis-namespace', '~> 1.5'
|
||||
gem 'health_check', '~> 3.0'
|
||||
gem 'health_check', git: 'https://github.com/ianheggie/health_check', ref: '0b799ead604f900ed50685e9b2d469cd2befba5b'
|
||||
gem 'htmlentities', '~> 4.3'
|
||||
gem 'http', '~> 3.3'
|
||||
gem 'http_accept_language', '~> 2.1'
|
||||
@ -115,7 +115,7 @@ end
|
||||
group :test do
|
||||
gem 'capybara', '~> 3.29'
|
||||
gem 'climate_control', '~> 0.2'
|
||||
gem 'faker', '~> 2.3'
|
||||
gem 'faker', '~> 2.4'
|
||||
gem 'microformats', '~> 4.1'
|
||||
gem 'rails-controller-testing', '~> 1.0'
|
||||
gem 'rspec-sidekiq', '~> 3.0'
|
||||
|
52
Gemfile.lock
52
Gemfile.lock
@ -1,3 +1,11 @@
|
||||
GIT
|
||||
remote: https://github.com/ianheggie/health_check
|
||||
revision: 0b799ead604f900ed50685e9b2d469cd2befba5b
|
||||
ref: 0b799ead604f900ed50685e9b2d469cd2befba5b
|
||||
specs:
|
||||
health_check (4.0.0.pre)
|
||||
rails (>= 4.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/rtomayko/posix-spawn
|
||||
revision: 58465d2e213991f8afb13b984854a49fcdcc980c
|
||||
@ -161,7 +169,7 @@ GEM
|
||||
case_transform (0.2)
|
||||
activesupport
|
||||
charlock_holmes (0.7.6)
|
||||
chewy (5.0.0)
|
||||
chewy (5.1.0)
|
||||
activesupport (>= 4.0)
|
||||
elasticsearch (>= 2.0.0)
|
||||
elasticsearch-dsl
|
||||
@ -209,19 +217,19 @@ GEM
|
||||
docile (1.3.2)
|
||||
domain_name (0.5.20180417)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
doorkeeper (5.2.0)
|
||||
doorkeeper (5.2.1)
|
||||
railties (>= 5)
|
||||
dotenv (2.7.5)
|
||||
dotenv-rails (2.7.5)
|
||||
dotenv (= 2.7.5)
|
||||
railties (>= 3.2, < 6.1)
|
||||
elasticsearch (6.0.2)
|
||||
elasticsearch-api (= 6.0.2)
|
||||
elasticsearch-transport (= 6.0.2)
|
||||
elasticsearch-api (6.0.2)
|
||||
elasticsearch (7.3.0)
|
||||
elasticsearch-api (= 7.3.0)
|
||||
elasticsearch-transport (= 7.3.0)
|
||||
elasticsearch-api (7.3.0)
|
||||
multi_json
|
||||
elasticsearch-dsl (0.1.5)
|
||||
elasticsearch-transport (6.0.2)
|
||||
elasticsearch-dsl (0.1.8)
|
||||
elasticsearch-transport (7.3.0)
|
||||
faraday
|
||||
multi_json
|
||||
encryptor (3.0.0)
|
||||
@ -231,9 +239,9 @@ GEM
|
||||
tzinfo
|
||||
excon (0.62.0)
|
||||
fabrication (2.20.2)
|
||||
faker (2.3.0)
|
||||
faker (2.4.0)
|
||||
i18n (~> 1.6.0)
|
||||
faraday (0.15.0)
|
||||
faraday (0.15.4)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
fast_blank (1.0.0)
|
||||
fastimage (2.1.7)
|
||||
@ -278,8 +286,6 @@ GEM
|
||||
concurrent-ruby (~> 1.0)
|
||||
hashdiff (1.0.0)
|
||||
hashie (3.6.0)
|
||||
health_check (3.0.0)
|
||||
railties (>= 5.0)
|
||||
heapy (0.1.4)
|
||||
highline (2.0.1)
|
||||
hiredis (0.6.3)
|
||||
@ -370,10 +376,10 @@ GEM
|
||||
mimemagic (0.3.3)
|
||||
mini_mime (1.0.2)
|
||||
mini_portile2 (2.4.0)
|
||||
minitest (5.11.3)
|
||||
minitest (5.12.0)
|
||||
msgpack (1.3.1)
|
||||
multi_json (1.13.1)
|
||||
multipart-post (2.0.0)
|
||||
multipart-post (2.1.1)
|
||||
necromancer (0.5.0)
|
||||
net-ldap (0.16.1)
|
||||
net-scp (2.0.0)
|
||||
@ -445,7 +451,7 @@ GEM
|
||||
pry-rails (0.3.9)
|
||||
pry (>= 0.10.4)
|
||||
public_suffix (4.0.1)
|
||||
puma (4.1.1)
|
||||
puma (4.2.0)
|
||||
nio4r (~> 2.0)
|
||||
pundit (2.1.0)
|
||||
activesupport (>= 3.0.0)
|
||||
@ -500,7 +506,7 @@ GEM
|
||||
link_header (~> 0.0, >= 0.0.8)
|
||||
rdf-normalize (0.3.3)
|
||||
rdf (>= 2.2, < 4.0)
|
||||
redis (4.1.2)
|
||||
redis (4.1.3)
|
||||
redis-actionpack (5.0.2)
|
||||
actionpack (>= 4.0, < 6)
|
||||
redis-rack (>= 1, < 3)
|
||||
@ -590,7 +596,7 @@ GEM
|
||||
simple_form (4.1.0)
|
||||
actionpack (>= 5.0)
|
||||
activemodel (>= 5.0)
|
||||
simplecov (0.17.0)
|
||||
simplecov (0.17.1)
|
||||
docile (~> 1.1)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
@ -646,7 +652,7 @@ GEM
|
||||
uniform_notifier (1.12.1)
|
||||
warden (1.2.8)
|
||||
rack (>= 2.0.6)
|
||||
webmock (3.7.3)
|
||||
webmock (3.7.5)
|
||||
addressable (>= 2.3.6)
|
||||
crack (>= 0.3.2)
|
||||
hashdiff (>= 0.4.0, < 2.0.0)
|
||||
@ -687,7 +693,7 @@ DEPENDENCIES
|
||||
capistrano-yarn (~> 2.0)
|
||||
capybara (~> 3.29)
|
||||
charlock_holmes (~> 0.7.6)
|
||||
chewy (~> 5.0)
|
||||
chewy (~> 5.1)
|
||||
cld3 (~> 3.2.4)
|
||||
climate_control (~> 0.2)
|
||||
concurrent-ruby
|
||||
@ -700,7 +706,7 @@ DEPENDENCIES
|
||||
doorkeeper (~> 5.2)
|
||||
dotenv-rails (~> 2.7)
|
||||
fabrication (~> 2.20)
|
||||
faker (~> 2.3)
|
||||
faker (~> 2.4)
|
||||
fast_blank (~> 1.0)
|
||||
fastimage
|
||||
fog-core (<= 2.1.0)
|
||||
@ -708,7 +714,7 @@ DEPENDENCIES
|
||||
fuubar (~> 2.4)
|
||||
goldfinger (~> 2.1)
|
||||
hamlit-rails (~> 0.2)
|
||||
health_check (~> 3.0)
|
||||
health_check!
|
||||
hiredis (~> 0.6)
|
||||
htmlentities (~> 4.3)
|
||||
http (~> 3.3)
|
||||
@ -752,7 +758,7 @@ DEPENDENCIES
|
||||
private_address_check (~> 0.5)
|
||||
pry-byebug (~> 3.7)
|
||||
pry-rails (~> 0.3)
|
||||
puma (~> 4.1)
|
||||
puma (~> 4.2)
|
||||
pundit (~> 2.1)
|
||||
rack-attack (~> 6.1)
|
||||
rack-cors (~> 1.0)
|
||||
@ -793,7 +799,7 @@ DEPENDENCIES
|
||||
webpush
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.6.1p33
|
||||
ruby 2.6.4p104
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.3
|
||||
|
9
app.json
9
app.json
@ -13,15 +13,6 @@
|
||||
"description": "The domain that your Mastodon instance will run on (this can be appname.herokuapp.com or a custom domain)",
|
||||
"required": true
|
||||
},
|
||||
"LOCAL_HTTPS": {
|
||||
"description": "Will your domain support HTTPS? (Automatic for herokuapp, requires manual configuration for custom domains)",
|
||||
"value": "false",
|
||||
"required": true
|
||||
},
|
||||
"PAPERCLIP_SECRET": {
|
||||
"description": "The secret key for storing media files",
|
||||
"generator": "secret"
|
||||
},
|
||||
"SECRET_KEY_BASE": {
|
||||
"description": "The secret key base",
|
||||
"generator": "secret"
|
||||
|
@ -10,6 +10,7 @@ class AccountsController < ApplicationController
|
||||
before_action :set_body_classes
|
||||
|
||||
skip_around_action :set_locale, if: -> { request.format == :json }
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def show
|
||||
respond_to do |format|
|
||||
|
@ -33,9 +33,9 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController
|
||||
def scope_for_collection
|
||||
case params[:id]
|
||||
when 'featured'
|
||||
@account.statuses.permitted_for(@account, signed_request_account).tap do |scope|
|
||||
scope.merge!(@account.pinned_statuses)
|
||||
end
|
||||
return Status.none if @account.blocking?(signed_request_account)
|
||||
|
||||
@account.pinned_statuses
|
||||
else
|
||||
raise ActiveRecord::RecordNotFound
|
||||
end
|
||||
|
@ -3,6 +3,7 @@
|
||||
module Admin
|
||||
class RelaysController < BaseController
|
||||
before_action :set_relay, except: [:index, :new, :create]
|
||||
before_action :require_signatures_enabled!, only: [:new, :create, :enable]
|
||||
|
||||
def index
|
||||
authorize :relay, :update?
|
||||
@ -11,7 +12,7 @@ module Admin
|
||||
|
||||
def new
|
||||
authorize :relay, :update?
|
||||
@relay = Relay.new(inbox_url: Relay::PRESET_RELAY)
|
||||
@relay = Relay.new
|
||||
end
|
||||
|
||||
def create
|
||||
@ -54,5 +55,9 @@ module Admin
|
||||
def resource_params
|
||||
params.require(:relay).permit(:inbox_url)
|
||||
end
|
||||
|
||||
def require_signatures_enabled!
|
||||
redirect_to admin_relays_path, alert: I18n.t('admin.relays.signatures_not_enabled') if authorized_fetch_mode?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -57,6 +57,8 @@ class Api::V1::Accounts::StatusesController < Api::BaseController
|
||||
end
|
||||
|
||||
def pinned_scope
|
||||
return Status.none if @account.blocking?(current_account)
|
||||
|
||||
@account.pinned_statuses
|
||||
end
|
||||
|
||||
|
@ -33,7 +33,7 @@ class Api::V1::AccountsController < Api::BaseController
|
||||
def follow
|
||||
FollowService.new.call(current_user.account, @account, reblogs: truthy_param?(:reblogs))
|
||||
|
||||
options = @account.locked? ? {} : { following_map: { @account.id => { reblogs: truthy_param?(:reblogs) } }, requested_map: { @account.id => false } }
|
||||
options = @account.locked? || current_user.account.silenced? ? {} : { following_map: { @account.id => { reblogs: truthy_param?(:reblogs) } }, requested_map: { @account.id => false } }
|
||||
|
||||
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships(options)
|
||||
end
|
||||
|
@ -22,7 +22,7 @@ class Api::V2::SearchController < Api::BaseController
|
||||
params[:q],
|
||||
current_account,
|
||||
limit_param(RESULTS_LIMIT),
|
||||
search_params.merge(resolve: truthy_param?(:resolve))
|
||||
search_params.merge(resolve: truthy_param?(:resolve), exclude_unreviewed: truthy_param?(:exclude_unreviewed))
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -8,6 +8,8 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
skip_before_action :require_no_authentication, only: [:create]
|
||||
skip_before_action :require_functional!
|
||||
|
||||
prepend_before_action :authenticate_with_two_factor, if: :two_factor_enabled?, only: [:create]
|
||||
|
||||
before_action :set_instance_presenter, only: [:new]
|
||||
before_action :set_body_classes
|
||||
|
||||
@ -20,22 +22,9 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
end
|
||||
|
||||
def create
|
||||
self.resource = begin
|
||||
if user_params[:email].blank? && session[:otp_user_id].present?
|
||||
User.find(session[:otp_user_id])
|
||||
else
|
||||
warden.authenticate!(auth_options)
|
||||
end
|
||||
end
|
||||
|
||||
if resource.otp_required_for_login?
|
||||
if user_params[:otp_attempt].present? && session[:otp_user_id].present?
|
||||
authenticate_with_two_factor_via_otp(resource)
|
||||
else
|
||||
prompt_for_two_factor(resource)
|
||||
end
|
||||
else
|
||||
authenticate_and_respond(resource)
|
||||
super do |resource|
|
||||
remember_me(resource)
|
||||
flash.delete(:notice)
|
||||
end
|
||||
end
|
||||
|
||||
@ -49,6 +38,16 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
|
||||
protected
|
||||
|
||||
def find_user
|
||||
if session[:otp_user_id]
|
||||
User.find(session[:otp_user_id])
|
||||
else
|
||||
user = User.authenticate_with_ldap(user_params) if Devise.ldap_authentication
|
||||
user ||= User.authenticate_with_pam(user_params) if Devise.pam_authentication
|
||||
user ||= User.find_for_authentication(email: user_params[:email])
|
||||
end
|
||||
end
|
||||
|
||||
def user_params
|
||||
params.require(:user).permit(:email, :password, :otp_attempt)
|
||||
end
|
||||
@ -71,6 +70,10 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
super
|
||||
end
|
||||
|
||||
def two_factor_enabled?
|
||||
find_user&.otp_required_for_login?
|
||||
end
|
||||
|
||||
def valid_otp_attempt?(user)
|
||||
user.validate_and_consume_otp!(user_params[:otp_attempt]) ||
|
||||
user.invalidate_otp_backup_code!(user_params[:otp_attempt])
|
||||
@ -78,10 +81,24 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
false
|
||||
end
|
||||
|
||||
def authenticate_with_two_factor
|
||||
user = self.resource = find_user
|
||||
|
||||
if user_params[:otp_attempt].present? && session[:otp_user_id]
|
||||
authenticate_with_two_factor_via_otp(user)
|
||||
elsif user.present? && (user.encrypted_password.blank? || user.valid_password?(user_params[:password]))
|
||||
# If encrypted_password is blank, we got the user from LDAP or PAM,
|
||||
# so credentials are already valid
|
||||
|
||||
prompt_for_two_factor(user)
|
||||
end
|
||||
end
|
||||
|
||||
def authenticate_with_two_factor_via_otp(user)
|
||||
if valid_otp_attempt?(user)
|
||||
session.delete(:otp_user_id)
|
||||
authenticate_and_respond(user)
|
||||
remember_me(user)
|
||||
sign_in(user)
|
||||
else
|
||||
flash.now[:alert] = I18n.t('users.invalid_otp_token')
|
||||
prompt_for_two_factor(user)
|
||||
@ -90,16 +107,10 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
|
||||
def prompt_for_two_factor(user)
|
||||
session[:otp_user_id] = user.id
|
||||
@body_classes = 'lighter'
|
||||
render :two_factor
|
||||
end
|
||||
|
||||
def authenticate_and_respond(user)
|
||||
sign_in(user)
|
||||
remember_me(user)
|
||||
|
||||
respond_with user, location: after_sign_in_path_for(user)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_instance_presenter
|
||||
@ -112,11 +123,9 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
|
||||
def home_paths(resource)
|
||||
paths = [about_path]
|
||||
|
||||
if single_user_mode? && resource.is_a?(User)
|
||||
paths << short_account_path(username: resource.account)
|
||||
end
|
||||
|
||||
paths
|
||||
end
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
class CustomCssController < ApplicationController
|
||||
skip_before_action :store_current_location
|
||||
skip_before_action :require_functional!
|
||||
|
||||
before_action :set_cache_headers
|
||||
|
||||
|
@ -9,6 +9,8 @@ class DirectoriesController < ApplicationController
|
||||
before_action :set_tag, only: :show
|
||||
before_action :set_accounts
|
||||
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def index
|
||||
render :index
|
||||
end
|
||||
|
@ -8,6 +8,7 @@ class FollowerAccountsController < ApplicationController
|
||||
before_action :set_cache_headers
|
||||
|
||||
skip_around_action :set_locale, if: -> { request.format == :json }
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def index
|
||||
respond_to do |format|
|
||||
|
@ -8,6 +8,7 @@ class FollowingAccountsController < ApplicationController
|
||||
before_action :set_cache_headers
|
||||
|
||||
skip_around_action :set_locale, if: -> { request.format == :json }
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def index
|
||||
respond_to do |format|
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
class ManifestsController < ApplicationController
|
||||
skip_before_action :store_current_location
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def show
|
||||
expires_in 3.minutes, public: true
|
||||
|
@ -4,6 +4,7 @@ class MediaController < ApplicationController
|
||||
include Authorization
|
||||
|
||||
skip_before_action :store_current_location
|
||||
skip_before_action :require_functional!
|
||||
|
||||
before_action :authenticate_user!, if: :whitelist_mode?
|
||||
before_action :set_media_attachment
|
||||
|
@ -4,6 +4,7 @@ class MediaProxyController < ApplicationController
|
||||
include RoutingHelper
|
||||
|
||||
skip_before_action :store_current_location
|
||||
skip_before_action :require_functional!
|
||||
|
||||
before_action :authenticate_user!, if: :whitelist_mode?
|
||||
|
||||
|
@ -7,6 +7,8 @@ class RemoteFollowController < ApplicationController
|
||||
|
||||
before_action :set_body_classes
|
||||
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def new
|
||||
@remote_follow = RemoteFollow.new(session_params)
|
||||
end
|
||||
|
@ -10,6 +10,8 @@ class RemoteInteractionController < ApplicationController
|
||||
before_action :set_status
|
||||
before_action :set_body_classes
|
||||
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def new
|
||||
@remote_follow = RemoteFollow.new(session_params)
|
||||
end
|
||||
|
45
app/controllers/settings/migration/redirects_controller.rb
Normal file
45
app/controllers/settings/migration/redirects_controller.rb
Normal file
@ -0,0 +1,45 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class Settings::Migration::RedirectsController < Settings::BaseController
|
||||
layout 'admin'
|
||||
|
||||
before_action :authenticate_user!
|
||||
before_action :require_not_suspended!
|
||||
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def new
|
||||
@redirect = Form::Redirect.new
|
||||
end
|
||||
|
||||
def create
|
||||
@redirect = Form::Redirect.new(resource_params.merge(account: current_account))
|
||||
|
||||
if @redirect.valid_with_challenge?(current_user)
|
||||
current_account.update!(moved_to_account: @redirect.target_account)
|
||||
ActivityPub::UpdateDistributionWorker.perform_async(current_account.id)
|
||||
redirect_to settings_migration_path, notice: I18n.t('migrations.moved_msg', acct: current_account.moved_to_account.acct)
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
if current_account.moved_to_account_id.present?
|
||||
current_account.update!(moved_to_account: nil)
|
||||
ActivityPub::UpdateDistributionWorker.perform_async(current_account.id)
|
||||
end
|
||||
|
||||
redirect_to settings_migration_path, notice: I18n.t('migrations.cancelled_msg')
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def resource_params
|
||||
params.require(:form_redirect).permit(:acct, :current_password, :current_username)
|
||||
end
|
||||
|
||||
def require_not_suspended!
|
||||
forbidden if current_account.suspended?
|
||||
end
|
||||
end
|
@ -27,15 +27,6 @@ class Settings::MigrationsController < Settings::BaseController
|
||||
end
|
||||
end
|
||||
|
||||
def cancel
|
||||
if current_account.moved_to_account_id.present?
|
||||
current_account.update!(moved_to_account: nil)
|
||||
ActivityPub::UpdateDistributionWorker.perform_async(current_account.id)
|
||||
end
|
||||
|
||||
redirect_to settings_migration_path, notice: I18n.t('migrations.cancelled_msg')
|
||||
end
|
||||
|
||||
helper_method :on_cooldown?
|
||||
|
||||
private
|
||||
|
@ -19,6 +19,7 @@ class StatusesController < ApplicationController
|
||||
before_action :set_autoplay, only: :embed
|
||||
|
||||
skip_around_action :set_locale, if: -> { request.format == :json }
|
||||
skip_before_action :require_functional!, only: [:show, :embed]
|
||||
|
||||
content_security_policy only: :embed do |p|
|
||||
p.frame_ancestors(false)
|
||||
|
@ -13,6 +13,8 @@ class TagsController < ApplicationController
|
||||
before_action :set_body_classes
|
||||
before_action :set_instance_presenter
|
||||
|
||||
skip_before_action :require_functional!
|
||||
|
||||
def show
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
|
@ -234,7 +234,7 @@ export function uploadCompose(files) {
|
||||
progress[i] = loaded;
|
||||
dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total));
|
||||
},
|
||||
}).then(({ data }) => dispatch(uploadComposeSuccess(data)));
|
||||
}).then(({ data }) => dispatch(uploadComposeSuccess(data, f)));
|
||||
}).catch(error => dispatch(uploadComposeFail(error)));
|
||||
};
|
||||
};
|
||||
@ -289,10 +289,11 @@ export function uploadComposeProgress(loaded, total) {
|
||||
};
|
||||
};
|
||||
|
||||
export function uploadComposeSuccess(media) {
|
||||
export function uploadComposeSuccess(media, file) {
|
||||
return {
|
||||
type: COMPOSE_UPLOAD_SUCCESS,
|
||||
media: media,
|
||||
file: file,
|
||||
skipLoading: true,
|
||||
};
|
||||
};
|
||||
@ -368,6 +369,7 @@ const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => {
|
||||
q: token.slice(1),
|
||||
resolve: false,
|
||||
limit: 4,
|
||||
exclude_unreviewed: true,
|
||||
},
|
||||
}).then(({ data }) => {
|
||||
dispatch(readyComposeSuggestionsTags(token, data.hashtags));
|
||||
|
@ -73,8 +73,9 @@ export function normalizePoll(poll) {
|
||||
|
||||
const emojiMap = makeEmojiMap(normalPoll);
|
||||
|
||||
normalPoll.options = poll.options.map(option => ({
|
||||
normalPoll.options = poll.options.map((option, index) => ({
|
||||
...option,
|
||||
voted: poll.own_votes && poll.own_votes.includes(index),
|
||||
title_emojified: emojify(escapeTextContentForBrowser(option.title), emojiMap),
|
||||
}));
|
||||
|
||||
|
@ -10,9 +10,11 @@ import spring from 'react-motion/lib/spring';
|
||||
import escapeTextContentForBrowser from 'escape-html';
|
||||
import emojify from 'mastodon/features/emoji/emoji';
|
||||
import RelativeTimestamp from './relative_timestamp';
|
||||
import Icon from 'mastodon/components/icon';
|
||||
|
||||
const messages = defineMessages({
|
||||
closed: { id: 'poll.closed', defaultMessage: 'Closed' },
|
||||
voted: { id: 'poll.voted', defaultMessage: 'You voted for this answer', description: 'Tooltip of the "voted" checkmark in polls' },
|
||||
});
|
||||
|
||||
const makeEmojiMap = record => record.get('emojis').reduce((obj, emoji) => {
|
||||
@ -99,10 +101,11 @@ class Poll extends ImmutablePureComponent {
|
||||
};
|
||||
|
||||
renderOption (option, optionIndex, showResults) {
|
||||
const { poll, disabled } = this.props;
|
||||
const percent = poll.get('votes_count') === 0 ? 0 : (option.get('votes_count') / poll.get('votes_count')) * 100;
|
||||
const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') > other.get('votes_count'));
|
||||
const active = !!this.state.selected[`${optionIndex}`];
|
||||
const { poll, disabled, intl } = this.props;
|
||||
const percent = poll.get('votes_count') === 0 ? 0 : (option.get('votes_count') / poll.get('votes_count')) * 100;
|
||||
const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') > other.get('votes_count'));
|
||||
const active = !!this.state.selected[`${optionIndex}`];
|
||||
const voted = option.get('voted') || (poll.get('own_votes') && poll.get('own_votes').includes(optionIndex));
|
||||
|
||||
let titleEmojified = option.get('title_emojified');
|
||||
if (!titleEmojified) {
|
||||
@ -131,7 +134,10 @@ class Poll extends ImmutablePureComponent {
|
||||
/>
|
||||
|
||||
{!showResults && <span className={classNames('poll__input', { checkbox: poll.get('multiple'), active })} />}
|
||||
{showResults && <span className='poll__number'>{Math.round(percent)}%</span>}
|
||||
{showResults && <span className='poll__number'>
|
||||
{!!voted && <Icon id='check' className='poll__vote__mark' title={intl.formatMessage(messages.voted)} />}
|
||||
{Math.round(percent)}%
|
||||
</span>}
|
||||
|
||||
<span dangerouslySetInnerHTML={{ __html: titleEmojified }} />
|
||||
</label>
|
||||
|
@ -201,10 +201,6 @@ export default class ScrollableList extends PureComponent {
|
||||
this.detachIntersectionObserver();
|
||||
|
||||
detachFullscreenListener(this.onFullScreenChange);
|
||||
|
||||
if (this.props.onScrollToTop) {
|
||||
this.props.onScrollToTop();
|
||||
}
|
||||
}
|
||||
|
||||
onFullScreenChange = () => {
|
||||
|
@ -99,4 +99,4 @@ export const buildCustomEmojis = (customEmojis) => {
|
||||
return emojis;
|
||||
};
|
||||
|
||||
export const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get('category') ? `custom-${emoji.get('category')}` : 'custom'), new Set());
|
||||
export const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get('category') ? `custom-${emoji.get('category')}` : 'custom'), new Set(['custom']));
|
||||
|
@ -77,16 +77,14 @@ class GettingStarted extends ImmutablePureComponent {
|
||||
};
|
||||
|
||||
componentDidMount () {
|
||||
const { myAccount, fetchFollowRequests, multiColumn } = this.props;
|
||||
const { fetchFollowRequests, multiColumn } = this.props;
|
||||
|
||||
if (!multiColumn && window.innerWidth >= NAVIGATION_PANEL_BREAKPOINT) {
|
||||
this.context.router.history.replace('/timelines/home');
|
||||
return;
|
||||
}
|
||||
|
||||
if (myAccount.get('locked')) {
|
||||
fetchFollowRequests();
|
||||
}
|
||||
fetchFollowRequests();
|
||||
}
|
||||
|
||||
render () {
|
||||
@ -134,7 +132,7 @@ class GettingStarted extends ImmutablePureComponent {
|
||||
|
||||
height += 48*3;
|
||||
|
||||
if (myAccount.get('locked')) {
|
||||
if (myAccount.get('locked') || unreadFollowRequests > 0) {
|
||||
navItems.push(<ColumnLink key={i++} icon='user-plus' text={intl.formatMessage(messages.follow_requests)} badge={badgeDisplay(unreadFollowRequests, 40)} to='/follow_requests' />);
|
||||
height += 48;
|
||||
}
|
||||
|
@ -173,7 +173,17 @@ class FocalPointModal extends ImmutablePureComponent {
|
||||
langPath: `${assetHost}/ocr/lang-data`,
|
||||
});
|
||||
|
||||
worker.recognize(media.get('url'))
|
||||
let media_url = media.get('file');
|
||||
|
||||
if (window.URL && URL.createObjectURL) {
|
||||
try {
|
||||
media_url = URL.createObjectURL(media.get('file'));
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
worker.recognize(media_url)
|
||||
.progress(({ progress }) => this.setState({ progress }))
|
||||
.finally(() => worker.terminate())
|
||||
.then(({ text }) => this.setState({ description: removeExtraLineBreaks(text), dirty: true, detecting: false }))
|
||||
|
@ -7,7 +7,7 @@
|
||||
"account.cancel_follow_request": "إلغاء طلب المتابَعة",
|
||||
"account.direct": "رسالة خاصة إلى @{name}",
|
||||
"account.domain_blocked": "النطاق مخفي",
|
||||
"account.edit_profile": "تعديل الملف الشخصي",
|
||||
"account.edit_profile": "تعديل الملف التعريفي",
|
||||
"account.endorse": "أوصِ به على صفحتك",
|
||||
"account.follow": "تابِع",
|
||||
"account.followers": "متابعون",
|
||||
@ -30,11 +30,11 @@
|
||||
"account.posts_with_replies": "التبويقات و الردود",
|
||||
"account.report": "ابلِغ عن @{name}",
|
||||
"account.requested": "في انتظار الموافقة. اضْغَطْ/ي لإلغاء طلب المتابعة",
|
||||
"account.share": "مشاركة حساب @{name}",
|
||||
"account.share": "شارك ملف تعريف @{name}",
|
||||
"account.show_reblogs": "اعرض ترقيات @{name}",
|
||||
"account.unblock": "إلغاء الحظر عن @{name}",
|
||||
"account.unblock_domain": "فك الخْفى عن {domain}",
|
||||
"account.unendorse": "أزل ترويجه مِن الملف الشخصي",
|
||||
"account.unendorse": "أزل ترويجه مِن الملف التعريفي",
|
||||
"account.unfollow": "إلغاء المتابعة",
|
||||
"account.unmute": "إلغاء الكتم عن @{name}",
|
||||
"account.unmute_notifications": "إلغاء كتم إخطارات @{name}",
|
||||
@ -53,7 +53,7 @@
|
||||
"column.blocks": "الحسابات المحجوبة",
|
||||
"column.community": "الخيط العام المحلي",
|
||||
"column.direct": "الرسائل المباشرة",
|
||||
"column.directory": "Browse profiles",
|
||||
"column.directory": "استعرض الملفات التعريفية",
|
||||
"column.domain_blocks": "النطاقات المخفية",
|
||||
"column.favourites": "المفضلة",
|
||||
"column.follow_requests": "طلبات المتابعة",
|
||||
@ -63,7 +63,7 @@
|
||||
"column.notifications": "الإخطارات",
|
||||
"column.pins": "التبويقات المثبتة",
|
||||
"column.public": "الخيط العام الموحد",
|
||||
"column.status": "Toot",
|
||||
"column.status": "تبويق",
|
||||
"column_back_button.label": "العودة",
|
||||
"column_header.hide_settings": "إخفاء الإعدادات",
|
||||
"column_header.moveLeft_settings": "نقل القائمة إلى اليسار",
|
||||
@ -111,10 +111,10 @@
|
||||
"confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟",
|
||||
"confirmations.unfollow.confirm": "إلغاء المتابعة",
|
||||
"confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.mark_as_read": "Mark as read",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"conversation.delete": "احذف المحادثة",
|
||||
"conversation.mark_as_read": "اعتبرها كمقروءة",
|
||||
"conversation.open": "اعرض المحادثة",
|
||||
"conversation.with": "بـ {names}",
|
||||
"directory.federated": "From known fediverse",
|
||||
"directory.local": "From {domain} only",
|
||||
"directory.new_arrivals": "الوافدون الجُدد",
|
||||
@ -136,7 +136,7 @@
|
||||
"emoji_button.symbols": "رموز",
|
||||
"emoji_button.travel": "الأماكن والسفر",
|
||||
"empty_column.account_timeline": "ليس هناك تبويقات!",
|
||||
"empty_column.account_unavailable": "الملف الشخصي غير متوفر",
|
||||
"empty_column.account_unavailable": "الملف التعريفي غير متوفر",
|
||||
"empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
|
||||
"empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
|
||||
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
|
||||
@ -155,7 +155,7 @@
|
||||
"follow_request.authorize": "ترخيص",
|
||||
"follow_request.reject": "رفض",
|
||||
"getting_started.developers": "المُطوِّرون",
|
||||
"getting_started.directory": "دليل المستخدِمين والمستخدِمات",
|
||||
"getting_started.directory": "دليل الصفحات التعريفية",
|
||||
"getting_started.documentation": "الدليل",
|
||||
"getting_started.heading": "استعدّ للبدء",
|
||||
"getting_started.invite": "دعوة أشخاص",
|
||||
@ -194,7 +194,7 @@
|
||||
"introduction.interactions.reply.text": "يمكنكم الرد على تبويقاتكم و تبويقات الآخرين على شكل سلسلة محادثة.",
|
||||
"introduction.welcome.action": "هيا بنا!",
|
||||
"introduction.welcome.headline": "الخطوات الأولى",
|
||||
"introduction.welcome.text": "مرحبا بكم على الفديفرس! بعد لحظات قليلة ، سيكون بمقدوركم بث رسائل والتحدث إلى أصدقائكم عبر تشكيلة واسعة من الخوادم المختلفة. هذا الخادم ، {domain} ، يستضيف ملفكم الشخصي ، لذا يجب تذكر اسمه جيدا.",
|
||||
"introduction.welcome.text": "مرحبا بكم على الفديفرس! بعد لحظات قليلة ، سيكون بمقدوركم بث رسائل والتحدث إلى أصدقائكم عبر تشكيلة واسعة من الخوادم المختلفة. هذا الخادم ، {domain} ، يستضيف صفحتكم التعريفية ، لذا يجب تذكر اسمه جيدا.",
|
||||
"keyboard_shortcuts.back": "للعودة",
|
||||
"keyboard_shortcuts.blocked": "لفتح قائمة المستخدمين المحظورين",
|
||||
"keyboard_shortcuts.boost": "للترقية",
|
||||
@ -214,10 +214,10 @@
|
||||
"keyboard_shortcuts.local": "لفتح الخيط العام المحلي",
|
||||
"keyboard_shortcuts.mention": "لذِكر الناشر",
|
||||
"keyboard_shortcuts.muted": "لفتح قائمة المستخدِمين المكتومين",
|
||||
"keyboard_shortcuts.my_profile": "لفتح ملفك الشخصي",
|
||||
"keyboard_shortcuts.my_profile": "لفتح ملفك التعريفي",
|
||||
"keyboard_shortcuts.notifications": "لفتح عمود الإشعارات",
|
||||
"keyboard_shortcuts.pinned": "لفتح قائمة التبويقات المدبسة",
|
||||
"keyboard_shortcuts.profile": "لفتح رابط الناشر",
|
||||
"keyboard_shortcuts.profile": "لفتح الملف التعريفي للناشر",
|
||||
"keyboard_shortcuts.reply": "للردّ",
|
||||
"keyboard_shortcuts.requests": "لفتح قائمة طلبات المتابعة",
|
||||
"keyboard_shortcuts.search": "للتركيز على البحث",
|
||||
@ -253,7 +253,7 @@
|
||||
"navigation_bar.direct": "الرسائل المباشِرة",
|
||||
"navigation_bar.discover": "اكتشف",
|
||||
"navigation_bar.domain_blocks": "النطاقات المخفية",
|
||||
"navigation_bar.edit_profile": "تعديل الملف الشخصي",
|
||||
"navigation_bar.edit_profile": "عدّل الملف التعريفي",
|
||||
"navigation_bar.favourites": "المفضلة",
|
||||
"navigation_bar.filters": "الكلمات المكتومة",
|
||||
"navigation_bar.follow_requests": "طلبات المتابعة",
|
||||
@ -355,7 +355,7 @@
|
||||
"status.mute": "أكتم @{name}",
|
||||
"status.mute_conversation": "كتم المحادثة",
|
||||
"status.open": "وسع هذه المشاركة",
|
||||
"status.pin": "تدبيس على الملف الشخصي",
|
||||
"status.pin": "دبّسه على الصفحة التعريفية",
|
||||
"status.pinned": "تبويق مثبَّت",
|
||||
"status.read_more": "اقرأ المزيد",
|
||||
"status.reblog": "رَقِّي",
|
||||
@ -375,7 +375,7 @@
|
||||
"status.show_thread": "الكشف عن المحادثة",
|
||||
"status.uncached_media_warning": "غير متوفر",
|
||||
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
||||
"status.unpin": "فك التدبيس من الملف الشخصي",
|
||||
"status.unpin": "فك التدبيس من الصفحة التعريفية",
|
||||
"suggestions.dismiss": "إلغاء الاقتراح",
|
||||
"suggestions.header": "يمكن أن يهمك…",
|
||||
"tabs_bar.federated_timeline": "الموحَّد",
|
||||
@ -404,7 +404,7 @@
|
||||
"upload_modal.detect_text": "Detect text from picture",
|
||||
"upload_modal.edit_media": "تعديل الوسائط",
|
||||
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
|
||||
"upload_modal.preview_label": "Preview ({ratio})",
|
||||
"upload_modal.preview_label": "معاينة ({ratio})",
|
||||
"upload_progress.label": "يرفع...",
|
||||
"video.close": "إغلاق الفيديو",
|
||||
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",
|
||||
|
@ -111,10 +111,10 @@
|
||||
"confirmations.reply.message": "Risponde avà sguasserà u missaghju chì scrivite. Site sicuru·a chì vulete cuntinuà?",
|
||||
"confirmations.unfollow.confirm": "Disabbunassi",
|
||||
"confirmations.unfollow.message": "Site sicuru·a ch'ùn vulete più siguità @{name}?",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.mark_as_read": "Mark as read",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"conversation.delete": "Sguassà a cunversazione",
|
||||
"conversation.mark_as_read": "Marcà cum'è lettu",
|
||||
"conversation.open": "Vede a cunversazione",
|
||||
"conversation.with": "Cù {names}",
|
||||
"directory.federated": "Da u fediverse cunisciutu",
|
||||
"directory.local": "Solu da {domain}",
|
||||
"directory.new_arrivals": "Ultimi arrivi",
|
||||
|
@ -4,7 +4,7 @@
|
||||
"account.block": "Blocio @{name}",
|
||||
"account.block_domain": "Cuddio popeth rhag {domain}",
|
||||
"account.blocked": "Blociwyd",
|
||||
"account.cancel_follow_request": "Cancel follow request",
|
||||
"account.cancel_follow_request": "Canslo cais dilyn",
|
||||
"account.direct": "Neges breifat @{name}",
|
||||
"account.domain_blocked": "Parth wedi ei guddio",
|
||||
"account.edit_profile": "Golygu proffil",
|
||||
@ -16,7 +16,7 @@
|
||||
"account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
|
||||
"account.follows_you": "Yn eich dilyn chi",
|
||||
"account.hide_reblogs": "Cuddio bwstiau o @{name}",
|
||||
"account.last_status": "Last active",
|
||||
"account.last_status": "Gweithredol olaf",
|
||||
"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",
|
||||
@ -38,11 +38,11 @@
|
||||
"account.unfollow": "Dad-ddilyn",
|
||||
"account.unmute": "Dad-dawelu @{name}",
|
||||
"account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
|
||||
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Rate limited",
|
||||
"alert.rate_limited.message": "Ceisiwch eto ar ôl {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Cyfradd gyfyngedig",
|
||||
"alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
|
||||
"alert.unexpected.title": "Wps!",
|
||||
"autosuggest_hashtag.per_week": "{count} per week",
|
||||
"autosuggest_hashtag.per_week": "{count} yr wythnos",
|
||||
"boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
|
||||
"bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
|
||||
"bundle_column_error.retry": "Ceisiwch eto",
|
||||
@ -53,7 +53,7 @@
|
||||
"column.blocks": "Defnyddwyr a flociwyd",
|
||||
"column.community": "Ffrwd lleol",
|
||||
"column.direct": "Negeseuon preifat",
|
||||
"column.directory": "Browse profiles",
|
||||
"column.directory": "Pori proffiliau",
|
||||
"column.domain_blocks": "Parthau cuddiedig",
|
||||
"column.favourites": "Ffefrynnau",
|
||||
"column.follow_requests": "Ceisiadau dilyn",
|
||||
@ -102,7 +102,7 @@
|
||||
"confirmations.domain_block.confirm": "Cuddio parth cyfan",
|
||||
"confirmations.domain_block.message": "A ydych yn hollol, hollol sicr eich bod am flocio y {domain} cyfan? Yn y nifer helaeth o achosion mae blocio neu tawelu ambell gyfrif yn ddigonol ac yn well. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn unrhyw ffrydiau cyhoeddus na chwaith yn eich hysbysiadau. Bydd hyn yn cael gwared o'ch dilynwyr o'r parth hwnnw.",
|
||||
"confirmations.logout.confirm": "Allgofnodi",
|
||||
"confirmations.logout.message": "Are you sure you want to log out?",
|
||||
"confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
|
||||
"confirmations.mute.confirm": "Tawelu",
|
||||
"confirmations.mute.message": "Ydych chi'n sicr eich bod am ddistewi {name}?",
|
||||
"confirmations.redraft.confirm": "Dileu & ailddrafftio",
|
||||
@ -111,14 +111,14 @@
|
||||
"confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?",
|
||||
"confirmations.unfollow.confirm": "Dad-ddilynwch",
|
||||
"confirmations.unfollow.message": "Ydych chi'n sicr eich bod am ddad-ddilyn {name}?",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.delete": "Dileu sgwrs",
|
||||
"conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"directory.federated": "From known fediverse",
|
||||
"directory.local": "From {domain} only",
|
||||
"directory.new_arrivals": "New arrivals",
|
||||
"directory.recently_active": "Recently active",
|
||||
"conversation.open": "Gweld sgwrs",
|
||||
"conversation.with": "Gyda {names}",
|
||||
"directory.federated": "O ffedysawd hysbys",
|
||||
"directory.local": "O {domain} yn unig",
|
||||
"directory.new_arrivals": "Newydd-ddyfodiaid",
|
||||
"directory.recently_active": "Yn weithredol yn ddiweddar",
|
||||
"embed.instructions": "Mewnblannwch y tŵt hwn ar eich gwefan drwy gopïo'r côd isod.",
|
||||
"embed.preview": "Dyma sut olwg fydd arno:",
|
||||
"emoji_button.activity": "Gweithgarwch",
|
||||
@ -174,7 +174,7 @@
|
||||
"home.column_settings.basic": "Syml",
|
||||
"home.column_settings.show_reblogs": "Dangos bŵstiau",
|
||||
"home.column_settings.show_replies": "Dangos ymatebion",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"home.column_settings.update_live": "Diweddariad mewn amser real",
|
||||
"intervals.full.days": "{number, plural, one {# ddydd} other {# o ddyddiau}}",
|
||||
"intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}",
|
||||
@ -240,7 +240,7 @@
|
||||
"lists.new.title_placeholder": "Teitl rhestr newydd",
|
||||
"lists.search": "Chwilio ymysg pobl yr ydych yn ei ddilyn",
|
||||
"lists.subheading": "Eich rhestrau",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"load_pending": "{count, plural, one {# eitem newydd} other {# eitemau newydd}}",
|
||||
"loading_indicator.label": "Llwytho...",
|
||||
"media_gallery.toggle_visible": "Toglo gwelededd",
|
||||
"missing_indicator.label": "Heb ei ganfod",
|
||||
@ -268,7 +268,7 @@
|
||||
"navigation_bar.preferences": "Dewisiadau",
|
||||
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
|
||||
"navigation_bar.security": "Diogelwch",
|
||||
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}",
|
||||
"notification.and_n_others": "a {count, plural, one {# arall} other {# eraill}}",
|
||||
"notification.favourite": "hoffodd {name} eich tŵt",
|
||||
"notification.follow": "dilynodd {name} chi",
|
||||
"notification.mention": "Soniodd {name} amdanoch chi",
|
||||
@ -334,7 +334,7 @@
|
||||
"search_results.accounts": "Pobl",
|
||||
"search_results.hashtags": "Hanshnodau",
|
||||
"search_results.statuses": "Tŵtiau",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.statuses_fts_disabled": "Nid yw chwilio Tŵtiau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
|
||||
"status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio",
|
||||
@ -373,7 +373,7 @@
|
||||
"status.show_more": "Dangos mwy",
|
||||
"status.show_more_all": "Dangos mwy i bawb",
|
||||
"status.show_thread": "Dangos edefyn",
|
||||
"status.uncached_media_warning": "Not available",
|
||||
"status.uncached_media_warning": "Dim ar gael",
|
||||
"status.unmute_conversation": "Dad-dawelu sgwrs",
|
||||
"status.unpin": "Dadbinio o'r proffil",
|
||||
"suggestions.dismiss": "Diswyddo",
|
||||
@ -389,7 +389,7 @@
|
||||
"time_remaining.moments": "Munudau ar ôl",
|
||||
"time_remaining.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} ar ôl",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} yn siarad",
|
||||
"trends.trending_now": "Trending now",
|
||||
"trends.trending_now": "Yn tueddu nawr",
|
||||
"ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
|
||||
"upload_area.title": "Llusgwch & gollwing i uwchlwytho",
|
||||
"upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
@ -398,13 +398,13 @@
|
||||
"upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
|
||||
"upload_form.edit": "Golygu",
|
||||
"upload_form.undo": "Dileu",
|
||||
"upload_modal.analyzing_picture": "Analyzing picture…",
|
||||
"upload_modal.apply": "Apply",
|
||||
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
|
||||
"upload_modal.detect_text": "Detect text from picture",
|
||||
"upload_modal.edit_media": "Edit media",
|
||||
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
|
||||
"upload_modal.preview_label": "Preview ({ratio})",
|
||||
"upload_modal.analyzing_picture": "Dadansoddi llun…",
|
||||
"upload_modal.apply": "Gweithredu",
|
||||
"upload_modal.description_placeholder": "Mae ei phen bach llawn jocs, 'run peth a fy nghot golff, rhai dyddiau",
|
||||
"upload_modal.detect_text": "Canfod testun o'r llun",
|
||||
"upload_modal.edit_media": "Golygu cyfryngau",
|
||||
"upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob mân-lunau.",
|
||||
"upload_modal.preview_label": "Rhagolwg ({ratio})",
|
||||
"upload_progress.label": "Uwchlwytho...",
|
||||
"video.close": "Cau fideo",
|
||||
"video.exit_fullscreen": "Gadael sgrîn llawn",
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"account.add_or_remove_from_list": "Προσθήκη ή Αφαίρεση από λίστες",
|
||||
"account.badges.bot": "Μποτ",
|
||||
"account.block": "Αποκλισμός @{name}",
|
||||
"account.block": "Αποκλεισμός @{name}",
|
||||
"account.block_domain": "Απόκρυψε τα πάντα από το {domain}",
|
||||
"account.blocked": "Αποκλεισμένος/η",
|
||||
"account.cancel_follow_request": "Ακύρωση αιτήματος παρακολούθησης",
|
||||
@ -111,10 +111,10 @@
|
||||
"confirmations.reply.message": "Απαντώντας τώρα θα αντικαταστήσεις το κείμενο που ήδη γράφεις. Σίγουρα θέλεις να συνεχίσεις;",
|
||||
"confirmations.unfollow.confirm": "Διακοπή παρακολούθησης",
|
||||
"confirmations.unfollow.message": "Σίγουρα θες να πάψεις να ακολουθείς τον/την {name};",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.mark_as_read": "Mark as read",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"conversation.delete": "Διαγραφή συζήτησης",
|
||||
"conversation.mark_as_read": "Σήμανση ως αναγνωσμένο",
|
||||
"conversation.open": "Προβολή συνομιλίας",
|
||||
"conversation.with": "Με {names}",
|
||||
"directory.federated": "Από το γνωστό fediverse",
|
||||
"directory.local": "Μόνο από {domain}",
|
||||
"directory.new_arrivals": "Νέες αφίξεις",
|
||||
@ -131,7 +131,7 @@
|
||||
"emoji_button.objects": "Αντικείμενα",
|
||||
"emoji_button.people": "Άνθρωποι",
|
||||
"emoji_button.recent": "Δημοφιλή",
|
||||
"emoji_button.search": "Αναζήτηση…",
|
||||
"emoji_button.search": "Αναζήτηση...",
|
||||
"emoji_button.search_results": "Αποτελέσματα αναζήτησης",
|
||||
"emoji_button.symbols": "Σύμβολα",
|
||||
"emoji_button.travel": "Ταξίδια & Τοποθεσίες",
|
||||
@ -392,7 +392,7 @@
|
||||
"trends.trending_now": "Δημοφιλή τώρα",
|
||||
"ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.",
|
||||
"upload_area.title": "Drag & drop για να ανεβάσεις",
|
||||
"upload_button.label": "Πρόσθεσε πολυμέσα (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_button.label": "Πρόσθεσε πολυμέσα ({formats})",
|
||||
"upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.",
|
||||
"upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
|
||||
"upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"account.add_or_remove_from_list": "Agregar o eliminar de listas",
|
||||
"account.add_or_remove_from_list": "Agregar o quitar de las listas",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.block": "Bloquear a @{name}",
|
||||
"account.block_domain": "Ocultar todo de {domain}",
|
||||
@ -8,126 +8,126 @@
|
||||
"account.direct": "Mensaje directo a @{name}",
|
||||
"account.domain_blocked": "Dominio oculto",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
"account.endorse": "Mostrar en perfil",
|
||||
"account.endorse": "Destacar en el perfil",
|
||||
"account.follow": "Seguir",
|
||||
"account.followers": "Seguidores",
|
||||
"account.followers.empty": "Todavía nadie sigue a este usuario.",
|
||||
"account.follows": "Sigue",
|
||||
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
|
||||
"account.follows.empty": "Todavía este usuario no sigue a nadie.",
|
||||
"account.follows_you": "Te sigue",
|
||||
"account.hide_reblogs": "Ocultar retoots de @{name}",
|
||||
"account.last_status": "Última actividad",
|
||||
"account.link_verified_on": "El proprietario de este link fue comprobado el {date}",
|
||||
"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.link_verified_on": "La propiedad de este enlace fue verificada el {date}",
|
||||
"account.locked_info": "El estado de privacidad de esta cuenta está establecido como bloqueado. El propietario manualmente revisa quién puede seguirle.",
|
||||
"account.media": "Medios",
|
||||
"account.mention": "Mencionar a @{name}",
|
||||
"account.moved_to": "{name} se ha mudado a:",
|
||||
"account.moved_to": "{name} se ha muó a:",
|
||||
"account.mute": "Silenciar a @{name}",
|
||||
"account.mute_notifications": "Silenciar notificaciones de @{name}",
|
||||
"account.muted": "Silenciado",
|
||||
"account.never_active": "Nunca",
|
||||
"account.posts": "Toots",
|
||||
"account.posts_with_replies": "Toots con respuestas",
|
||||
"account.report": "Reportar a @{name}",
|
||||
"account.requested": "Esperando aprobación",
|
||||
"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}",
|
||||
"account.show_reblogs": "Mostrar retoots de @{name}",
|
||||
"account.unblock": "Desbloquear a @{name}",
|
||||
"account.unblock_domain": "Mostrar a {domain}",
|
||||
"account.unendorse": "No mostrar en el perfil",
|
||||
"account.unblock_domain": "Mostrar {domain}",
|
||||
"account.unendorse": "No destacar en el perfil",
|
||||
"account.unfollow": "Dejar de seguir",
|
||||
"account.unmute": "Dejar de silenciar a @{name}",
|
||||
"account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
|
||||
"alert.rate_limited.message": "Por favor reintente después de {retry_time, time, medium}.",
|
||||
"alert.rate_limited.message": "Por favor, reintentá después de las {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Tarifa limitada",
|
||||
"alert.unexpected.message": "Hubo un error inesperado.",
|
||||
"alert.unexpected.title": "¡Ups!",
|
||||
"alert.unexpected.message": "Ocurrió un error inesperado.",
|
||||
"alert.unexpected.title": "¡Epa!",
|
||||
"autosuggest_hashtag.per_week": "{count} por semana",
|
||||
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
|
||||
"boost_modal.combo": "Podés hacer clic en {combo} para saltar esto la próxima vez",
|
||||
"bundle_column_error.body": "Algo salió mal al cargar este componente.",
|
||||
"bundle_column_error.retry": "Inténtalo de nuevo",
|
||||
"bundle_column_error.retry": "Intentá de nuevo",
|
||||
"bundle_column_error.title": "Error de red",
|
||||
"bundle_modal_error.close": "Cerrar",
|
||||
"bundle_modal_error.message": "Algo salió mal al cargar este componente.",
|
||||
"bundle_modal_error.retry": "Inténtalo de nuevo",
|
||||
"bundle_modal_error.retry": "Intentá de nuevo",
|
||||
"column.blocks": "Usuarios bloqueados",
|
||||
"column.community": "Línea de tiempo local",
|
||||
"column.community": "Línea temporal local",
|
||||
"column.direct": "Mensajes directos",
|
||||
"column.directory": "Buscar perfiles",
|
||||
"column.domain_blocks": "Dominios ocultados",
|
||||
"column.directory": "Explorar perfiles",
|
||||
"column.domain_blocks": "Dominios ocultos",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.follow_requests": "Solicitudes de seguimiento",
|
||||
"column.home": "Inicio",
|
||||
"column.home": "Principal",
|
||||
"column.lists": "Listas",
|
||||
"column.mutes": "Usuarios silenciados",
|
||||
"column.notifications": "Notificaciones",
|
||||
"column.pins": "Toots fijados",
|
||||
"column.public": "Línea de tiempo federada",
|
||||
"column.public": "Línea temporal federada",
|
||||
"column.status": "Toot",
|
||||
"column_back_button.label": "Atrás",
|
||||
"column_back_button.label": "Volver",
|
||||
"column_header.hide_settings": "Ocultar configuración",
|
||||
"column_header.moveLeft_settings": "Mover columna a la izquierda",
|
||||
"column_header.moveRight_settings": "Mover columna a la derecha",
|
||||
"column_header.pin": "Fijar",
|
||||
"column_header.show_settings": "Mostrar ajustes",
|
||||
"column_header.show_settings": "Mostrar configuración",
|
||||
"column_header.unpin": "Dejar de fijar",
|
||||
"column_subheading.settings": "Ajustes",
|
||||
"community.column_settings.media_only": "Solo media",
|
||||
"compose_form.direct_message_warning": "Este toot solo será enviado a los usuarios mencionados.",
|
||||
"compose_form.direct_message_warning_learn_more": "Aprender mas",
|
||||
"column_subheading.settings": "Configuración",
|
||||
"community.column_settings.media_only": "Sólo medios",
|
||||
"compose_form.direct_message_warning": "Este toot sólo será enviado a los usuarios mencionados.",
|
||||
"compose_form.direct_message_warning_learn_more": "Aprendé más",
|
||||
"compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
|
||||
"compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
|
||||
"compose_form.lock_disclaimer.lock": "bloqueado",
|
||||
"compose_form.placeholder": "¿En qué estás pensando?",
|
||||
"compose_form.poll.add_option": "Añadir una opción",
|
||||
"compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus toots marcados como \"sólo para seguidores\".",
|
||||
"compose_form.lock_disclaimer.lock": "bloqueada",
|
||||
"compose_form.placeholder": "¿Qué onda?",
|
||||
"compose_form.poll.add_option": "Agregá una opción",
|
||||
"compose_form.poll.duration": "Duración de la encuesta",
|
||||
"compose_form.poll.option_placeholder": "Elección {number}",
|
||||
"compose_form.poll.remove_option": "Eliminar esta opción",
|
||||
"compose_form.poll.option_placeholder": "Opción {number}",
|
||||
"compose_form.poll.remove_option": "Quitá esta opción",
|
||||
"compose_form.publish": "Tootear",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Marcar multimedia como sensible",
|
||||
"compose_form.sensitive.marked": "Material marcado como sensible",
|
||||
"compose_form.sensitive.unmarked": "Material no marcado como sensible",
|
||||
"compose_form.spoiler.marked": "Texto oculto tras la advertencia",
|
||||
"compose_form.spoiler.unmarked": "Texto no oculto",
|
||||
"compose_form.spoiler_placeholder": "Advertencia de contenido",
|
||||
"compose_form.publish_loud": "¡{publish}!",
|
||||
"compose_form.sensitive.hide": "Marcar medio como sensible",
|
||||
"compose_form.sensitive.marked": "El medio se marcó como sensible",
|
||||
"compose_form.sensitive.unmarked": "El medio no está marcado como sensible",
|
||||
"compose_form.spoiler.marked": "El texto está oculto detrás de la advertencia",
|
||||
"compose_form.spoiler.unmarked": "El texto no está oculto",
|
||||
"compose_form.spoiler_placeholder": "Escribí tu advertencia acá",
|
||||
"confirmation_modal.cancel": "Cancelar",
|
||||
"confirmations.block.block_and_report": "Bloquear y Reportar",
|
||||
"confirmations.block.block_and_report": "Bloquear y denunciar",
|
||||
"confirmations.block.confirm": "Bloquear",
|
||||
"confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?",
|
||||
"confirmations.block.message": "¿Estás seguro que querés bloquear a {name}?",
|
||||
"confirmations.delete.confirm": "Eliminar",
|
||||
"confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?",
|
||||
"confirmations.delete.message": "¿Estás seguro que querés eliminar este estado?",
|
||||
"confirmations.delete_list.confirm": "Eliminar",
|
||||
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
|
||||
"confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?",
|
||||
"confirmations.domain_block.confirm": "Ocultar dominio entero",
|
||||
"confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
|
||||
"confirmations.domain_block.message": "¿Estás completamente seguro que querés bloquear el {domain} entero? En la mayoría de los casos, unos cuantos bloqueos y silenciados puntuales son suficientes y preferibles. No vas a ver contenido de ese dominio en ninguna de tus líneas temporales o en tus notificaciones. Tus seguidores de ese dominio serán quitados.",
|
||||
"confirmations.logout.confirm": "Cerrar sesión",
|
||||
"confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?",
|
||||
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
|
||||
"confirmations.mute.confirm": "Silenciar",
|
||||
"confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?",
|
||||
"confirmations.redraft.confirm": "Borrar y volver a borrador",
|
||||
"confirmations.redraft.message": "Estás seguro de que quieres borrar este estado y volverlo a borrador? Perderás todas las respuestas, impulsos y favoritos asociados a él, y las respuestas a la publicación original quedarán huérfanos.",
|
||||
"confirmations.mute.message": "¿Estás seguro que querés silenciar a {name}?",
|
||||
"confirmations.redraft.confirm": "Eliminar toot original y editarlo",
|
||||
"confirmations.redraft.message": "¿Estás seguro que querés eliminar este estado y volverlo a editarlo? Se perderán las veces marcadas como favoritos y los retoots, y las respuestas a la publicación original quedarán huérfanas.",
|
||||
"confirmations.reply.confirm": "Responder",
|
||||
"confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
|
||||
"confirmations.reply.message": "Responder ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
|
||||
"confirmations.unfollow.confirm": "Dejar de seguir",
|
||||
"confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
|
||||
"conversation.delete": "Borrar conversación",
|
||||
"confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?",
|
||||
"conversation.delete": "Eliminar conversación",
|
||||
"conversation.mark_as_read": "Marcar como leído",
|
||||
"conversation.open": "Ver conversación",
|
||||
"conversation.with": "Con {names}",
|
||||
"directory.federated": "Desde el fediverso conocido",
|
||||
"directory.federated": "Desde fediverso conocido",
|
||||
"directory.local": "Sólo de {domain}",
|
||||
"directory.new_arrivals": "Recién llegados",
|
||||
"directory.recently_active": "Recientemente activo",
|
||||
"embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
|
||||
"embed.preview": "Así es como se verá:",
|
||||
"embed.instructions": "Insertá este toot a tu sitio web copiando el código de abajo.",
|
||||
"embed.preview": "Así es cómo se verá:",
|
||||
"emoji_button.activity": "Actividad",
|
||||
"emoji_button.custom": "Personalizado",
|
||||
"emoji_button.flags": "Marcas",
|
||||
"emoji_button.flags": "Banderas",
|
||||
"emoji_button.food": "Comida y bebida",
|
||||
"emoji_button.label": "Insertar emoji",
|
||||
"emoji_button.nature": "Naturaleza",
|
||||
"emoji_button.not_found": "No hay emojos!! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.not_found": "¡¡No emojos!! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.objects": "Objetos",
|
||||
"emoji_button.people": "Gente",
|
||||
"emoji_button.recent": "Usados frecuentemente",
|
||||
@ -137,282 +137,282 @@
|
||||
"emoji_button.travel": "Viajes y lugares",
|
||||
"empty_column.account_timeline": "¡No hay toots aquí!",
|
||||
"empty_column.account_unavailable": "Perfil no disponible",
|
||||
"empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
|
||||
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
|
||||
"empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
|
||||
"empty_column.blocks": "Todavía no bloqueaste a ningún usuario.",
|
||||
"empty_column.community": "La línea temporal local está vacía. ¡Escribí algo en modo público para que se empiece a correr la bola!",
|
||||
"empty_column.direct": "Todavía no tenés ningún mensaje directo. Cuando enviés o recibás uno, se mostrará acá.",
|
||||
"empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
|
||||
"empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.",
|
||||
"empty_column.favourites": "Nadie ha marcado este toot como preferido. Cuando alguien lo haga, aparecerá aquí.",
|
||||
"empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.",
|
||||
"empty_column.hashtag": "No hay nada en este hashtag aún.",
|
||||
"empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.",
|
||||
"empty_column.home.public_timeline": "la línea de tiempo pública",
|
||||
"empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.",
|
||||
"empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.",
|
||||
"empty_column.mutes": "Aún no has silenciado a ningún usuario.",
|
||||
"empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.",
|
||||
"empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo",
|
||||
"follow_request.authorize": "Autorizar",
|
||||
"follow_request.reject": "Rechazar",
|
||||
"getting_started.developers": "Desarrolladores",
|
||||
"getting_started.directory": "Directorio de perfil",
|
||||
"getting_started.documentation": "Documentación",
|
||||
"getting_started.heading": "Primeros pasos",
|
||||
"getting_started.invite": "Invitar usuarios",
|
||||
"getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.",
|
||||
"getting_started.security": "Seguridad",
|
||||
"getting_started.terms": "Términos de servicio",
|
||||
"hashtag.column_header.tag_mode.all": "y {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias",
|
||||
"hashtag.column_settings.select.placeholder": "Introduzca hashtags…",
|
||||
"hashtag.column_settings.tag_mode.all": "Cualquiera de estos",
|
||||
"hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
|
||||
"hashtag.column_settings.tag_mode.none": "Ninguno de estos",
|
||||
"empty_column.favourited_statuses": "Todavía no tenés toots favoritos. Cuando marqués uno como favorito, se mostrará acá.",
|
||||
"empty_column.favourites": "Todavía nadie marcó este toot como favorito. Cuando alguien lo haga, se mostrará acá.",
|
||||
"empty_column.follow_requests": "Todavía no tenés ninguna solicitud de seguimiento. Cuando recibás una, se mostrará acá.",
|
||||
"empty_column.hashtag": "Todavía no hay nada con esta etiqueta.",
|
||||
"empty_column.home": "¡Tu línea temporal principal está vacía! Visitá {public} o usá la búsqueda para comenzar y encontrar a otros usuarios.",
|
||||
"empty_column.home.public_timeline": "la línea temporal pública",
|
||||
"empty_column.list": "Todavía no hay nada en esta lista. Cuando miembros de esta lista envíen nuevos toots, se mostrarán acá.",
|
||||
"empty_column.lists": "Todavía no tienes ninguna lista. Cuando creés una, se mostrará acá.",
|
||||
"empty_column.mutes": "You haven't muted any users yet.",
|
||||
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
|
||||
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
|
||||
"follow_request.authorize": "Authorize",
|
||||
"follow_request.reject": "Reject",
|
||||
"getting_started.developers": "Developers",
|
||||
"getting_started.directory": "Profile directory",
|
||||
"getting_started.documentation": "Documentation",
|
||||
"getting_started.heading": "Getting started",
|
||||
"getting_started.invite": "Invite people",
|
||||
"getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
|
||||
"getting_started.security": "Security",
|
||||
"getting_started.terms": "Terms of service",
|
||||
"hashtag.column_header.tag_mode.all": "and {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "or {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "without {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.tag_mode.all": "All of these",
|
||||
"hashtag.column_settings.tag_mode.any": "Any of these",
|
||||
"hashtag.column_settings.tag_mode.none": "None of these",
|
||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
||||
"home.column_settings.basic": "Básico",
|
||||
"home.column_settings.show_reblogs": "Mostrar retoots",
|
||||
"home.column_settings.show_replies": "Mostrar respuestas",
|
||||
"home.column_settings.update_live": "Actualizar en tiempo real",
|
||||
"intervals.full.days": "{number, plural, one {# día} other {# días}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
|
||||
"introduction.federation.action": "Siguiente",
|
||||
"introduction.federation.federated.headline": "Federado",
|
||||
"introduction.federation.federated.text": "Los mensajes públicos de otros servidores del fediverso aparecerán en la cronología federada.",
|
||||
"introduction.federation.home.headline": "Inicio",
|
||||
"introduction.federation.home.text": "Los posts de personas que sigues aparecerán en tu cronología. ¡Puedes seguir a cualquiera en cualquier servidor!",
|
||||
"home.column_settings.basic": "Basic",
|
||||
"home.column_settings.show_reblogs": "Show boosts",
|
||||
"home.column_settings.show_replies": "Show replies",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"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}}",
|
||||
"introduction.federation.action": "Next",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.text": "Los posts públicos de personas en el mismo servidor que aparecerán en la cronología local.",
|
||||
"introduction.interactions.action": "¡Terminar tutorial!",
|
||||
"introduction.interactions.favourite.headline": "Favorito",
|
||||
"introduction.interactions.favourite.text": "Puedes guardar un toot para más tarde, y hacer saber al autor que te gustó, dándole a favorito.",
|
||||
"introduction.interactions.reblog.headline": "Retootear",
|
||||
"introduction.interactions.reblog.text": "Puedes compartir los toots de otras personas con tus seguidores retooteando los mismos.",
|
||||
"introduction.interactions.reply.headline": "Responder",
|
||||
"introduction.interactions.reply.text": "Puedes responder a tus propios toots y los de otras personas, que se encadenarán juntos en una conversación.",
|
||||
"introduction.welcome.action": "¡Vamos!",
|
||||
"introduction.welcome.headline": "Primeros pasos",
|
||||
"introduction.welcome.text": "¡Bienvenido al fediverso! En unos momentos, podrás transmitir mensajes y hablar con tus amigos a través de una amplia variedad de servidores. Pero este servidor, {domain}, es especial, alberga tu perfil, así que recuerda su nombre.",
|
||||
"keyboard_shortcuts.back": "volver atrás",
|
||||
"keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados",
|
||||
"keyboard_shortcuts.boost": "retootear",
|
||||
"keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
|
||||
"keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
|
||||
"keyboard_shortcuts.description": "Descripción",
|
||||
"keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
|
||||
"keyboard_shortcuts.down": "mover hacia abajo en la lista",
|
||||
"keyboard_shortcuts.enter": "abrir estado",
|
||||
"keyboard_shortcuts.favourite": "añadir a favoritos",
|
||||
"keyboard_shortcuts.favourites": "abrir la lista de favoritos",
|
||||
"keyboard_shortcuts.federated": "abrir el timeline federado",
|
||||
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
|
||||
"introduction.interactions.action": "Finish toot-orial!",
|
||||
"introduction.interactions.favourite.headline": "Favourite",
|
||||
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
|
||||
"introduction.interactions.reblog.headline": "Boost",
|
||||
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
|
||||
"introduction.interactions.reply.headline": "Reply",
|
||||
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
|
||||
"introduction.welcome.action": "Let's go!",
|
||||
"introduction.welcome.headline": "First steps",
|
||||
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
|
||||
"keyboard_shortcuts.back": "to navigate back",
|
||||
"keyboard_shortcuts.blocked": "to open blocked users list",
|
||||
"keyboard_shortcuts.boost": "to boost",
|
||||
"keyboard_shortcuts.column": "to focus a status in one of the columns",
|
||||
"keyboard_shortcuts.compose": "to focus the compose textarea",
|
||||
"keyboard_shortcuts.description": "Description",
|
||||
"keyboard_shortcuts.direct": "to open direct messages column",
|
||||
"keyboard_shortcuts.down": "to move down in the list",
|
||||
"keyboard_shortcuts.enter": "to open status",
|
||||
"keyboard_shortcuts.favourite": "to favourite",
|
||||
"keyboard_shortcuts.favourites": "to open favourites list",
|
||||
"keyboard_shortcuts.federated": "to open federated timeline",
|
||||
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
|
||||
"keyboard_shortcuts.home": "abrir el timeline propio",
|
||||
"keyboard_shortcuts.hotkey": "Tecla caliente",
|
||||
"keyboard_shortcuts.legend": "para mostrar esta leyenda",
|
||||
"keyboard_shortcuts.local": "abrir el timeline local",
|
||||
"keyboard_shortcuts.mention": "para mencionar al autor",
|
||||
"keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados",
|
||||
"keyboard_shortcuts.my_profile": "abrir tu perfil",
|
||||
"keyboard_shortcuts.notifications": "abrir la columna de notificaciones",
|
||||
"keyboard_shortcuts.pinned": "abrir la lista de toots destacados",
|
||||
"keyboard_shortcuts.profile": "abrir el perfil del autor",
|
||||
"keyboard_shortcuts.reply": "para responder",
|
||||
"keyboard_shortcuts.requests": "abrir la lista de peticiones de seguidores",
|
||||
"keyboard_shortcuts.search": "para poner el foco en la búsqueda",
|
||||
"keyboard_shortcuts.start": "abrir la columna \"comenzar\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "mostrar/ocultar texto tras aviso de contenido (CW)",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios",
|
||||
"keyboard_shortcuts.toot": "para comenzar un nuevo toot",
|
||||
"keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda",
|
||||
"keyboard_shortcuts.up": "para ir hacia arriba en la lista",
|
||||
"lightbox.close": "Cerrar",
|
||||
"lightbox.next": "Siguiente",
|
||||
"lightbox.previous": "Anterior",
|
||||
"lightbox.view_context": "Ver contexto",
|
||||
"lists.account.add": "Añadir a lista",
|
||||
"lists.account.remove": "Quitar de lista",
|
||||
"lists.delete": "Borrar lista",
|
||||
"lists.edit": "Editar lista",
|
||||
"lists.edit.submit": "Cambiar título",
|
||||
"lists.new.create": "Añadir lista",
|
||||
"lists.new.title_placeholder": "Título de la nueva lista",
|
||||
"lists.search": "Buscar entre la gente a la que sigues",
|
||||
"lists.subheading": "Tus listas",
|
||||
"load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
|
||||
"loading_indicator.label": "Cargando…",
|
||||
"media_gallery.toggle_visible": "Cambiar visibilidad",
|
||||
"missing_indicator.label": "No encontrado",
|
||||
"missing_indicator.sublabel": "No se encontró este recurso",
|
||||
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
|
||||
"navigation_bar.apps": "Aplicaciones móviles",
|
||||
"navigation_bar.blocks": "Usuarios bloqueados",
|
||||
"navigation_bar.community_timeline": "Historia local",
|
||||
"navigation_bar.compose": "Escribir un nuevo toot",
|
||||
"navigation_bar.direct": "Mensajes directos",
|
||||
"navigation_bar.discover": "Descubrir",
|
||||
"navigation_bar.domain_blocks": "Dominios ocultos",
|
||||
"navigation_bar.edit_profile": "Editar perfil",
|
||||
"navigation_bar.favourites": "Favoritos",
|
||||
"navigation_bar.filters": "Palabras silenciadas",
|
||||
"navigation_bar.follow_requests": "Solicitudes para seguirte",
|
||||
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
|
||||
"navigation_bar.info": "Información adicional",
|
||||
"navigation_bar.keyboard_shortcuts": "Atajos",
|
||||
"navigation_bar.lists": "Listas",
|
||||
"navigation_bar.logout": "Cerrar sesión",
|
||||
"navigation_bar.mutes": "Usuarios silenciados",
|
||||
"keyboard_shortcuts.home": "to open home timeline",
|
||||
"keyboard_shortcuts.hotkey": "Hotkey",
|
||||
"keyboard_shortcuts.legend": "to display this legend",
|
||||
"keyboard_shortcuts.local": "to open local timeline",
|
||||
"keyboard_shortcuts.mention": "to mention author",
|
||||
"keyboard_shortcuts.muted": "to open muted users list",
|
||||
"keyboard_shortcuts.my_profile": "to open your profile",
|
||||
"keyboard_shortcuts.notifications": "to open notifications column",
|
||||
"keyboard_shortcuts.pinned": "to open pinned toots list",
|
||||
"keyboard_shortcuts.profile": "to open author's profile",
|
||||
"keyboard_shortcuts.reply": "to reply",
|
||||
"keyboard_shortcuts.requests": "to open follow requests list",
|
||||
"keyboard_shortcuts.search": "to focus search",
|
||||
"keyboard_shortcuts.start": "to open \"get started\" column",
|
||||
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
|
||||
"keyboard_shortcuts.toot": "to start a brand new toot",
|
||||
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
|
||||
"keyboard_shortcuts.up": "to move up in the list",
|
||||
"lightbox.close": "Close",
|
||||
"lightbox.next": "Next",
|
||||
"lightbox.previous": "Previous",
|
||||
"lightbox.view_context": "View context",
|
||||
"lists.account.add": "Add to list",
|
||||
"lists.account.remove": "Remove from list",
|
||||
"lists.delete": "Delete list",
|
||||
"lists.edit": "Edit list",
|
||||
"lists.edit.submit": "Change title",
|
||||
"lists.new.create": "Add list",
|
||||
"lists.new.title_placeholder": "New list title",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Your lists",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Loading...",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"missing_indicator.label": "Not found",
|
||||
"missing_indicator.sublabel": "This resource could not be found",
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.apps": "Mobile apps",
|
||||
"navigation_bar.blocks": "Blocked users",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
"navigation_bar.compose": "Compose new toot",
|
||||
"navigation_bar.direct": "Direct messages",
|
||||
"navigation_bar.discover": "Discover",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Edit profile",
|
||||
"navigation_bar.favourites": "Favourites",
|
||||
"navigation_bar.filters": "Muted words",
|
||||
"navigation_bar.follow_requests": "Follow requests",
|
||||
"navigation_bar.follows_and_followers": "Follows and followers",
|
||||
"navigation_bar.info": "About this server",
|
||||
"navigation_bar.keyboard_shortcuts": "Hotkeys",
|
||||
"navigation_bar.lists": "Lists",
|
||||
"navigation_bar.logout": "Logout",
|
||||
"navigation_bar.mutes": "Muted users",
|
||||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.pins": "Toots fijados",
|
||||
"navigation_bar.preferences": "Preferencias",
|
||||
"navigation_bar.public_timeline": "Historia federada",
|
||||
"navigation_bar.security": "Seguridad",
|
||||
"notification.and_n_others": "y {count, plural, one {# otro} other {# otros}}",
|
||||
"notification.favourite": "{name} marcó tu estado como favorito",
|
||||
"notification.follow": "{name} te empezó a seguir",
|
||||
"notification.mention": "{name} te ha mencionado",
|
||||
"notification.poll": "Una encuesta en la que has votado ha terminado",
|
||||
"notification.reblog": "{name} ha retooteado tu estado",
|
||||
"notifications.clear": "Limpiar notificaciones",
|
||||
"notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
|
||||
"notifications.column_settings.alert": "Notificaciones de escritorio",
|
||||
"notifications.column_settings.favourite": "Favoritos:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías",
|
||||
"notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
|
||||
"notifications.column_settings.filter_bar.show": "Mostrar",
|
||||
"notifications.column_settings.follow": "Nuevos seguidores:",
|
||||
"notifications.column_settings.mention": "Menciones:",
|
||||
"notifications.column_settings.poll": "Resultados de la votación:",
|
||||
"notifications.column_settings.push": "Notificaciones push",
|
||||
"notifications.column_settings.reblog": "Retoots:",
|
||||
"notifications.column_settings.show": "Mostrar en columna",
|
||||
"notifications.column_settings.sound": "Reproducir sonido",
|
||||
"notifications.filter.all": "Todos",
|
||||
"notifications.filter.boosts": "Retoots",
|
||||
"notifications.filter.favourites": "Favoritos",
|
||||
"notifications.filter.follows": "Seguidores",
|
||||
"notifications.filter.mentions": "Menciones",
|
||||
"notifications.filter.polls": "Resultados de la votación",
|
||||
"notifications.group": "{count} notificaciones",
|
||||
"poll.closed": "Cerrada",
|
||||
"poll.refresh": "Actualizar",
|
||||
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
|
||||
"poll.vote": "Votar",
|
||||
"poll_button.add_poll": "Añadir una encuesta",
|
||||
"poll_button.remove_poll": "Eliminar encuesta",
|
||||
"privacy.change": "Ajustar privacidad",
|
||||
"privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
|
||||
"privacy.direct.short": "Directo",
|
||||
"privacy.private.long": "Sólo mostrar a seguidores",
|
||||
"privacy.private.short": "Privado",
|
||||
"privacy.public.long": "Mostrar en la historia federada",
|
||||
"privacy.public.short": "Público",
|
||||
"privacy.unlisted.long": "No mostrar en la historia federada",
|
||||
"privacy.unlisted.short": "No listado",
|
||||
"regeneration_indicator.label": "Cargando…",
|
||||
"regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!",
|
||||
"navigation_bar.pins": "Pinned toots",
|
||||
"navigation_bar.preferences": "Preferences",
|
||||
"navigation_bar.public_timeline": "Federated timeline",
|
||||
"navigation_bar.security": "Security",
|
||||
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}",
|
||||
"notification.favourite": "{name} favourited your status",
|
||||
"notification.follow": "{name} followed you",
|
||||
"notification.mention": "{name} mentioned you",
|
||||
"notification.poll": "A poll you have voted in has ended",
|
||||
"notification.reblog": "{name} boosted your status",
|
||||
"notifications.clear": "Clear notifications",
|
||||
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
|
||||
"notifications.column_settings.alert": "Desktop notifications",
|
||||
"notifications.column_settings.favourite": "Favourites:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Display all categories",
|
||||
"notifications.column_settings.filter_bar.category": "Quick filter bar",
|
||||
"notifications.column_settings.filter_bar.show": "Show",
|
||||
"notifications.column_settings.follow": "New followers:",
|
||||
"notifications.column_settings.mention": "Mentions:",
|
||||
"notifications.column_settings.poll": "Poll results:",
|
||||
"notifications.column_settings.push": "Push notifications",
|
||||
"notifications.column_settings.reblog": "Boosts:",
|
||||
"notifications.column_settings.show": "Show in column",
|
||||
"notifications.column_settings.sound": "Play sound",
|
||||
"notifications.filter.all": "All",
|
||||
"notifications.filter.boosts": "Boosts",
|
||||
"notifications.filter.favourites": "Favourites",
|
||||
"notifications.filter.follows": "Follows",
|
||||
"notifications.filter.mentions": "Mentions",
|
||||
"notifications.filter.polls": "Poll results",
|
||||
"notifications.group": "{count} notifications",
|
||||
"poll.closed": "Closed",
|
||||
"poll.refresh": "Refresh",
|
||||
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
|
||||
"poll.vote": "Vote",
|
||||
"poll_button.add_poll": "Add a poll",
|
||||
"poll_button.remove_poll": "Remove poll",
|
||||
"privacy.change": "Adjust status privacy",
|
||||
"privacy.direct.long": "Post to mentioned users only",
|
||||
"privacy.direct.short": "Direct",
|
||||
"privacy.private.long": "Post to followers only",
|
||||
"privacy.private.short": "Followers-only",
|
||||
"privacy.public.long": "Post to public timelines",
|
||||
"privacy.public.short": "Public",
|
||||
"privacy.unlisted.long": "Do not show in public timelines",
|
||||
"privacy.unlisted.short": "Unlisted",
|
||||
"regeneration_indicator.label": "Loading…",
|
||||
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.just_now": "ahora",
|
||||
"relative_time.just_now": "now",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"reply_indicator.cancel": "Cancelar",
|
||||
"report.forward": "Reenviar a {target}",
|
||||
"report.forward_hint": "Esta cuenta es de otro servidor. ¿Enviar una copia anonimizada del informe allí también?",
|
||||
"report.hint": "El informe se enviará a los moderadores de tu instancia. Puedes proporcionar una explicación de por qué informas sobre esta cuenta a continuación:",
|
||||
"report.placeholder": "Comentarios adicionales",
|
||||
"report.submit": "Publicar",
|
||||
"report.target": "Reportando",
|
||||
"search.placeholder": "Buscar",
|
||||
"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",
|
||||
"search_popout.tips.status": "estado",
|
||||
"search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag",
|
||||
"search_popout.tips.user": "usuario",
|
||||
"search_results.accounts": "Gente",
|
||||
"search_results.hashtags": "Etiquetas",
|
||||
"reply_indicator.cancel": "Cancel",
|
||||
"report.forward": "Forward to {target}",
|
||||
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
|
||||
"report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
|
||||
"report.placeholder": "Additional comments",
|
||||
"report.submit": "Submit",
|
||||
"report.target": "Report {target}",
|
||||
"search.placeholder": "Search",
|
||||
"search_popout.search_format": "Advanced search format",
|
||||
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
|
||||
"search_popout.tips.hashtag": "hashtag",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
||||
"search_popout.tips.user": "user",
|
||||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.",
|
||||
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
|
||||
"status.admin_account": "Abrir interfaz de moderación para @{name}",
|
||||
"status.admin_status": "Abrir este estado en la interfaz de moderación",
|
||||
"status.block": "Bloquear a @{name}",
|
||||
"status.cancel_reblog_private": "Des-impulsar",
|
||||
"status.cannot_reblog": "Este toot no puede retootearse",
|
||||
"status.copy": "Copiar enlace al estado",
|
||||
"status.delete": "Borrar",
|
||||
"status.detailed_status": "Vista de conversación detallada",
|
||||
"status.direct": "Mensaje directo a @{name}",
|
||||
"status.embed": "Incrustado",
|
||||
"status.favourite": "Favorito",
|
||||
"status.filtered": "Filtrado",
|
||||
"status.load_more": "Cargar más",
|
||||
"status.media_hidden": "Contenido multimedia oculto",
|
||||
"status.mention": "Mencionar",
|
||||
"status.more": "Más",
|
||||
"status.mute": "Silenciar @{name}",
|
||||
"status.mute_conversation": "Silenciar conversación",
|
||||
"status.open": "Expandir estado",
|
||||
"status.pin": "Fijar",
|
||||
"status.pinned": "Toot fijado",
|
||||
"status.read_more": "Leer más",
|
||||
"status.reblog": "Retootear",
|
||||
"status.reblog_private": "Implusar a la audiencia original",
|
||||
"status.reblogged_by": "Retooteado por {name}",
|
||||
"status.reblogs.empty": "Nadie impulsó este toot todavía. Cuando alguien lo haga, aparecerá aqui.",
|
||||
"status.redraft": "Borrar y volver a borrador",
|
||||
"status.reply": "Responder",
|
||||
"status.replyAll": "Responder al hilo",
|
||||
"status.report": "Reportar",
|
||||
"status.sensitive_warning": "Contenido sensible",
|
||||
"status.share": "Compartir",
|
||||
"status.show_less": "Mostrar menos",
|
||||
"status.show_less_all": "Mostrar menos para todo",
|
||||
"status.show_more": "Mostrar más",
|
||||
"status.show_more_all": "Mostrar más para todo",
|
||||
"status.show_thread": "Ver hilo",
|
||||
"status.uncached_media_warning": "No disponible",
|
||||
"status.unmute_conversation": "Dejar de silenciar conversación",
|
||||
"status.unpin": "Dejar de fijar",
|
||||
"suggestions.dismiss": "Descartar sugerencia",
|
||||
"suggestions.header": "Es posible que te interese…",
|
||||
"tabs_bar.federated_timeline": "Federado",
|
||||
"tabs_bar.home": "Inicio",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
"status.cancel_reblog_private": "Unboost",
|
||||
"status.cannot_reblog": "This post cannot be boosted",
|
||||
"status.copy": "Copy link to status",
|
||||
"status.delete": "Delete",
|
||||
"status.detailed_status": "Detailed conversation view",
|
||||
"status.direct": "Direct message @{name}",
|
||||
"status.embed": "Embed",
|
||||
"status.favourite": "Favourite",
|
||||
"status.filtered": "Filtered",
|
||||
"status.load_more": "Load more",
|
||||
"status.media_hidden": "Media hidden",
|
||||
"status.mention": "Mention @{name}",
|
||||
"status.more": "More",
|
||||
"status.mute": "Mute @{name}",
|
||||
"status.mute_conversation": "Mute conversation",
|
||||
"status.open": "Expand this status",
|
||||
"status.pin": "Pin on profile",
|
||||
"status.pinned": "Pinned toot",
|
||||
"status.read_more": "Read more",
|
||||
"status.reblog": "Boost",
|
||||
"status.reblog_private": "Boost to original audience",
|
||||
"status.reblogged_by": "{name} boosted",
|
||||
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
|
||||
"status.redraft": "Delete & re-draft",
|
||||
"status.reply": "Reply",
|
||||
"status.replyAll": "Reply to thread",
|
||||
"status.report": "Report @{name}",
|
||||
"status.sensitive_warning": "Sensitive content",
|
||||
"status.share": "Share",
|
||||
"status.show_less": "Show less",
|
||||
"status.show_less_all": "Show less for all",
|
||||
"status.show_more": "Show more",
|
||||
"status.show_more_all": "Show more for all",
|
||||
"status.show_thread": "Show thread",
|
||||
"status.uncached_media_warning": "Not available",
|
||||
"status.unmute_conversation": "Unmute conversation",
|
||||
"status.unpin": "Unpin from profile",
|
||||
"suggestions.dismiss": "Dismiss suggestion",
|
||||
"suggestions.header": "You might be interested in…",
|
||||
"tabs_bar.federated_timeline": "Federated",
|
||||
"tabs_bar.home": "Home",
|
||||
"tabs_bar.local_timeline": "Local",
|
||||
"tabs_bar.notifications": "Notificaciones",
|
||||
"tabs_bar.search": "Buscar",
|
||||
"time_remaining.days": "{number, plural, one {# día restante} other {# días restantes}}",
|
||||
"time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}",
|
||||
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
|
||||
"time_remaining.moments": "Momentos restantes",
|
||||
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando",
|
||||
"trends.trending_now": "Tendencia ahora",
|
||||
"ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
|
||||
"upload_area.title": "Arrastra y suelta para subir",
|
||||
"upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "Límite de subida de archivos excedido.",
|
||||
"upload_error.poll": "Subida de archivos no permitida con encuestas.",
|
||||
"upload_form.description": "Describir para los usuarios con dificultad visual",
|
||||
"upload_form.edit": "Editar",
|
||||
"upload_form.undo": "Borrar",
|
||||
"upload_modal.analyzing_picture": "Analizando imagen…",
|
||||
"upload_modal.apply": "Aplicar",
|
||||
"upload_modal.description_placeholder": "Un rápido zorro marrón salta sobre el perro perezoso",
|
||||
"upload_modal.detect_text": "Detectar texto de la imagen",
|
||||
"upload_modal.edit_media": "Editar multimedia",
|
||||
"upload_modal.hint": "Haga clic o arrastre el círculo en la vista previa para elegir el punto focal que siempre estará a la vista en todas las miniaturas.",
|
||||
"upload_modal.preview_label": "Vista previa ({ratio})",
|
||||
"upload_progress.label": "Subiendo…",
|
||||
"video.close": "Cerrar video",
|
||||
"video.exit_fullscreen": "Salir de pantalla completa",
|
||||
"video.expand": "Expandir vídeo",
|
||||
"video.fullscreen": "Pantalla completa",
|
||||
"video.hide": "Ocultar vídeo",
|
||||
"video.mute": "Silenciar sonido",
|
||||
"video.pause": "Pausar",
|
||||
"video.play": "Reproducir",
|
||||
"video.unmute": "Dejar de silenciar sonido"
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"tabs_bar.search": "Search",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
"time_remaining.moments": "Moments remaining",
|
||||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"trends.trending_now": "Trending now",
|
||||
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
|
||||
"upload_area.title": "Drag & drop to upload",
|
||||
"upload_button.label": "Add media ({formats})",
|
||||
"upload_error.limit": "File upload limit exceeded.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_form.description": "Describe for the visually impaired",
|
||||
"upload_form.edit": "Edit",
|
||||
"upload_form.undo": "Delete",
|
||||
"upload_modal.analyzing_picture": "Analyzing picture…",
|
||||
"upload_modal.apply": "Apply",
|
||||
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
|
||||
"upload_modal.detect_text": "Detect text from picture",
|
||||
"upload_modal.edit_media": "Edit media",
|
||||
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
|
||||
"upload_modal.preview_label": "Preview ({ratio})",
|
||||
"upload_progress.label": "Uploading...",
|
||||
"video.close": "Close video",
|
||||
"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"
|
||||
}
|
||||
|
@ -39,7 +39,7 @@
|
||||
"account.unmute": "Ne plus masquer @{name}",
|
||||
"account.unmute_notifications": "Réactiver les notifications de @{name}",
|
||||
"alert.rate_limited.message": "Veuillez réessayer après {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Taux limité",
|
||||
"alert.rate_limited.title": "Débit limité",
|
||||
"alert.unexpected.message": "Une erreur inattendue s’est produite.",
|
||||
"alert.unexpected.title": "Oups !",
|
||||
"autosuggest_hashtag.per_week": "{count} par semaine",
|
||||
@ -70,12 +70,12 @@
|
||||
"column_header.moveRight_settings": "Déplacer la colonne vers la droite",
|
||||
"column_header.pin": "Épingler",
|
||||
"column_header.show_settings": "Afficher les paramètres",
|
||||
"column_header.unpin": "Retirer",
|
||||
"column_header.unpin": "Désépingler",
|
||||
"column_subheading.settings": "Paramètres",
|
||||
"community.column_settings.media_only": "Média uniquement",
|
||||
"compose_form.direct_message_warning": "Ce pouet sera uniquement envoyé aux personnes mentionnées. Cependant, l’administration de votre instance et des instances réceptrices pourront inspecter ce message.",
|
||||
"compose_form.direct_message_warning_learn_more": "En savoir plus",
|
||||
"compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur \"non listé\". Seuls les pouets avec une visibilité \"publique\" peuvent être recherchés par hashtag.",
|
||||
"compose_form.direct_message_warning_learn_more": "Plus d'informations",
|
||||
"compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par mot-clé car sa visibilité est réglée sur \"non listé\". Seuls les pouets avec une visibilité \"publique\" peuvent être recherchés par mot-clé.",
|
||||
"compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
|
||||
"compose_form.lock_disclaimer.lock": "verrouillé",
|
||||
"compose_form.placeholder": "Qu’avez-vous en tête ?",
|
||||
@ -87,7 +87,7 @@
|
||||
"compose_form.publish_loud": "{publish} !",
|
||||
"compose_form.sensitive.hide": "Marquer le média comme sensible",
|
||||
"compose_form.sensitive.marked": "Média marqué comme sensible",
|
||||
"compose_form.sensitive.unmarked": "Média non marqué comme sensible",
|
||||
"compose_form.sensitive.unmarked": "Le média n'est pas marqué comme sensible",
|
||||
"compose_form.spoiler.marked": "Le texte est caché derrière un avertissement",
|
||||
"compose_form.spoiler.unmarked": "Le texte n’est pas caché",
|
||||
"compose_form.spoiler_placeholder": "Écrivez ici votre avertissement",
|
||||
@ -104,7 +104,7 @@
|
||||
"confirmations.logout.confirm": "Déconnexion",
|
||||
"confirmations.logout.message": "Êtes-vous sûr de vouloir vous déconnecter ?",
|
||||
"confirmations.mute.confirm": "Masquer",
|
||||
"confirmations.mute.message": "Confirmez-vous le masquage de {name} ?",
|
||||
"confirmations.mute.message": "Êtes-vous sûr·e de vouloir masquer {name} ?",
|
||||
"confirmations.redraft.confirm": "Effacer et ré-écrire",
|
||||
"confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer ce statut pour le ré-écrire ? Ses partages ainsi que ses mises en favori seront perdu·e·s et ses réponses seront orphelines.",
|
||||
"confirmations.reply.confirm": "Répondre",
|
||||
@ -151,7 +151,7 @@
|
||||
"empty_column.lists": "Vous n’avez pas encore de liste. Lorsque vous en créerez une, elle apparaîtra ici.",
|
||||
"empty_column.mutes": "Vous n’avez pas encore mis d'utilisateur·rice·s en silence.",
|
||||
"empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour débuter la conversation.",
|
||||
"empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes d’autres instances pour remplir le fil public",
|
||||
"empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes d’autres instances pour le remplir",
|
||||
"follow_request.authorize": "Accepter",
|
||||
"follow_request.reject": "Rejeter",
|
||||
"getting_started.developers": "Développeur·euse·s",
|
||||
@ -166,12 +166,12 @@
|
||||
"hashtag.column_header.tag_mode.any": "ou {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "sans {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "Aucune suggestion trouvée",
|
||||
"hashtag.column_settings.select.placeholder": "Ajouter des hashtags…",
|
||||
"hashtag.column_settings.select.placeholder": "Ajouter des mots-clés…",
|
||||
"hashtag.column_settings.tag_mode.all": "Tous ces éléments",
|
||||
"hashtag.column_settings.tag_mode.any": "Au moins un de ces éléments",
|
||||
"hashtag.column_settings.tag_mode.none": "Aucun de ces éléments",
|
||||
"hashtag.column_settings.tag_toggle": "Inclure des tags additionnels dans cette colonne",
|
||||
"home.column_settings.basic": "Basique",
|
||||
"hashtag.column_settings.tag_toggle": "Inclure des mots-clés additionnels dans cette colonne",
|
||||
"home.column_settings.basic": "Base",
|
||||
"home.column_settings.show_reblogs": "Afficher les partages",
|
||||
"home.column_settings.show_replies": "Afficher les réponses",
|
||||
"home.column_settings.update_live": "Mettre à jour en temps réel",
|
||||
@ -199,7 +199,7 @@
|
||||
"keyboard_shortcuts.blocked": "pour ouvrir une liste d’utilisateur·rice·s bloqué·e·s",
|
||||
"keyboard_shortcuts.boost": "pour partager",
|
||||
"keyboard_shortcuts.column": "pour focaliser un statut dans l’une des colonnes",
|
||||
"keyboard_shortcuts.compose": "pour centrer la zone de rédaction",
|
||||
"keyboard_shortcuts.compose": "pour focaliser la zone de rédaction",
|
||||
"keyboard_shortcuts.description": "Description",
|
||||
"keyboard_shortcuts.direct": "pour ouvrir une colonne des messages directs",
|
||||
"keyboard_shortcuts.down": "pour descendre dans la liste",
|
||||
|
@ -4,7 +4,7 @@
|
||||
"account.block": "@{name} letiltása",
|
||||
"account.block_domain": "Minden elrejtése innen: {domain}",
|
||||
"account.blocked": "Letiltva",
|
||||
"account.cancel_follow_request": "Cancel follow request",
|
||||
"account.cancel_follow_request": "Követési kérelem törlése",
|
||||
"account.direct": "Közvetlen üzenet @{name} számára",
|
||||
"account.domain_blocked": "Rejtett domain",
|
||||
"account.edit_profile": "Profil szerkesztése",
|
||||
@ -16,7 +16,7 @@
|
||||
"account.follows.empty": "Ez a felhasználó még senkit sem követ.",
|
||||
"account.follows_you": "Követ téged",
|
||||
"account.hide_reblogs": "@{name} megtolásainak némítása",
|
||||
"account.last_status": "Last active",
|
||||
"account.last_status": "Utoljára aktív",
|
||||
"account.link_verified_on": "A linket ellenőriztük: {date}",
|
||||
"account.locked_info": "Ez a fiók zárt. A tulaj engedélyezi, ki követheti őt.",
|
||||
"account.media": "Média",
|
||||
@ -25,7 +25,7 @@
|
||||
"account.mute": "@{name} némítása",
|
||||
"account.mute_notifications": "@{name} értesítéseinek némítása",
|
||||
"account.muted": "Némítva",
|
||||
"account.never_active": "Never",
|
||||
"account.never_active": "Soha",
|
||||
"account.posts": "Tülkölés",
|
||||
"account.posts_with_replies": "Tülkölés válaszokkal",
|
||||
"account.report": "@{name} jelentése",
|
||||
@ -38,11 +38,11 @@
|
||||
"account.unfollow": "Követés vége",
|
||||
"account.unmute": "@{name} némítás feloldása",
|
||||
"account.unmute_notifications": "@{name} némított értesítéseinek feloldása",
|
||||
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Rate limited",
|
||||
"alert.rate_limited.message": "Kérlek, próbáld újra {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Forgalomkorlátozás",
|
||||
"alert.unexpected.message": "Váratlan hiba történt.",
|
||||
"alert.unexpected.title": "Hoppá!",
|
||||
"autosuggest_hashtag.per_week": "{count} per week",
|
||||
"autosuggest_hashtag.per_week": "{count}/hét",
|
||||
"boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}",
|
||||
"bundle_column_error.body": "Hiba történt a komponens betöltése közben.",
|
||||
"bundle_column_error.retry": "Próbáld újra",
|
||||
@ -53,7 +53,7 @@
|
||||
"column.blocks": "Letiltott felhasználók",
|
||||
"column.community": "Helyi idővonal",
|
||||
"column.direct": "Közvetlen üzenetek",
|
||||
"column.directory": "Browse profiles",
|
||||
"column.directory": "Profilok böngészése",
|
||||
"column.domain_blocks": "Rejtett domainek",
|
||||
"column.favourites": "Kedvencek",
|
||||
"column.follow_requests": "Követési kérelmek",
|
||||
@ -63,7 +63,7 @@
|
||||
"column.notifications": "Értesítések",
|
||||
"column.pins": "Kitűzött tülkök",
|
||||
"column.public": "Nyilvános idővonal",
|
||||
"column.status": "Toot",
|
||||
"column.status": "Tülk",
|
||||
"column_back_button.label": "Vissza",
|
||||
"column_header.hide_settings": "Beállítások elrejtése",
|
||||
"column_header.moveLeft_settings": "Oszlop elmozdítása balra",
|
||||
@ -101,8 +101,8 @@
|
||||
"confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?",
|
||||
"confirmations.domain_block.confirm": "Teljes domain elrejtése",
|
||||
"confirmations.domain_block.message": "Egészen biztos, hogy le szeretnéd tiltani a teljes {domain}-t? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se idővonalakon, se értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.",
|
||||
"confirmations.logout.confirm": "Log out",
|
||||
"confirmations.logout.message": "Are you sure you want to log out?",
|
||||
"confirmations.logout.confirm": "Kijelentkezés",
|
||||
"confirmations.logout.message": "Biztosan ki akar jelentkezni?",
|
||||
"confirmations.mute.confirm": "Némítás",
|
||||
"confirmations.mute.message": "Biztos, hogy némítani szeretnéd {name}?",
|
||||
"confirmations.redraft.confirm": "Törlés és újraírás",
|
||||
@ -111,14 +111,14 @@
|
||||
"confirmations.reply.message": "Ha most válaszolsz, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
|
||||
"confirmations.unfollow.confirm": "Követés visszavonása",
|
||||
"confirmations.unfollow.message": "Biztos, hogy vissza szeretnéd vonni {name} követését?",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.mark_as_read": "Mark as read",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"directory.federated": "From known fediverse",
|
||||
"directory.local": "From {domain} only",
|
||||
"directory.new_arrivals": "New arrivals",
|
||||
"directory.recently_active": "Recently active",
|
||||
"conversation.delete": "Beszélgetés törlése",
|
||||
"conversation.mark_as_read": "Megjelölés olvasottként",
|
||||
"conversation.open": "Beszélgetés megtekintése",
|
||||
"conversation.with": "{names}-el/al",
|
||||
"directory.federated": "Az ismert fediverzumból",
|
||||
"directory.local": "Csak {domain}-ból/ből",
|
||||
"directory.new_arrivals": "Új csatlakozók",
|
||||
"directory.recently_active": "Nemrég aktív",
|
||||
"embed.instructions": "Ágyazd be ezt a tülköt a weboldaladba az alábbi kód kimásolásával.",
|
||||
"embed.preview": "Így fog kinézni:",
|
||||
"emoji_button.activity": "Aktivitás",
|
||||
@ -174,7 +174,7 @@
|
||||
"home.column_settings.basic": "Alapértelmezések",
|
||||
"home.column_settings.show_reblogs": "Megtolások mutatása",
|
||||
"home.column_settings.show_replies": "Válaszok mutatása",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"home.column_settings.update_live": "Frissítés valós időben",
|
||||
"intervals.full.days": "{number, plural, one {# nap} other {# nap}}",
|
||||
"intervals.full.hours": "{number, plural, one {# óra} other {# óra}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# perc} other {# perc}}",
|
||||
@ -268,7 +268,7 @@
|
||||
"navigation_bar.preferences": "Beállítások",
|
||||
"navigation_bar.public_timeline": "Föderációs idővonal",
|
||||
"navigation_bar.security": "Biztonság",
|
||||
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}",
|
||||
"notification.and_n_others": "és {count, plural, one {# másik} other {# másik}}",
|
||||
"notification.favourite": "{name} kedvencnek jelölte egy tülködet",
|
||||
"notification.follow": "{name} követ téged",
|
||||
"notification.mention": "{name} megemlített",
|
||||
@ -373,7 +373,7 @@
|
||||
"status.show_more": "Többet",
|
||||
"status.show_more_all": "Többet mindenhol",
|
||||
"status.show_thread": "Szál mutatása",
|
||||
"status.uncached_media_warning": "Not available",
|
||||
"status.uncached_media_warning": "Nem elérhető",
|
||||
"status.unmute_conversation": "Beszélgetés némításának kikapcsolása",
|
||||
"status.unpin": "Kitűzés eltávolítása a profilodról",
|
||||
"suggestions.dismiss": "Javaslat elvetése",
|
||||
@ -389,22 +389,22 @@
|
||||
"time_remaining.moments": "Pillanatok vannak hátra",
|
||||
"time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {résztvevő} other {résztvevő}} beszélget",
|
||||
"trends.trending_now": "Trending now",
|
||||
"trends.trending_now": "Most trendi",
|
||||
"ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Mastodon-t.",
|
||||
"upload_area.title": "Húzd ide a feltöltéshez",
|
||||
"upload_button.label": "Média hozzáadása (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "Túllépted a fájl feltöltési limitet.",
|
||||
"upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
|
||||
"upload_form.description": "Leírás látáskorlátozottak számára",
|
||||
"upload_form.edit": "Edit",
|
||||
"upload_form.edit": "Szerkesztés",
|
||||
"upload_form.undo": "Mégsem",
|
||||
"upload_modal.analyzing_picture": "Analyzing picture…",
|
||||
"upload_modal.apply": "Apply",
|
||||
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
|
||||
"upload_modal.detect_text": "Detect text from picture",
|
||||
"upload_modal.edit_media": "Edit media",
|
||||
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
|
||||
"upload_modal.preview_label": "Preview ({ratio})",
|
||||
"upload_modal.analyzing_picture": "Kép elemzése…",
|
||||
"upload_modal.apply": "Alkalmazás",
|
||||
"upload_modal.description_placeholder": "A gyors, barna róka átugrik a lusta kutya fölött",
|
||||
"upload_modal.detect_text": "Szöveg felismerése a képről",
|
||||
"upload_modal.edit_media": "Média szerkesztése",
|
||||
"upload_modal.hint": "Kattints vagy húzd a kört az előnézetben arra a fókuszpontra, mely minden megjelenített bélyegképen látható kell, legyen.",
|
||||
"upload_modal.preview_label": "Előnézet ({ratio})",
|
||||
"upload_progress.label": "Feltöltés...",
|
||||
"video.close": "Videó bezárása",
|
||||
"video.exit_fullscreen": "Kilépés teljes képernyőből",
|
||||
|
@ -53,7 +53,7 @@
|
||||
"column.blocks": "ブロックしたユーザー",
|
||||
"column.community": "ローカルタイムライン",
|
||||
"column.direct": "ダイレクトメッセージ",
|
||||
"column.directory": "プロフィールを見る",
|
||||
"column.directory": "ディレクトリ",
|
||||
"column.domain_blocks": "非表示にしたドメイン",
|
||||
"column.favourites": "お気に入り",
|
||||
"column.follow_requests": "フォローリクエスト",
|
||||
@ -114,7 +114,7 @@
|
||||
"conversation.delete": "このやりとりを削除",
|
||||
"conversation.mark_as_read": "既読にする",
|
||||
"conversation.open": "会話を表示する",
|
||||
"conversation.with": "{names} を付ける",
|
||||
"conversation.with": "{names}",
|
||||
"directory.federated": "既知の連合より",
|
||||
"directory.local": "{domain} のみ",
|
||||
"directory.new_arrivals": "新着順",
|
||||
@ -268,7 +268,7 @@
|
||||
"navigation_bar.preferences": "ユーザー設定",
|
||||
"navigation_bar.public_timeline": "連合タイムライン",
|
||||
"navigation_bar.security": "セキュリティ",
|
||||
"notification.and_n_others": "と、その他 {count, plural, one {#} other {#}}",
|
||||
"notification.and_n_others": "と、他 {count} 件",
|
||||
"notification.favourite": "{name}さんがあなたのトゥートをお気に入りに登録しました",
|
||||
"notification.follow": "{name}さんにフォローされました",
|
||||
"notification.mention": "{name}さんがあなたに返信しました",
|
||||
|
@ -111,10 +111,10 @@
|
||||
"confirmations.reply.message": "Door nu te reageren overschrijf je de toot die je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?",
|
||||
"confirmations.unfollow.confirm": "Ontvolgen",
|
||||
"confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.mark_as_read": "Mark as read",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"conversation.delete": "Gesprek verwijderen",
|
||||
"conversation.mark_as_read": "Als gelezen markeren",
|
||||
"conversation.open": "Gesprek tonen",
|
||||
"conversation.with": "Met {names}",
|
||||
"directory.federated": "Fediverse (wat bekend is)",
|
||||
"directory.local": "Alleen {domain}",
|
||||
"directory.new_arrivals": "Nieuwe accounts",
|
||||
|
@ -16,7 +16,7 @@
|
||||
"account.follows.empty": "Esse usuário não segue ninguém no momento.",
|
||||
"account.follows_you": "Segue você",
|
||||
"account.hide_reblogs": "Esconder compartilhamentos de @{name}",
|
||||
"account.last_status": "Last active",
|
||||
"account.last_status": "Última atividade",
|
||||
"account.link_verified_on": "A posse desse link foi verificada em {date}",
|
||||
"account.locked_info": "Essa conta está trancada. Se você a seguir sua solicitação será revisada manualmente.",
|
||||
"account.media": "Mídia",
|
||||
@ -53,7 +53,7 @@
|
||||
"column.blocks": "Usuários bloqueados",
|
||||
"column.community": "Local",
|
||||
"column.direct": "Mensagens diretas",
|
||||
"column.directory": "Browse profiles",
|
||||
"column.directory": "Explorar perfis",
|
||||
"column.domain_blocks": "Domínios escondidos",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.follow_requests": "Seguidores pendentes",
|
||||
@ -63,7 +63,7 @@
|
||||
"column.notifications": "Notificações",
|
||||
"column.pins": "Postagens fixadas",
|
||||
"column.public": "Global",
|
||||
"column.status": "Toot",
|
||||
"column.status": "Publicar",
|
||||
"column_back_button.label": "Voltar",
|
||||
"column_header.hide_settings": "Esconder configurações",
|
||||
"column_header.moveLeft_settings": "Mover coluna para a esquerda",
|
||||
@ -101,8 +101,8 @@
|
||||
"confirmations.delete_list.message": "Você tem certeza que quer deletar permanentemente a lista?",
|
||||
"confirmations.domain_block.confirm": "Esconder o domínio inteiro",
|
||||
"confirmations.domain_block.message": "Você quer mesmo bloquear {domain} inteiro? Na maioria dos casos, silenciar ou bloquear alguns usuários é o suficiente e o recomendado. Você não vai ver conteúdo desse domínio em nenhuma das timelines públicas ou nas suas notificações. Seus seguidores desse domínio serão removidos.",
|
||||
"confirmations.logout.confirm": "Log out",
|
||||
"confirmations.logout.message": "Are you sure you want to log out?",
|
||||
"confirmations.logout.confirm": "Sair",
|
||||
"confirmations.logout.message": "Tem certeza que deseja encerrar a sessão?",
|
||||
"confirmations.mute.confirm": "Silenciar",
|
||||
"confirmations.mute.message": "Você tem certeza de que quer silenciar {name}?",
|
||||
"confirmations.redraft.confirm": "Apagar & usar como rascunho",
|
||||
@ -113,11 +113,11 @@
|
||||
"confirmations.unfollow.message": "Você tem certeza de que quer deixar de seguir {name}?",
|
||||
"conversation.delete": "Excluir conversa",
|
||||
"conversation.mark_as_read": "Marcar como lida",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"conversation.open": "Ver conversa",
|
||||
"conversation.with": "Com {names}",
|
||||
"directory.federated": "De fediverso conhecido",
|
||||
"directory.local": "From {domain} only",
|
||||
"directory.new_arrivals": "New arrivals",
|
||||
"directory.new_arrivals": "Acabaram de chegar",
|
||||
"directory.recently_active": "Reverta esta propriedade para seu valor padrão",
|
||||
"embed.instructions": "Incorpore esta postagem em seu site copiando o código abaixo.",
|
||||
"embed.preview": "Aqui está uma previsão de como ficará:",
|
||||
@ -174,7 +174,7 @@
|
||||
"home.column_settings.basic": "Básico",
|
||||
"home.column_settings.show_reblogs": "Mostrar compartilhamentos",
|
||||
"home.column_settings.show_replies": "Mostrar as respostas",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"home.column_settings.update_live": "Atualizar em tempo real",
|
||||
"intervals.full.days": "{number, plural, one {# dia} other {# dias}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
|
||||
@ -240,7 +240,7 @@
|
||||
"lists.new.title_placeholder": "Novo título da lista",
|
||||
"lists.search": "Procurar entre as pessoas que você segue",
|
||||
"lists.subheading": "Suas listas",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"load_pending": "{count, plural, one {# novo item} other {# novos items}}",
|
||||
"loading_indicator.label": "Carregando...",
|
||||
"media_gallery.toggle_visible": "Esconder/Mostrar",
|
||||
"missing_indicator.label": "Não encontrado",
|
||||
@ -268,7 +268,7 @@
|
||||
"navigation_bar.preferences": "Preferências",
|
||||
"navigation_bar.public_timeline": "Global",
|
||||
"navigation_bar.security": "Segurança",
|
||||
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}",
|
||||
"notification.and_n_others": "and {count, plural, one {# outro} other {# outros}}",
|
||||
"notification.favourite": "{name} adicionou a sua postagem aos favoritos",
|
||||
"notification.follow": "{name} te seguiu",
|
||||
"notification.mention": "{name} te mencionou",
|
||||
@ -334,7 +334,7 @@
|
||||
"search_results.accounts": "Pessoas",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.statuses_fts_disabled": "Pesquisar toots por seu conteúdo não está habilitado neste servidor Mastodon.",
|
||||
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
|
||||
"status.admin_account": "Abrir interface de moderação para @{name}",
|
||||
"status.admin_status": "Abrir esse status na interface de moderação",
|
||||
@ -389,18 +389,18 @@
|
||||
"time_remaining.moments": "Momentos restantes",
|
||||
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando sobre",
|
||||
"trends.trending_now": "Trending now",
|
||||
"trends.trending_now": "Em alta no momento",
|
||||
"ui.beforeunload": "Seu rascunho será perdido se você sair do Mastodon.",
|
||||
"upload_area.title": "Arraste e solte para enviar",
|
||||
"upload_button.label": "Adicionar mídia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "Limite de envio de arquivos excedido.",
|
||||
"upload_error.poll": "Envio de arquivos não é permitido com enquetes.",
|
||||
"upload_form.description": "Descreva a imagem para deficientes visuais",
|
||||
"upload_form.edit": "Edit",
|
||||
"upload_form.edit": "Editar",
|
||||
"upload_form.undo": "Remover",
|
||||
"upload_modal.analyzing_picture": "Analisando imagem…",
|
||||
"upload_modal.apply": "Apply",
|
||||
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
|
||||
"upload_modal.apply": "Aplicar",
|
||||
"upload_modal.description_placeholder": "Grave e cabisbaixo, o filho justo zelava pela querida mãe doente",
|
||||
"upload_modal.detect_text": "Detectar texto da imagem",
|
||||
"upload_modal.edit_media": "Edit media",
|
||||
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
|
||||
|
@ -111,10 +111,10 @@
|
||||
"confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?",
|
||||
"confirmations.unfollow.confirm": "Nesleduj",
|
||||
"confirmations.unfollow.message": "Naozaj chceš prestať sledovať {name}?",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.mark_as_read": "Mark as read",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"conversation.delete": "Vymaž konverzáciu",
|
||||
"conversation.mark_as_read": "Označ za prečítané",
|
||||
"conversation.open": "Ukáž konverzáciu",
|
||||
"conversation.with": "S {names}",
|
||||
"directory.federated": "Zo známého fedivesmíru",
|
||||
"directory.local": "Iba z {domain}",
|
||||
"directory.new_arrivals": "Nové príchody",
|
||||
|
@ -63,7 +63,7 @@
|
||||
"column.notifications": "การแจ้งเตือน",
|
||||
"column.pins": "โพสต์ที่ปักหมุด",
|
||||
"column.public": "เส้นเวลาที่ติดต่อกับภายนอก",
|
||||
"column.status": "Toot",
|
||||
"column.status": "โพสต์",
|
||||
"column_back_button.label": "ย้อนกลับ",
|
||||
"column_header.hide_settings": "ซ่อนการตั้งค่า",
|
||||
"column_header.moveLeft_settings": "ย้ายคอลัมน์ไปทางซ้าย",
|
||||
@ -111,12 +111,12 @@
|
||||
"confirmations.reply.message": "การตอบกลับตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
|
||||
"confirmations.unfollow.confirm": "เลิกติดตาม",
|
||||
"confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?",
|
||||
"conversation.delete": "Delete conversation",
|
||||
"conversation.mark_as_read": "Mark as read",
|
||||
"conversation.open": "View conversation",
|
||||
"conversation.with": "With {names}",
|
||||
"directory.federated": "From known fediverse",
|
||||
"directory.local": "From {domain} only",
|
||||
"conversation.delete": "ลบการสนทนา",
|
||||
"conversation.mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว",
|
||||
"conversation.open": "ดูการสนทนา",
|
||||
"conversation.with": "กับ {names}",
|
||||
"directory.federated": "จากเฟดิเวิร์สที่รู้จัก",
|
||||
"directory.local": "จาก {domain} เท่านั้น",
|
||||
"directory.new_arrivals": "New arrivals",
|
||||
"directory.recently_active": "Recently active",
|
||||
"embed.instructions": "ฝังสถานะนี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง",
|
||||
@ -174,7 +174,7 @@
|
||||
"home.column_settings.basic": "พื้นฐาน",
|
||||
"home.column_settings.show_reblogs": "แสดงการดัน",
|
||||
"home.column_settings.show_replies": "แสดงการตอบกลับ",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"home.column_settings.update_live": "อัปเดตตามเวลาจริง",
|
||||
"intervals.full.days": "{number, plural, other {# วัน}}",
|
||||
"intervals.full.hours": "{number, plural, other {# ชั่วโมง}}",
|
||||
"intervals.full.minutes": "{number, plural, other {# นาที}}",
|
||||
|
@ -103,10 +103,13 @@ function clearAll(state) {
|
||||
});
|
||||
};
|
||||
|
||||
function appendMedia(state, media) {
|
||||
function appendMedia(state, media, file) {
|
||||
const prevSize = state.get('media_attachments').size;
|
||||
|
||||
return state.withMutations(map => {
|
||||
if (media.get('type') === 'image') {
|
||||
media = media.set('file', file);
|
||||
}
|
||||
map.update('media_attachments', list => list.push(media));
|
||||
map.set('is_uploading', false);
|
||||
map.set('resetFileKey', Math.floor((Math.random() * 0x10000)));
|
||||
@ -321,7 +324,7 @@ export default function compose(state = initialState, action) {
|
||||
case COMPOSE_UPLOAD_REQUEST:
|
||||
return state.set('is_uploading', true);
|
||||
case COMPOSE_UPLOAD_SUCCESS:
|
||||
return appendMedia(state, fromJS(action.media));
|
||||
return appendMedia(state, fromJS(action.media), action.file);
|
||||
case COMPOSE_UPLOAD_FAIL:
|
||||
return state.set('is_uploading', false);
|
||||
case COMPOSE_UPLOAD_UNDO:
|
||||
|
@ -38,10 +38,9 @@ const notificationToMap = notification => ImmutableMap({
|
||||
});
|
||||
|
||||
const normalizeNotification = (state, notification, usePendingItems) => {
|
||||
const top = state.get('top');
|
||||
const mounted = state.get('mounted');
|
||||
const top = state.get('top');
|
||||
|
||||
if (usePendingItems || (!top && mounted) || !state.get('pendingItems').isEmpty()) {
|
||||
if (usePendingItems || !state.get('pendingItems').isEmpty()) {
|
||||
return state.update('pendingItems', list => list.unshift(notificationToMap(notification))).update('unread', unread => unread + 1);
|
||||
}
|
||||
|
||||
@ -67,7 +66,7 @@ const expandNormalizedNotifications = (state, notifications, next, isLoadingRece
|
||||
|
||||
return state.withMutations(mutable => {
|
||||
if (!items.isEmpty()) {
|
||||
usePendingItems = isLoadingRecent && (usePendingItems || (!mutable.get('top') && mutable.get('mounted')) || !mutable.get('pendingItems').isEmpty());
|
||||
usePendingItems = isLoadingRecent && (usePendingItems || !mutable.get('pendingItems').isEmpty());
|
||||
|
||||
mutable.update(usePendingItems ? 'pendingItems' : 'items', list => {
|
||||
const lastIndex = 1 + list.findLastIndex(
|
||||
|
@ -40,7 +40,8 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is
|
||||
if (timeline.endsWith(':pinned')) {
|
||||
mMap.set('items', statuses.map(status => status.get('id')));
|
||||
} else if (!statuses.isEmpty()) {
|
||||
usePendingItems = isLoadingRecent && (usePendingItems || !mMap.get('top') || !mMap.get('pendingItems').isEmpty());
|
||||
usePendingItems = isLoadingRecent && (usePendingItems || !mMap.get('pendingItems').isEmpty());
|
||||
|
||||
mMap.update(usePendingItems ? 'pendingItems' : 'items', ImmutableList(), oldIds => {
|
||||
const newIds = statuses.map(status => status.get('id'));
|
||||
|
||||
@ -63,7 +64,7 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is
|
||||
const updateTimeline = (state, timeline, status, usePendingItems) => {
|
||||
const top = state.getIn([timeline, 'top']);
|
||||
|
||||
if (usePendingItems || !top || !state.getIn([timeline, 'pendingItems']).isEmpty()) {
|
||||
if (usePendingItems || !state.getIn([timeline, 'pendingItems']).isEmpty()) {
|
||||
if (state.getIn([timeline, 'pendingItems'], ImmutableList()).includes(status.get('id')) || state.getIn([timeline, 'items'], ImmutableList()).includes(status.get('id'))) {
|
||||
return state;
|
||||
}
|
||||
|
@ -6418,13 +6418,17 @@ noscript {
|
||||
flex: 1 1 auto;
|
||||
padding: 10px 5px;
|
||||
padding-right: 15px;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
|
||||
&__info {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
&__relative-time {
|
||||
float: right;
|
||||
font-size: 15px;
|
||||
color: $darker-text-color;
|
||||
padding-left: 15px;
|
||||
@ -6437,6 +6441,8 @@ noscript {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
margin-bottom: 4px;
|
||||
flex-basis: 170px;
|
||||
flex-shrink: 1000;
|
||||
|
||||
a {
|
||||
color: $primary-text-color;
|
||||
|
@ -169,7 +169,7 @@
|
||||
.grid-4 {
|
||||
display: grid;
|
||||
grid-gap: 10px;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
grid-auto-columns: 25%;
|
||||
grid-auto-rows: max-content;
|
||||
|
||||
|
@ -95,13 +95,19 @@
|
||||
|
||||
&__number {
|
||||
display: inline-block;
|
||||
width: 36px;
|
||||
width: 52px;
|
||||
font-weight: 700;
|
||||
padding: 0 10px;
|
||||
padding-left: 8px;
|
||||
text-align: right;
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
flex: 0 0 36px;
|
||||
flex: 0 0 52px;
|
||||
}
|
||||
|
||||
&__vote__mark {
|
||||
float: left;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
&__footer {
|
||||
|
@ -21,7 +21,7 @@ class ActivityPub::Activity::Follow < ActivityPub::Activity
|
||||
|
||||
follow_request = FollowRequest.create!(account: @account, target_account: target_account, uri: @json['id'])
|
||||
|
||||
if target_account.locked?
|
||||
if target_account.locked? || @account.silenced?
|
||||
NotifyService.new.call(target_account, follow_request)
|
||||
else
|
||||
AuthorizeFollowService.new.call(@account, target_account)
|
||||
|
@ -45,7 +45,7 @@ class TOCGenerator
|
||||
parsed_html.traverse do |node|
|
||||
next unless TARGET_ELEMENTS.include?(node.name)
|
||||
|
||||
anchor = node['id'] || node.text.parameterize
|
||||
anchor = node['id'] || node.text.parameterize.presence || 'sec'
|
||||
@slugs[anchor] += 1
|
||||
anchor = "#{anchor}-#{@slugs[anchor]}" if @slugs[anchor] > 1
|
||||
|
||||
|
@ -47,8 +47,7 @@ class AccountMigration < ApplicationRecord
|
||||
end
|
||||
|
||||
def acct=(val)
|
||||
val = val.to_s.strip
|
||||
super(val.start_with?('@') ? val[1..-1] : val)
|
||||
super(val.to_s.strip.gsub(/\A@/, ''))
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -3,24 +3,50 @@
|
||||
module LdapAuthenticable
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
def ldap_setup(_attributes)
|
||||
self.confirmed_at = Time.now.utc
|
||||
self.admin = false
|
||||
self.external = true
|
||||
|
||||
save!
|
||||
end
|
||||
|
||||
class_methods do
|
||||
def authenticate_with_ldap(params = {})
|
||||
ldap = Net::LDAP.new(ldap_options)
|
||||
filter = format(Devise.ldap_search_filter, uid: Devise.ldap_uid, email: params[:email])
|
||||
|
||||
if (user_info = ldap.bind_as(base: Devise.ldap_base, filter: filter, password: params[:password]))
|
||||
ldap_get_user(user_info.first)
|
||||
end
|
||||
end
|
||||
|
||||
def ldap_get_user(attributes = {})
|
||||
resource = joins(:account).find_by(accounts: { username: attributes[Devise.ldap_uid.to_sym].first })
|
||||
|
||||
if resource.blank?
|
||||
resource = new(email: attributes[:mail].first, agreement: true, account_attributes: { username: attributes[Devise.ldap_uid.to_sym].first })
|
||||
resource.ldap_setup(attributes)
|
||||
resource = new(email: attributes[:mail].first, agreement: true, account_attributes: { username: attributes[Devise.ldap_uid.to_sym].first }, admin: false, external: true, confirmed_at: Time.now.utc)
|
||||
resource.save!
|
||||
end
|
||||
|
||||
resource
|
||||
end
|
||||
|
||||
def ldap_options
|
||||
opts = {
|
||||
host: Devise.ldap_host,
|
||||
port: Devise.ldap_port,
|
||||
base: Devise.ldap_base,
|
||||
|
||||
auth: {
|
||||
method: :simple,
|
||||
username: Devise.ldap_bind_dn,
|
||||
password: Devise.ldap_password,
|
||||
},
|
||||
|
||||
connect_timeout: 10,
|
||||
}
|
||||
|
||||
if [:simple_tls, :start_tls].include?(Devise.ldap_method)
|
||||
opts[:encryption] = {
|
||||
method: Devise.ldap_method,
|
||||
tls_options: OpenSSL::SSL::SSLContext::DEFAULT_PARAMS.tap { |options| options[:verify_mode] = OpenSSL::SSL::VERIFY_NONE if Devise.ldap_tls_no_verify },
|
||||
}
|
||||
end
|
||||
|
||||
opts
|
||||
end
|
||||
end
|
||||
end
|
||||
|
47
app/models/form/redirect.rb
Normal file
47
app/models/form/redirect.rb
Normal file
@ -0,0 +1,47 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class Form::Redirect
|
||||
include ActiveModel::Model
|
||||
|
||||
attr_accessor :account, :target_account, :current_password,
|
||||
:current_username
|
||||
|
||||
attr_reader :acct
|
||||
|
||||
validates :acct, presence: true, domain: { acct: true }
|
||||
validate :validate_target_account
|
||||
|
||||
def valid_with_challenge?(current_user)
|
||||
if current_user.encrypted_password.present?
|
||||
errors.add(:current_password, :invalid) unless current_user.valid_password?(current_password)
|
||||
else
|
||||
errors.add(:current_username, :invalid) unless account.username == current_username
|
||||
end
|
||||
|
||||
return false unless errors.empty?
|
||||
|
||||
set_target_account
|
||||
valid?
|
||||
end
|
||||
|
||||
def acct=(val)
|
||||
@acct = val.to_s.strip.gsub(/\A@/, '')
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_target_account
|
||||
@target_account = ResolveAccountService.new.call(acct)
|
||||
rescue Goldfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error
|
||||
# Validation will take care of it
|
||||
end
|
||||
|
||||
def validate_target_account
|
||||
if target_account.nil?
|
||||
errors.add(:acct, I18n.t('migrations.errors.not_found'))
|
||||
else
|
||||
errors.add(:acct, I18n.t('migrations.errors.already_moved')) if account.moved_to_account_id.present? && account.moved_to_account_id == target_account.id
|
||||
errors.add(:acct, I18n.t('migrations.errors.move_to_self')) if account.id == target_account.id
|
||||
end
|
||||
end
|
||||
end
|
@ -54,6 +54,10 @@ class Poll < ApplicationRecord
|
||||
account.id == account_id || votes.where(account: account).exists?
|
||||
end
|
||||
|
||||
def own_votes(account)
|
||||
votes.where(account: account).pluck(:choice)
|
||||
end
|
||||
|
||||
delegate :local?, to: :account
|
||||
|
||||
def remote?
|
||||
|
@ -47,6 +47,10 @@ class PreviewCard < ApplicationRecord
|
||||
|
||||
before_save :extract_dimensions, if: :link?
|
||||
|
||||
def missing_image?
|
||||
width.present? && height.present? && image_file_name.blank?
|
||||
end
|
||||
|
||||
def save_with_optional_image!
|
||||
save!
|
||||
rescue ActiveRecord::RecordInvalid
|
||||
|
@ -12,8 +12,6 @@
|
||||
#
|
||||
|
||||
class Relay < ApplicationRecord
|
||||
PRESET_RELAY = 'https://relay.joinmastodon.org/inbox'
|
||||
|
||||
validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url?
|
||||
|
||||
enum state: [:idle, :pending, :accepted, :rejected]
|
||||
@ -74,7 +72,6 @@ class Relay < ApplicationRecord
|
||||
end
|
||||
|
||||
def ensure_disabled
|
||||
return unless enabled?
|
||||
disable!
|
||||
disable! if enabled?
|
||||
end
|
||||
end
|
||||
|
@ -305,7 +305,7 @@ class Status < ApplicationRecord
|
||||
end
|
||||
|
||||
def reblogs_map(status_ids, account_id)
|
||||
select('reblog_of_id').where(reblog_of_id: status_ids).where(account_id: account_id).reorder(nil).each_with_object({}) { |s, h| h[s.reblog_of_id] = true }
|
||||
unscoped.select('reblog_of_id').where(reblog_of_id: status_ids).where(account_id: account_id).each_with_object({}) { |s, h| h[s.reblog_of_id] = true }
|
||||
end
|
||||
|
||||
def mutes_map(conversation_ids, account_id)
|
||||
|
@ -124,16 +124,15 @@ class Tag < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def search_for(term, limit = 5, offset = 0)
|
||||
def search_for(term, limit = 5, offset = 0, options = {})
|
||||
normalized_term = normalize(term.strip).mb_chars.downcase.to_s
|
||||
pattern = sanitize_sql_like(normalized_term) + '%'
|
||||
query = Tag.listable.where(arel_table[:name].lower.matches(pattern))
|
||||
query = query.where(arel_table[:name].lower.eq(normalized_term).or(arel_table[:reviewed_at].not_eq(nil))) if options[:exclude_unreviewed]
|
||||
|
||||
Tag.listable
|
||||
.where(arel_table[:name].lower.matches(pattern))
|
||||
.where(arel_table[:name].lower.eq(normalized_term).or(arel_table[:reviewed_at].not_eq(nil)))
|
||||
.order(Arel.sql('length(name) ASC, name ASC'))
|
||||
.limit(limit)
|
||||
.offset(offset)
|
||||
query.order(Arel.sql('length(name) ASC, name ASC'))
|
||||
.limit(limit)
|
||||
.offset(offset)
|
||||
end
|
||||
|
||||
def find_normalized(name)
|
||||
|
@ -20,6 +20,10 @@ class Web::PushSubscription < ApplicationRecord
|
||||
|
||||
has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription
|
||||
|
||||
validates :endpoint, presence: true
|
||||
validates :key_p256dh, presence: true
|
||||
validates :key_auth, presence: true
|
||||
|
||||
def push(notification)
|
||||
I18n.with_locale(associated_user&.locale || I18n.default_locale) do
|
||||
push_payload(payload_for_notification(notification), 48.hours.seconds)
|
||||
|
@ -12,6 +12,7 @@ class REST::CredentialAccountSerializer < REST::AccountSerializer
|
||||
language: user.setting_default_language,
|
||||
note: object.note,
|
||||
fields: object.fields.map(&:to_h),
|
||||
follow_requests_count: FollowRequest.where(target_account: object).limit(40).count,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
@ -8,6 +8,7 @@ class REST::PollSerializer < ActiveModel::Serializer
|
||||
has_many :emojis, serializer: REST::CustomEmojiSerializer
|
||||
|
||||
attribute :voted, if: :current_user?
|
||||
attribute :own_votes, if: :current_user?
|
||||
|
||||
def id
|
||||
object.id.to_s
|
||||
@ -21,6 +22,10 @@ class REST::PollSerializer < ActiveModel::Serializer
|
||||
object.voted?(current_user.account)
|
||||
end
|
||||
|
||||
def own_votes
|
||||
object.own_votes(current_user.account)
|
||||
end
|
||||
|
||||
def current_user?
|
||||
!current_user.nil?
|
||||
end
|
||||
|
@ -42,11 +42,9 @@ class AccountSearchService < BaseService
|
||||
return [] if limit_for_non_exact_results.zero?
|
||||
|
||||
@search_results ||= begin
|
||||
if Chewy.enabled?
|
||||
from_elasticsearch
|
||||
else
|
||||
from_database
|
||||
end
|
||||
results = from_elasticsearch if Chewy.enabled?
|
||||
results ||= from_database
|
||||
results
|
||||
end
|
||||
end
|
||||
|
||||
@ -92,6 +90,8 @@ class AccountSearchService < BaseService
|
||||
ActiveRecord::Associations::Preloader.new.preload(records, :account_stat)
|
||||
|
||||
records
|
||||
rescue Faraday::ConnectionFailed, Parslet::ParseFailed
|
||||
nil
|
||||
end
|
||||
|
||||
def reputation_score_function
|
||||
|
@ -22,7 +22,7 @@ class FetchLinkCardService < BaseService
|
||||
RedisLock.acquire(lock_options) do |lock|
|
||||
if lock.acquired?
|
||||
@card = PreviewCard.find_by(url: @url)
|
||||
process_url if @card.nil? || @card.updated_at <= 2.weeks.ago
|
||||
process_url if @card.nil? || @card.updated_at <= 2.weeks.ago || @card.missing_image?
|
||||
else
|
||||
raise Mastodon::RaceConditionError
|
||||
end
|
||||
|
@ -30,7 +30,7 @@ class FollowService < BaseService
|
||||
|
||||
ActivityTracker.increment('activity:interactions')
|
||||
|
||||
if target_account.locked? || target_account.activitypub?
|
||||
if target_account.locked? || source_account.silenced? || target_account.activitypub?
|
||||
request_follow(source_account, target_account, reblogs: reblogs)
|
||||
elsif target_account.local?
|
||||
direct_follow(source_account, target_account, reblogs: reblogs)
|
||||
|
@ -60,7 +60,8 @@ class SearchService < BaseService
|
||||
TagSearchService.new.call(
|
||||
@query,
|
||||
limit: @limit,
|
||||
offset: @offset
|
||||
offset: @offset,
|
||||
exclude_unreviewed: @options[:exclude_unreviewed]
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -2,15 +2,15 @@
|
||||
|
||||
class TagSearchService < BaseService
|
||||
def call(query, options = {})
|
||||
@query = query.strip.gsub(/\A#/, '')
|
||||
@offset = options[:offset].to_i
|
||||
@limit = options[:limit].to_i
|
||||
@query = query.strip.gsub(/\A#/, '')
|
||||
@offset = options.delete(:offset).to_i
|
||||
@limit = options.delete(:limit).to_i
|
||||
@options = options
|
||||
|
||||
if Chewy.enabled?
|
||||
from_elasticsearch
|
||||
else
|
||||
from_database
|
||||
end
|
||||
results = from_elasticsearch if Chewy.enabled?
|
||||
results ||= from_database
|
||||
|
||||
results
|
||||
end
|
||||
|
||||
private
|
||||
@ -63,9 +63,9 @@ class TagSearchService < BaseService
|
||||
},
|
||||
|
||||
{
|
||||
term: {
|
||||
match: {
|
||||
name: {
|
||||
value: @query,
|
||||
query: @query,
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -73,10 +73,15 @@ class TagSearchService < BaseService
|
||||
},
|
||||
}
|
||||
|
||||
TagsIndex.query(query).filter(filter).limit(@limit).offset(@offset).objects.compact
|
||||
definition = TagsIndex.query(query)
|
||||
definition = definition.filter(filter) if @options[:exclude_unreviewed]
|
||||
|
||||
definition.limit(@limit).offset(@offset).objects.compact
|
||||
rescue Faraday::ConnectionFailed, Parslet::ParseFailed
|
||||
nil
|
||||
end
|
||||
|
||||
def from_database
|
||||
Tag.search_for(@query, @limit, @offset)
|
||||
Tag.search_for(@query, @limit, @offset, @options)
|
||||
end
|
||||
end
|
||||
|
@ -20,7 +20,9 @@ class UpdateAccountService < BaseService
|
||||
private
|
||||
|
||||
def authorize_all_follow_requests(account)
|
||||
AuthorizeFollowWorker.push_bulk(FollowRequest.where(target_account: account).select(:account_id, :target_account_id)) do |req|
|
||||
follow_requests = FollowRequest.where(target_account: account)
|
||||
follow_requests = follow_requests.select { |req| !req.account.silenced? }
|
||||
AuthorizeFollowWorker.push_bulk(follow_requests) do |req|
|
||||
[req.account_id, req.target_account_id]
|
||||
end
|
||||
end
|
||||
|
@ -43,8 +43,10 @@
|
||||
|
||||
= form_for(@form, url: batch_admin_tags_path) do |f|
|
||||
= hidden_field_tag :page, params[:page] || 1
|
||||
= hidden_field_tag :context, params[:context]
|
||||
= hidden_field_tag :review, params[:review]
|
||||
= hidden_field_tag :name, params[:name] if params[:name].present?
|
||||
|
||||
- Admin::FilterHelper::TAGS_FILTERS.each do |key|
|
||||
= hidden_field_tag key, params[key] if params[key].present?
|
||||
|
||||
.batch-table
|
||||
.batch-table__toolbar
|
||||
|
@ -30,7 +30,18 @@
|
||||
|
||||
= render 'sessions'
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
%h3= t('auth.migrate_account')
|
||||
%p.muted-hint= t('auth.migrate_account_html', path: settings_migration_path)
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
%h3= t('migrations.incoming_migrations')
|
||||
%p.muted-hint= t('migrations.incoming_migrations_html', path: settings_aliases_path)
|
||||
|
||||
- if open_deletion? && !current_account.suspended?
|
||||
%hr.spacer/
|
||||
|
||||
%h3= t('auth.delete_account')
|
||||
%p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)
|
||||
|
27
app/views/settings/migration/redirects/new.html.haml
Normal file
27
app/views/settings/migration/redirects/new.html.haml
Normal file
@ -0,0 +1,27 @@
|
||||
- content_for :page_title do
|
||||
= t('settings.migrate')
|
||||
|
||||
= simple_form_for @redirect, url: settings_migration_redirect_path do |f|
|
||||
%p.hint= t('migrations.warning.before')
|
||||
|
||||
%ul.hint
|
||||
%li.warning-hint= t('migrations.warning.redirect')
|
||||
%li.warning-hint= t('migrations.warning.other_data')
|
||||
%li.warning-hint= t('migrations.warning.disabled_account')
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
= render 'shared/error_messages', object: @redirect
|
||||
|
||||
.fields-row
|
||||
.fields-row__column.fields-group.fields-row__column-6
|
||||
= f.input :acct, wrapper: :with_block_label, input_html: { autocapitalize: 'none', autocorrect: 'off' }, label: t('simple_form.labels.account_migration.acct'), hint: t('simple_form.hints.account_migration.acct')
|
||||
|
||||
.fields-row__column.fields-group.fields-row__column-6
|
||||
- if current_user.encrypted_password.present?
|
||||
= f.input :current_password, wrapper: :with_block_label, input_html: { :autocomplete => 'off' }, required: true
|
||||
- else
|
||||
= f.input :current_username, wrapper: :with_block_label, input_html: { :autocomplete => 'off' }, required: true
|
||||
|
||||
.actions
|
||||
= f.button :button, t('migrations.set_redirect'), type: :submit, class: 'button button--destructive'
|
@ -12,28 +12,32 @@
|
||||
|
||||
%p.hint= t('migrations.cancel_explanation')
|
||||
|
||||
%p.hint= link_to t('migrations.cancel'), cancel_settings_migration_path, data: { method: :post }
|
||||
%p.hint= link_to t('migrations.cancel'), settings_migration_redirect_path, data: { method: :delete }
|
||||
- else
|
||||
%p.hint
|
||||
%span.positive-hint= t('migrations.not_redirecting')
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
%h3= t 'migrations.proceed_with_move'
|
||||
%h3= t('auth.migrate_account')
|
||||
|
||||
= simple_form_for @migration, url: settings_migration_path do |f|
|
||||
- if on_cooldown?
|
||||
%span.warning-hint= t('migrations.on_cooldown', count: ((@cooldown.cooldown_at - Time.now.utc) / 1.day.seconds).ceil)
|
||||
%p.hint
|
||||
%span.warning-hint= t('migrations.on_cooldown', count: ((@cooldown.cooldown_at - Time.now.utc) / 1.day.seconds).ceil)
|
||||
- else
|
||||
%p.hint= t('migrations.warning.before')
|
||||
|
||||
%ul.hint
|
||||
%li.warning-hint= t('migrations.warning.followers')
|
||||
%li.warning-hint= t('migrations.warning.redirect')
|
||||
%li.warning-hint= t('migrations.warning.other_data')
|
||||
%li.warning-hint= t('migrations.warning.backreference_required')
|
||||
%li.warning-hint= t('migrations.warning.cooldown')
|
||||
%li.warning-hint= t('migrations.warning.disabled_account')
|
||||
|
||||
%p.hint= t('migrations.warning.only_redirect_html', path: new_settings_migration_redirect_path)
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
= render 'shared/error_messages', object: @migration
|
||||
|
@ -1,15 +1,19 @@
|
||||
- show_results = (user_signed_in? && poll.voted?(current_account)) || poll.expired?
|
||||
- own_votes = user_signed_in? ? poll.own_votes(current_account) : []
|
||||
|
||||
.poll
|
||||
%ul
|
||||
- poll.loaded_options.each do |option|
|
||||
- poll.loaded_options.each_with_index do |option, index|
|
||||
%li
|
||||
- if show_results
|
||||
- percent = poll.votes_count > 0 ? 100 * option.votes_count / poll.votes_count : 0
|
||||
%span.poll__chart{ style: "width: #{percent}%" }
|
||||
|
||||
%label.poll__text><
|
||||
%span.poll__number= percent.round
|
||||
%span.poll__number><
|
||||
- if own_votes.include?(index)
|
||||
%i.poll__vote__mark.fa.fa-check
|
||||
= percent.round
|
||||
= Formatter.instance.format_poll_option(status, option, autoplay: autoplay)
|
||||
- else
|
||||
%label.poll__text><
|
||||
|
@ -13,7 +13,8 @@ require_relative '../lib/paperclip/video_transcoder'
|
||||
require_relative '../lib/paperclip/type_corrector'
|
||||
require_relative '../lib/mastodon/snowflake'
|
||||
require_relative '../lib/mastodon/version'
|
||||
require_relative '../lib/devise/ldap_authenticatable'
|
||||
require_relative '../lib/devise/two_factor_ldap_authenticatable'
|
||||
require_relative '../lib/devise/two_factor_pam_authenticatable'
|
||||
|
||||
Dotenv::Railtie.load
|
||||
|
||||
|
@ -71,13 +71,10 @@ end
|
||||
|
||||
Devise.setup do |config|
|
||||
config.warden do |manager|
|
||||
manager.default_strategies(scope: :user).unshift :database_authenticatable
|
||||
manager.default_strategies(scope: :user).unshift :ldap_authenticatable if Devise.ldap_authentication
|
||||
manager.default_strategies(scope: :user).unshift :pam_authenticatable if Devise.pam_authentication
|
||||
|
||||
# We handle 2FA in our own sessions controller so this gets in the way
|
||||
manager.default_strategies(scope: :user).delete :two_factor_backupable
|
||||
manager.default_strategies(scope: :user).delete :two_factor_authenticatable
|
||||
manager.default_strategies(scope: :user).unshift :two_factor_ldap_authenticatable if Devise.ldap_authentication
|
||||
manager.default_strategies(scope: :user).unshift :two_factor_pam_authenticatable if Devise.pam_authentication
|
||||
manager.default_strategies(scope: :user).unshift :two_factor_authenticatable
|
||||
manager.default_strategies(scope: :user).unshift :two_factor_backupable
|
||||
end
|
||||
|
||||
# The secret key used by Devise. Devise uses this key to generate
|
||||
|
@ -3,4 +3,6 @@ HealthCheck.setup do |config|
|
||||
|
||||
config.standard_checks = %w(database migrations cache)
|
||||
config.full_checks = %w(database migrations cache)
|
||||
|
||||
config.include_error_in_response_body = false
|
||||
end
|
||||
|
@ -25,6 +25,7 @@ if ENV['S3_ENABLED'] == 'true'
|
||||
s3_protocol: s3_protocol,
|
||||
s3_host_name: s3_hostname,
|
||||
s3_headers: {
|
||||
'X-Amz-Multipart-Threshold' => ENV.fetch('S3_MULTIPART_THRESHOLD') { 15.megabytes }.to_i,
|
||||
'Cache-Control' => 'public, max-age=315576000, immutable',
|
||||
},
|
||||
s3_permissions: ENV.fetch('S3_PERMISSION') { 'public-read' },
|
||||
|
@ -1,17 +1 @@
|
||||
---
|
||||
es:
|
||||
activerecord:
|
||||
attributes:
|
||||
poll:
|
||||
expires_at: Vencimiento
|
||||
options: Opciones
|
||||
errors:
|
||||
models:
|
||||
account:
|
||||
attributes:
|
||||
username:
|
||||
invalid: sólo letras, números y guiones bajos
|
||||
status:
|
||||
attributes:
|
||||
reblog:
|
||||
taken: del estado ya existe
|
||||
--- {}
|
||||
|
@ -10,7 +10,7 @@ ar:
|
||||
api: واجهة برمجة التطبيقات
|
||||
apps: تطبيقات الأجهزة المحمولة
|
||||
apps_platforms: إستخدم ماستودون في iOS، أندرويد وأنظمة أخرى
|
||||
browse_directory: تصفح دليل المستخدمين وافرز بالمصالح
|
||||
browse_directory: تصفح دليل الصفحات التعريفية وصفّي بحسب الإهتمام
|
||||
browse_public_posts: تصفح تيارًا مباشرًا مِن منشورات عامة على ماستدون
|
||||
contact: للتواصل معنا
|
||||
contact_missing: لم يتم تعيينه
|
||||
@ -36,6 +36,9 @@ ar:
|
||||
status_count_before: نشروا
|
||||
tagline: اتبع أصدقائك وصديقاتك واكتشف آخرين وأخريات
|
||||
terms: شروط الخدمة
|
||||
unavailable_content: محتوى غير متوفر
|
||||
unavailable_content_description:
|
||||
reason: 'السبب:'
|
||||
user_count_after:
|
||||
few: مستخدمين
|
||||
many: مستخدمين
|
||||
@ -82,7 +85,7 @@ ar:
|
||||
admin: المدير
|
||||
bot: روبوت
|
||||
moderator: مُشرِف
|
||||
unavailable: الحساب غير متوفر
|
||||
unavailable: الصفحة التعريفية غير متوفرة
|
||||
unfollow: إلغاء المتابعة
|
||||
admin:
|
||||
account_actions:
|
||||
@ -154,12 +157,12 @@ ar:
|
||||
outbox_url: رابط صندوق الصادر
|
||||
pending: في انتظار المراجعة
|
||||
perform_full_suspension: تعليق الحساب
|
||||
profile_url: رابط الملف الشخصي
|
||||
profile_url: رابط الصفحة التعريفية
|
||||
promote: ترقية
|
||||
protocol: البروتوكول
|
||||
public: عمومي
|
||||
push_subscription_expires: انتهاء الاشتراك ”PuSH“
|
||||
redownload: تحديث الصفحة الشخصية
|
||||
redownload: انعش الصفحة التعريفية
|
||||
reject: ارفض
|
||||
reject_all: ارفض الكل
|
||||
remove_avatar: حذف الصورة الرمزية
|
||||
@ -264,7 +267,7 @@ ar:
|
||||
config: الإعداد
|
||||
feature_deletions: الحسابات المحذوفة
|
||||
feature_invites: روابط الدعوات
|
||||
feature_profile_directory: دليل الحسابات
|
||||
feature_profile_directory: دليل الملفات التعريفية
|
||||
feature_registrations: التسجيلات
|
||||
feature_relay: المُرحّل الفديرالي
|
||||
feature_spam_check: مكافح البريد المزعج
|
||||
@ -294,7 +297,7 @@ ar:
|
||||
create: إنشاء حظر
|
||||
hint: لن تمنع كتلة المجال إنشاء إدخالات حساب في قاعدة البيانات ، ولكنها ستطبق طرق الإشراف المحددة بأثر رجعي وتلقائي على هذه الحسابات.
|
||||
severity:
|
||||
desc_html: "<strong>Silence</strong> سيجعل مشاركات الحساب غير مرئية لأي شخص لا يتبعها. <strong>Suspend</strong> سيزيل كل محتوى الحساب ووسائطه وبيانات ملفه الشخصي. Use <strong>None</strong> إذا كنت تريد فقط رفض ملفات الوسائط."
|
||||
desc_html: "<strong>Silence</strong> سيجعل مشاركات الحساب غير مرئية لأي شخص لا يتبعها. <strong>Suspend</strong> سيزيل كل محتوى الحساب ووسائطه وبيانات ملفه التعريفي. Use <strong>None</strong> إذا كنت تريد فقط رفض ملفات الوسائط."
|
||||
noop: لا شيء
|
||||
silence: كتم
|
||||
suspend: تعليق
|
||||
@ -437,7 +440,7 @@ ar:
|
||||
title: إظهار الصور الحساسة في مُعاينات أوبن غراف
|
||||
profile_directory:
|
||||
desc_html: السماح للمستخدمين الكشف عن حساباتهم
|
||||
title: تفعيل سجل الملفات الشخصية
|
||||
title: تفعيل دليل الصفحات التعريفية
|
||||
registrations:
|
||||
closed_message:
|
||||
desc_html: يتم عرضه على الصفحة الرئيسية عندما يتم غلق تسجيل الحسابات الجديدة. يمكنكم إستخدام علامات الأيتش تي أم أل HTML
|
||||
@ -497,7 +500,14 @@ ar:
|
||||
with_media: تحتوي على وسائط
|
||||
tags:
|
||||
context: السياق
|
||||
directory: في دليل حسابات المستخدمين
|
||||
in_directory: "%{count} في سجل حسابات المستخدمين"
|
||||
last_active: آخر نشاط
|
||||
most_popular: الأكثر شعبية
|
||||
most_recent: الأحدث
|
||||
name: الوسم
|
||||
review: حالة المراجعة
|
||||
reviewed: مُراجَع
|
||||
title: الوسوم
|
||||
trending_right_now: متداول اللحظة
|
||||
unique_uses_today: "%{count} منشورات اليوم"
|
||||
@ -527,7 +537,7 @@ ar:
|
||||
notification_preferences: تعديل خيارات البريد الإلكتروني
|
||||
salutation: "%{name}،"
|
||||
settings: 'تغيير تفضيلات البريد الإلكتروني: %{link}'
|
||||
view_profile: عرض الملف الشخصي
|
||||
view_profile: اعرض الصفحة التعريفية
|
||||
view_status: عرض المنشور
|
||||
applications:
|
||||
created: تم إنشاء التطبيق بنجاح
|
||||
@ -577,9 +587,13 @@ ar:
|
||||
following: 'مرحى! أنت الآن تتبع:'
|
||||
post_follow:
|
||||
close: أو يمكنك إغلاق هذه النافذة.
|
||||
return: عرض الملف الشخصي للمستخدم
|
||||
return: اظهر الملف التعريفي للمستخدم
|
||||
web: واصل إلى الويب
|
||||
title: إتباع %{acct}
|
||||
challenge:
|
||||
confirm: واصل
|
||||
invalid_password: الكلمة السرية خاطئة
|
||||
prompt: أكِّد الكلمة السرية للمواصلة
|
||||
datetime:
|
||||
distance_in_words:
|
||||
about_x_hours: "%{count}سا"
|
||||
@ -598,8 +612,10 @@ ar:
|
||||
confirm_password: قم بإدخال كلمتك السرية الحالية للتحقق من هويتك
|
||||
proceed: حذف حساب
|
||||
success_msg: تم حذف حسابك بنجاح
|
||||
warning:
|
||||
username_unavailable: سيبقى اسم المستخدم الخاص بك غير متوفر
|
||||
directories:
|
||||
directory: سِجلّ الحسابات
|
||||
directory: سِجلّ الصفحات التعريفية
|
||||
explanation: استكشف مستخدِمين آخرين حسب المواضيع التي تهمهم
|
||||
explore_mastodon: استكشف %{title}
|
||||
domain_validator:
|
||||
@ -637,7 +653,7 @@ ar:
|
||||
mutes: قُمتَ بكتم
|
||||
storage: ذاكرة التخزين
|
||||
featured_tags:
|
||||
add_new: إضافة واحد
|
||||
add_new: أضف واحدًا جديدا
|
||||
filters:
|
||||
contexts:
|
||||
home: الخيط الزمني الرئيسي
|
||||
@ -733,6 +749,15 @@ ar:
|
||||
too_many: لا يمكن إرفاق أكثر من 4 ملفات
|
||||
migrations:
|
||||
acct: username@domain للحساب الجديد
|
||||
cancel: ألغِ التوجيه
|
||||
cancelled_msg: تم إلغاء التوجيه بنجاح.
|
||||
errors:
|
||||
not_found: تعذر العثور عليه
|
||||
followers_count: المتابِعين عند الإنتقال
|
||||
incoming_migrations: الانتقال مِن حساب آخر
|
||||
past_migrations: التهجيرات السابقة
|
||||
proceed_with_move: انقل مشارِكيك
|
||||
redirecting_to: حسابك موجَّه إلى %{acct}.
|
||||
moderation:
|
||||
title: الإشراف
|
||||
notification_mailer:
|
||||
@ -882,7 +907,7 @@ ar:
|
||||
back: عودة إلى ماستدون
|
||||
delete: حذف الحسابات
|
||||
development: التطوير
|
||||
edit_profile: تعديل الملف الشخصي
|
||||
edit_profile: عدّل الصفحة التعريفية
|
||||
export: تصدير البيانات
|
||||
featured_tags: الوسوم الشائعة
|
||||
identity_proofs: دلائل الهوية
|
||||
@ -891,7 +916,7 @@ ar:
|
||||
migrate: تهجير الحساب
|
||||
notifications: الإخطارات
|
||||
preferences: التفضيلات
|
||||
profile: الملف الشخصي
|
||||
profile: الملف التعريفي
|
||||
relationships: المتابِعون والمتابَعون
|
||||
two_factor_authentication: المُصادقة بخُطوَتَيْن
|
||||
statuses:
|
||||
@ -929,6 +954,13 @@ ar:
|
||||
private: لا يمكن تدبيس تبويق لم يُنشر للعامة
|
||||
reblog: لا يمكن تثبيت ترقية
|
||||
poll:
|
||||
total_votes:
|
||||
few: "%{count} أصوات"
|
||||
many: "%{count} أصوات"
|
||||
one: صوت واحد %{count}
|
||||
other: "%{count} صوتا"
|
||||
two: صوتين %{count}
|
||||
zero: بدون صوت %{count}
|
||||
vote: صوّت
|
||||
show_more: أظهر المزيد
|
||||
sign_in_to_participate: قم بتسجيل الدخول للمشاركة في هذه المحادثة
|
||||
@ -983,8 +1015,8 @@ ar:
|
||||
silence: الحساب محدود
|
||||
suspend: الحساب مُعلَّق
|
||||
welcome:
|
||||
edit_profile_action: تهيئة الملف الشخصي
|
||||
edit_profile_step: يُمكنك·كي تخصيص ملفك الشخصي عن طريق تحميل صورة رمزية ورأسية و بتعديل اسمك·كي العلني وأكثر. و إن أردت·تي معاينة المتابِعين و المتابعات الجُدد قبيل السماح لهم·ن بمتابَعتك فيمكنك·كي تأمين حسابك·كي.
|
||||
edit_profile_action: تهيئة الملف التعريفي
|
||||
edit_profile_step: يُمكنك·كي تخصيص صفحتك التعريفية عن طريق تحميل صورة رمزية ورأسية و بتعديل اسمك·كي العلني وأكثر. و إن أردت·تي معاينة المتابِعين و المتابعات الجُدد قبيل السماح لهم·ن بمتابَعتك فيمكنك·كي تأمين حسابك·كي.
|
||||
explanation: ها هي بعض النصائح قبل بداية الاستخدام
|
||||
final_action: اشرَع في النشر
|
||||
final_step: |-
|
||||
|
@ -35,6 +35,13 @@ co:
|
||||
status_count_before: chì anu pubblicatu
|
||||
tagline: Siguità amichi è scopre ancu di più altri
|
||||
terms: Cundizione di u serviziu
|
||||
unavailable_content: Cuntinutu micca dispunibule
|
||||
unavailable_content_description:
|
||||
reason: 'Ragione:'
|
||||
rejecting_media: I fugliali media da stu servore ùn saranu micca arregistrati è e vignette ùn saranu micca affissate, duverete cliccà manualmente per accede à l'altru servore è vedeli.
|
||||
silenced: I statuti da stu servore ùn saranu mai visti tranne nant'a vostra pagina d'accolta s'e voi siguitate l'autore.
|
||||
suspended: Ùn puderete micca siguità qualsiasi nant'à stu servore, i dati versu o da quallà ùn saranu mai accessi, scambiati o arregistrati.
|
||||
unavailable_content_html: Mastodon vi parmette in generale di vede u cuntinutu è interagisce cù l'utilizatori di tutti l'altri servori di u fediversu. Quessi sò l'eccezzione fatte nant'à stu servore in particulare.
|
||||
user_count_after:
|
||||
one: utilizatore
|
||||
other: utilizatori
|
||||
@ -547,6 +554,12 @@ co:
|
||||
new_trending_tag:
|
||||
body: 'U hashtag #%{name} hè in e tendenze oghji, mà ùn hè micca verificatu. Ùn sarà micca mustratu à u pubblicu eccettu s''ellu hè auturizatu, o pudete ancu salvà u furmulariu cusì per ùn mai più avè à ne sente parlà.'
|
||||
subject: Novu hashtag in attesa di rivista nant'à %{instance} (#%{name})
|
||||
aliases:
|
||||
add_new: Creà un pseudonimu
|
||||
created_msg: Novu pseudonimu creatu. Pudete avà inizià u trasferimentu da u vechju contu.
|
||||
deleted_msg: U pseudonimu hè statu sguassatu. Ùn si puderà più migrà da questu contu à quellu.
|
||||
hint_html: Per traslucà da un altru contu à questu, quì pudete creà un pseudonimu o "alias", riquisitu per trasferì l'abbunati da u vechju contu à u novu. St'azzione sola <strong>ùn face nunda</strong> è pò esse <strong>annullata senza prublemi</strong>. <strong>A migrazione hè principiata dapoi u vechju contu</strong>.
|
||||
remove: Sguassà u pseudonimu
|
||||
appearance:
|
||||
advanced_web_interface: Interfaccia web avanzata
|
||||
advanced_web_interface_hint: 'S''è voi vulete fà usu di a larghezza sana di u vostru screnu, l''interfaccia web avanzata vi permette di cunfigurà parechje culonne sfarente per vede tutta l''infurmazione chì vulete vede in listessu tempu: Accolta, nutificazione, linea pubblica, è tutti l''hashtag è liste chì vulete.'
|
||||
@ -606,6 +619,7 @@ co:
|
||||
confirming: In attesa di a cumplezzione di a cunfirmazione di l'e-mail.
|
||||
functional: U vostru contu hè uperaziunale.
|
||||
pending: A vostra dumanda hè in attesa di rivista da a squadra di muderazione. Quessa pò piglià un certu tempu. Avete da riceve un'e-mail s'ella hè appruvata.
|
||||
redirecting_to: U vostru contu hè inattivu perchè riindirizza versu %{acct}.
|
||||
trouble_logging_in: Difficultà per cunnettavi?
|
||||
authorize_follow:
|
||||
already_following: Site digià abbunatu·a à stu contu
|
||||
@ -795,6 +809,31 @@ co:
|
||||
too_many: Ùn si pò micca aghjunghje più di 4 fugliali
|
||||
migrations:
|
||||
acct: cugnome@duminiu di u novu contu
|
||||
cancel: Annullà ridirezzione
|
||||
cancel_explanation: L'annullazione di a ridirezzione hà da riattivà stu contu, mà ùn si puderà micca ricuperà l'abbunati chì sò digià stati trasferriti à l'altru contu.
|
||||
cancelled_msg: Ridirezzione annullata.
|
||||
errors:
|
||||
already_moved: hè digià u contu induve avede traslucatu
|
||||
missing_also_known_as: ùn fà micca riferenza à stu contu
|
||||
move_to_self: ùn pò micca esse u contu attuale
|
||||
not_found: ùn hè micca statu trovu
|
||||
on_cooldown: Perioda di ricuperazione
|
||||
followers_count: Abbunati à u mumentu di trasferimentu
|
||||
incoming_migrations: Traslucà da un'altru contu
|
||||
incoming_migrations_html: Per spustà da stu contu à un'altru, primu duvete <a href="%{path}">creà un pseudonimu di contu</a>.
|
||||
moved_msg: Avà u vostru contu riindirizza versu %{acct} è i vostri abbunati sò in corsu di trasferimentu.
|
||||
not_redirecting: U vostru contu ùn riindirizza micca ancu versu un'altru contu.
|
||||
on_cooldown: Avede digià migratu u vostru contu. Sta funzionne sarà torna dispunibule in %{count} ghjorni.
|
||||
past_migrations: Anziane migrazione
|
||||
proceed_with_move: Trasferì l'abbunati
|
||||
redirecting_to: U vostru contu riindirizza versu à %{acct}.
|
||||
warning:
|
||||
backreference_required: U novu contu deve prima esse cunfiguratu per fà rifirenza cù un pseudonimu à quessu contu
|
||||
before: 'Nanz''à cuntinuà, leghjete ste note attentamente:'
|
||||
cooldown: Dopu à a traslucazione, c'hè una perioda di ricuperazione in quella ùn puderete micca cambià torna di contu
|
||||
disabled_account: U contu attuale ùn puderà più esse utilizatu dop'à st'azzione. Però, puderete accede à a spurtazione di dati o riattivà u contu.
|
||||
followers: St'azzione hà da spiazzà tutti l'abbunati di u contu attuale nant'à u novu contu
|
||||
other_data: L'altri dati ùn saranu micca autumaticamente trasferiti
|
||||
moderation:
|
||||
title: Muderazione
|
||||
notification_mailer:
|
||||
@ -939,6 +978,7 @@ co:
|
||||
settings:
|
||||
account: Contu
|
||||
account_settings: Parametri di u contu
|
||||
aliases: Pseudonimi di contu
|
||||
appearance: Apparenza
|
||||
authorized_apps: Applicazione auturizate
|
||||
back: Ritornu nant’à Mastodon
|
||||
|
@ -250,8 +250,10 @@ cs:
|
||||
disabled_msg: Emoji bylo úspěšně zakázáno
|
||||
emoji: Emoji
|
||||
enable: Povolit
|
||||
enabled: Povoleno
|
||||
enabled_msg: Emoji bylo úspěšně povoleno
|
||||
image_hint: PNG až do 50 KB
|
||||
list: Uvést
|
||||
listed: Uvedeno
|
||||
new:
|
||||
title: Přidat nové vlastní emoji
|
||||
@ -260,6 +262,7 @@ cs:
|
||||
shortcode_hint: Alespoň 2 znaky, pouze alfanumerické znaky a podtržítka
|
||||
title: Vlastní emoji
|
||||
uncategorized: Nezařazená
|
||||
unlist: Neuvést
|
||||
unlisted: Neuvedeno
|
||||
update_failed_msg: Nebylo možné aktualizovat toto emoji
|
||||
updated_msg: Emoji úspěšně aktualizováno!
|
||||
@ -395,6 +398,7 @@ cs:
|
||||
pending: Čekám na souhlas mostu
|
||||
save_and_enable: Uložit a povolit
|
||||
setup: Nastavit připojení k mostu
|
||||
signatures_not_enabled: Mosty nebudou fungovat správně, dokud je povolen bezpečný režim nebo režim bílé listiny
|
||||
status: Stav
|
||||
title: Mosty
|
||||
report_notes:
|
||||
|
@ -21,6 +21,9 @@ cy:
|
||||
generic_description: Mae %{domain} yn un gweinydd yn y rhwydwaith
|
||||
get_apps: Rhowch gynnig ar ap dyfeis symudol
|
||||
hosted_on: Mastodon wedi ei weinyddu ar %{domain}
|
||||
instance_actor_flash: |
|
||||
Mae'r cyfrif hwn yn actor rhithwir a ddefnyddir i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol.
|
||||
Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei rwystro oni bai eich bod am rwystro'r achos cyfan, ac os felly dylech ddefnyddio bloc parth.
|
||||
learn_more: Dysu mwy
|
||||
privacy_policy: Polisi preifatrwydd
|
||||
see_whats_happening: Gweld beth sy'n digwydd
|
||||
@ -41,6 +44,7 @@ cy:
|
||||
reason: 'Rheswm:'
|
||||
rejecting_media: Ni fydd ffeiliau cyfryngau o'r gweinydd hwn yn cael eu prosesu ac ni fydd unrhyw fawd yn cael eu harddangos, sy'n gofyn am glicio â llaw i'r gweinydd arall.
|
||||
silenced: Ni fydd swyddi o'r gweinydd hwn yn ymddangos yn unman heblaw eich porthiant cartref os dilynwch yr awdur.
|
||||
suspended: Ni fyddwch yn gallu dilyn unrhyw un o'r gweinydd hwn, ac ni fydd unrhyw ddata ohono'n cael ei brosesu na'i storio, ac ni chyfnewidir unrhyw ddata.
|
||||
unavailable_content_html: Yn gyffredinol, mae Mastodon yn caniatáu ichi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.
|
||||
user_count_after:
|
||||
few: defnyddwyr
|
||||
@ -53,6 +57,8 @@ cy:
|
||||
what_is_mastodon: Beth yw Mastodon?
|
||||
accounts:
|
||||
choices_html: 'Dewisiadau %{name}:'
|
||||
endorsements_hint: Gallwch gymeradwyo pobl rydych chi'n eu dilyn o'r rhyngwyneb gwe, a byddan nhw'n ymddangos yma.
|
||||
featured_tags_hint: Gallwch ychwanegu hashnodau penodol a fydd yn cael eu harddangos yma.
|
||||
follow: Dilynwch
|
||||
followers:
|
||||
few: Dilynwyr
|
||||
@ -203,6 +209,7 @@ cy:
|
||||
username: Enw defnyddiwr
|
||||
warn: Rhybuddio
|
||||
web: Gwe
|
||||
whitelisted: Rhestredig wen
|
||||
action_logs:
|
||||
actions:
|
||||
assigned_to_self_report: Aseiniodd %{name} adroddiad %{target} i'w hunan
|
||||
@ -238,6 +245,7 @@ cy:
|
||||
deleted_status: "(statws wedi ei ddileu)"
|
||||
title: Log archwilio
|
||||
custom_emojis:
|
||||
assign_category: Neilltuo categori
|
||||
by_domain: Parth
|
||||
copied_msg: Llwyddwyd i greu copi lleol o'r emoji
|
||||
copy: Copïo
|
||||
@ -265,6 +273,7 @@ cy:
|
||||
updated_msg: Llwyddwyd i ddiweddaru'r emoji!
|
||||
upload: Uwchlwytho
|
||||
dashboard:
|
||||
authorized_fetch_mode: Modd nôl awdurdodedig
|
||||
backlog: tasgau heb eu cwblhau
|
||||
config: Cyfluniad
|
||||
feature_deletions: Dileadau cyfrif
|
||||
@ -290,11 +299,18 @@ cy:
|
||||
week_interactions: ymadweithiau yr wythnos hon
|
||||
week_users_active: gweithredol yr wythnos hon
|
||||
week_users_new: defnyddwyr yr wythnos hon
|
||||
whitelist_mode: Modd rhestr wen
|
||||
domain_allows:
|
||||
add_new: Rhestrwch parth
|
||||
created_msg: Rhestrwyd wen parth yn llwyddiannus
|
||||
destroyed_msg: Mae parth wedi'i dynnu o'r rhestr wen
|
||||
undo: Tynnwch o'r rhestr wen
|
||||
domain_blocks:
|
||||
add_new: Ychwanegu bloc parth newydd
|
||||
created_msg: Mae'r bloc parth nawr yn cael ei brosesu
|
||||
destroyed_msg: Mae'r bloc parth wedi ei ddadwneud
|
||||
domain: Parth
|
||||
edit: Golygu bloc parth
|
||||
existing_domain_block_html: Rydych yn barod wedi gosod cyfyngau fwy llym ar %{name}, mae rhaid i chi ei <a href="%{unblock_url}">ddadblocio</a> yn gyntaf.
|
||||
new:
|
||||
create: Creu bloc
|
||||
@ -330,6 +346,7 @@ cy:
|
||||
title: Dadwneud blocio parth ar gyfer %{domain}
|
||||
undo: Dadwneud
|
||||
undo: Dadwneud bloc parth
|
||||
view: Gweld bloc parth
|
||||
email_domain_blocks:
|
||||
add_new: Ychwanegu
|
||||
created_msg: Llwyddwyd i ychwanegu parth e-bost i'r gosbrestr
|
||||
@ -501,6 +518,7 @@ cy:
|
||||
delete: Dileu
|
||||
nsfw_off: Marcio fel nad yw'n sensitif
|
||||
nsfw_on: Marcio'n sensitif
|
||||
deleted: Dilëwyd
|
||||
failed_to_execute: Methwyd a gweithredu
|
||||
media:
|
||||
title: Cyfryngau
|
||||
@ -514,6 +532,7 @@ cy:
|
||||
name: Hashnod
|
||||
reviewed: Wedi'i adolygu
|
||||
title: Hashnodau
|
||||
trending_right_now: Yn tueddu nawr
|
||||
unreviewed: Heb ei adolygu
|
||||
title: Gweinyddiaeth
|
||||
warning_presets:
|
||||
@ -574,6 +593,14 @@ cy:
|
||||
reset_password: Ailosod cyfrinair
|
||||
security: Diogelwch
|
||||
set_new_password: Gosod cyfrinair newydd
|
||||
setup:
|
||||
title: Gosodiad
|
||||
status:
|
||||
account_status: Statws cyfrif
|
||||
confirming: Aros i gadarnhad e-bost gael ei gwblhau.
|
||||
functional: Mae eich cyfrif yn gwbl weithredol.
|
||||
pending: Mae'ch cais yn aros i gael ei adolygu gan ein staff. Gall hyn gymryd cryn amser. Byddwch yn derbyn e-bost os caiff eich cais ei gymeradwyo.
|
||||
redirecting_to: Mae eich cyfrif yn anactif oherwydd ei fod ar hyn o bryd yn ailgyfeirio i %{acct}.
|
||||
trouble_logging_in: Trafferdd mewngofnodi?
|
||||
authorize_follow:
|
||||
already_following: Yr ydych yn dilyn y cyfrif hwn yn barod
|
||||
@ -586,6 +613,11 @@ cy:
|
||||
return: Dangos proffil y defnyddiwr
|
||||
web: I'r wê
|
||||
title: Dilyn %{acct}
|
||||
challenge:
|
||||
confirm: Parhau
|
||||
hint_html: "<strong>Awgrym:</strong> Ni fyddwn yn gofyn i chi am eich cyfrinair eto am yr awr nesaf."
|
||||
invalid_password: Cyfrinair annilys
|
||||
prompt: Cadarnhewch gyfrinair i barhau
|
||||
datetime:
|
||||
distance_in_words:
|
||||
about_x_hours: "%{count}awr"
|
||||
@ -601,13 +633,22 @@ cy:
|
||||
x_months: "%{count}mis"
|
||||
x_seconds: "%{count}eiliad"
|
||||
deletes:
|
||||
challenge_not_passed: Nid oedd y wybodaeth a nodoch yn gywir
|
||||
confirm_password: Mewnbynnwch eich cyfrinair presennol i gadarnhau mai chi sydd yno
|
||||
confirm_username: Rhowch eich enw defnyddiwr i gadarnhau'r weithdrefn
|
||||
proceed: Dileu cyfrif
|
||||
success_msg: Llwyddwyd i ddileu eich cyfrif
|
||||
warning:
|
||||
before: 'Cyn bwrw ymlaen, darllenwch y nodiadau hyn yn ofalus:'
|
||||
irreversible: Ni fyddwch yn gallu adfer nac ail-greu eich cyfrif
|
||||
username_available: Bydd eich enw defnyddiwr ar gael eto
|
||||
username_unavailable: Ni fydd eich enw defnyddiwr ar gael
|
||||
directories:
|
||||
directory: Cyfeiriadur proffil
|
||||
explanation: Darganfod defnyddwyr yn seiliedig ar eu diddordebau
|
||||
explore_mastodon: Archwilio %{title}
|
||||
domain_validator:
|
||||
invalid_domain: ddim yn enw parth dilys
|
||||
errors:
|
||||
'400': The request you submitted was invalid or malformed.
|
||||
'403': Nid oes gennych ganiatad i weld y dudalen hon.
|
||||
@ -665,6 +706,7 @@ cy:
|
||||
developers: Datblygwyr
|
||||
more: Mwy…
|
||||
resources: Adnoddau
|
||||
trending_now: Yn tueddu nawr
|
||||
generic:
|
||||
all: Popeth
|
||||
changes_saved_msg: Llwyddwyd i gadw y newidiadau!
|
||||
@ -748,8 +790,12 @@ cy:
|
||||
too_many: Ni ellir ychwanegu mwy na 4 dogfen
|
||||
migrations:
|
||||
acct: enwdefnyddiwr@parth y cyfrif newydd
|
||||
cancel: Canslo ailgyfeirio
|
||||
errors:
|
||||
not_found: ni ellid dod o hyd iddo
|
||||
past_migrations: Ymfudiadau yn y gorffennol
|
||||
warning:
|
||||
before: 'Cyn bwrw ymlaen, darllenwch y nodiadau hyn yn ofalus:'
|
||||
moderation:
|
||||
title: Goruwchwyliad
|
||||
notification_mailer:
|
||||
@ -904,6 +950,7 @@ cy:
|
||||
settings:
|
||||
account: Cyfrif
|
||||
account_settings: Gosodiadau'r cyfrif
|
||||
aliases: Aliasau cyfrif
|
||||
appearance: Arddangosiad
|
||||
authorized_apps: Apiau awdurdodedig
|
||||
back: Yn ôl i Mastodon
|
||||
@ -978,6 +1025,8 @@ cy:
|
||||
pinned: Tŵt wedi'i binio
|
||||
reblogged: hybwyd
|
||||
sensitive_content: Cynnwys sensitif
|
||||
tags:
|
||||
does_not_match_previous_name: ddim yn cyfateb i'r enw blaenorol
|
||||
terms:
|
||||
body_html: |
|
||||
<h2>Polisi Preifatrwydd</h2>
|
||||
@ -1095,7 +1144,9 @@ cy:
|
||||
disable: Er bod eich cyfrif wedi'i rewi, mae eich data cyfrif yn parhau i fod yn gyfan, ond ni allwch chi berfformio unrhyw gamau nes ei ddatgloi.
|
||||
silence: Pan mae eich cyfrif yn gyfyngiedig, dim ond pobl sydd yn barod yn eich dilyn yn gweld eich tŵtiau ar y gweinydd hon, a efallai byddwch yn cael eich tynnu o restrau cyhoeddus. Er hyn, gall eraill eich dilyn chi wrth law.
|
||||
suspend: Mae eich cyfrif wedi cael ei wahardd, a mae gyd o'ch tŵtiau a'ch ffeiliau cyfrwng uwchlwythadwy wedi cael eu tynnu or gweinydd yn barhaol, ac o weinyddau ble yr oedd eich dilynwyr.
|
||||
get_in_touch: Gallwch ymateb i'r e-bost hwn i gysylltu â staff %{instance}.
|
||||
review_server_policies: Adolygu polisïau'r gweinydd
|
||||
statuses: 'Yn benodol, ar gyfer:'
|
||||
subject:
|
||||
disable: Mae'ch cyfrif %{acct} wedi'i rewi
|
||||
none: Rhybudd am %{acct}
|
||||
|
@ -45,6 +45,10 @@ ar:
|
||||
extra: إن لم تكن صاحب هذا الطلب ، يُرجى عدم إعارة الاهتمام لهذه الرسالة. فكلِمَتُك السرية تبقى هي مِن غير أي تعديل إلّا و فقط إن قمت بالنقر على الرابط أعلاه قصد إنشاء كلمة سرية جديدة.
|
||||
subject: 'ماستدون: تعليمات استعادة كلمة المرور'
|
||||
title: إعادة تعيين كلمة السر
|
||||
two_factor_disabled:
|
||||
title: إنّ 2FA معطّل
|
||||
two_factor_enabled:
|
||||
title: إنّ 2FA نشِط
|
||||
unlock_instructions:
|
||||
subject: 'ماستدون: تعليمات فك القفل'
|
||||
omniauth_callbacks:
|
||||
|
@ -1,98 +1 @@
|
||||
---
|
||||
es:
|
||||
devise:
|
||||
confirmations:
|
||||
confirmed: Su direccion de email ha sido confirmada con exito.
|
||||
send_instructions: Recibirá un correo electrónico con instrucciones sobre cómo confirmar su dirección de correo en pocos minutos.
|
||||
send_paranoid_instructions: Si su dirección de correo electrónico existe en nuestra base de datos, recibirá un correo electrónico con instrucciones sobre cómo confirmar su dirección de correo en pocos minutos.
|
||||
failure:
|
||||
already_authenticated: Usted ya está registrado.
|
||||
inactive: Su cuenta todavía no está activa.
|
||||
invalid: Inválido %{authentication_keys} o contraseña.
|
||||
last_attempt: Tiene un intento más antes de que su cuenta sea bloqueada.
|
||||
locked: Su cuenta está bloqueada.
|
||||
not_found_in_database: Inválido %{authentication_keys} o contraseña.
|
||||
pending: Su cuenta aun se encuentra bajo revisión.
|
||||
timeout: Su sesión ha expirado. Por favor inicie sesión de nuevo para continuar.
|
||||
unauthenticated: Necesita iniciar sesión o registrarse antes de continuar.
|
||||
unconfirmed: Tiene que confirmar su dirección de correo electrónico antes de continuar.
|
||||
mailer:
|
||||
confirmation_instructions:
|
||||
action: Verificar dirección de correo electrónico
|
||||
action_with_app: Confirmar y regresar a %{app}
|
||||
explanation: Has creado una cuenta en %{host} con esta dirección de correo electrónico. Estas a un clic de activarla. Si no fue usted, por favor ignore este correo electrónico.
|
||||
explanation_when_pending: Usted ha solicitado una invitación a %{host} con esta dirección de correo electrónico. Una vez que confirme su dirección de correo electrónico, revisaremos su aplicación. No puede iniciar sesión hasta que su aplicación sea revisada. Si su solicitud está rechazada, sus datos serán eliminados, así que no será necesaria ninguna acción adicional por ti. Si no fuera usted, por favor ignore este correo electrónico.
|
||||
extra_html: Por favor revise <a href="%{terms_path}">las reglas de la instancia</a> y <a href="%{policy_path}">nuestros términos de servicio</a>.
|
||||
subject: 'Mastodon: Instrucciones de confirmación para %{instance}'
|
||||
title: Verificar dirección de correo electrónico
|
||||
email_changed:
|
||||
explanation: 'El correo electrónico para su cuenta esta siendo cambiada a:'
|
||||
extra: Si usted no ha cambiado su correo electrónico, es probable que alguien haya conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte al administrador de la instancia si usted no puede iniciar sesión.
|
||||
subject: 'Mastodon: Correo electrónico cambiado'
|
||||
title: Nueva dirección de correo electrónico
|
||||
password_change:
|
||||
explanation: La contraseña de su cuenta a sido cambiada.
|
||||
extra: Si usted no a cambiado su contraseña. es probable que alguien a conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte a el administrador de la instancia si usted esta bloqueado de su cuenta.
|
||||
subject: 'Mastodon: Contraseña cambiada'
|
||||
title: Contraseña cambiada
|
||||
reconfirmation_instructions:
|
||||
explanation: Confirme la nueva dirección para cambiar su coreo electrónico.
|
||||
extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodon no cambiará hasta que accedas al vinculo arriba.
|
||||
subject: 'Mastodon: Confirme correo electrónico para %{instance}'
|
||||
title: Verifique dirección de correo electrónico
|
||||
reset_password_instructions:
|
||||
action: Cambiar contraseña
|
||||
explanation: Solicitaste una nueva contraseña para tu cuenta.
|
||||
extra: Si no solicitaste esto, por favor ignora este correo. Tu contraseña no cambiará hasta que tu accedas al vinculo arriba y crees una nueva.
|
||||
subject: 'Mastodon: Instrucciones para reiniciar contraseña'
|
||||
title: Reiniciar contraseña
|
||||
two_factor_disabled:
|
||||
explanation: La autenticación de dos factores para tu cuenta ha sido deshabilitada. Ahora puedes conectarte solamente usando la dirección de correo electrónico y la contraseña.
|
||||
subject: 'Mastodon: La autenticación de dos factores está deshabilitada'
|
||||
title: 2FA desactivada
|
||||
two_factor_enabled:
|
||||
explanation: La autenticación de dos factores para tu cuenta ha sido habilitada. Se requiere un token generado por la aplicación TOTP emparejada para ingresar.
|
||||
subject: 'Mastodon: La autenticación de dos factores está habilitada'
|
||||
title: 2FA activada
|
||||
two_factor_recovery_codes_changed:
|
||||
explanation: Los códigos de recuperación previos han sido invalidados y se generaron códigos nuevos.
|
||||
subject: 'Mastodon: Los códigos de recuperación de dos factores fueron regenerados'
|
||||
title: Códigos de recuperación 2FA cambiados
|
||||
unlock_instructions:
|
||||
subject: 'Mastodon: Instrucciones para desbloquear'
|
||||
omniauth_callbacks:
|
||||
failure: No podemos autentificarle desde %{kind} debido a "%{reason}".
|
||||
success: Autentificado con éxito desde la cuenta %{kind} .
|
||||
passwords:
|
||||
no_token: No puede acceder a esta página sin provenir desde el correo de reinicio de contraseña. Si viene desde el correo de reinicio de contraseña, por favor asegúrese que está utilizando la dirección completa proporcionada.
|
||||
send_instructions: Recibirá un correo electrónico con instrucciones sobre cómo reiniciar su contraseña en pocos minutos.
|
||||
send_paranoid_instructions: Si su correo electrónico existe en nuestra base de datos, recibirá un enlace de recuperación de contraseña en su dirección de correo en pocos minutos.
|
||||
updated: Su contraseña ha sido cambiada con éxito. Ahora ya está registrado.
|
||||
updated_not_active: Su contraseña ha sido cambiada con éxito.
|
||||
registrations:
|
||||
destroyed: "¡Adios! Su cuenta ha sido cancelada con éxito. Esperamos verle pronto de nuevo."
|
||||
signed_up: "¡Bienvenido! Se ha registrado con éxito."
|
||||
signed_up_but_inactive: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta no ha sido activada todavía.
|
||||
signed_up_but_locked: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta está bloqueada.
|
||||
signed_up_but_pending: Un mensaje con un enlace de confirmacion ha sido enviado a su direccion de email. Luego de clickear el link revisaremos su aplicacion. Seras notificado si es aprovada.
|
||||
signed_up_but_unconfirmed: Un mensaje con un enlace de confirmación ha sido enviado a su correo electrónico. Por favor siga el enlace para activar su cuenta.
|
||||
update_needs_confirmation: Ha actualizado su cuenta con éxito, pero necesitamos verificar su nueva dirección de correo. Por favor compruebe su correo y siga el enlace para confirmar su nueva dirección de correo.
|
||||
updated: su cuenta ha sido actualizada con éxito.
|
||||
sessions:
|
||||
already_signed_out: Cerró sesión con éxito.
|
||||
signed_in: Se registró con éxito.
|
||||
signed_out: Cerró sesión con éxito.
|
||||
unlocks:
|
||||
send_instructions: Recibirá un correo electrónico con instrucciones sobre cómo desbloquear su cuenta en pocos minutos.
|
||||
send_paranoid_instructions: Si su cuenta existe, recibirá un correo electrónico con instrucciones sobre cómo desbloquearla en pocos minutos.
|
||||
unlocked: Su cuenta ha sido desbloqueada con éxito. Por favor inicie sesión para continuar.
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed: ya fue confirmado, por favor intente iniciar sesión
|
||||
confirmation_period_expired: necesita ser confirmado dentro de %{period}, por favor pida una nueva
|
||||
expired: ha expirado, por favor pida una nueva
|
||||
not_found: no encontrado
|
||||
not_locked: no fue bloqueada
|
||||
not_saved:
|
||||
one: '1 error prohibió este %{resource} de ser guardado:'
|
||||
other: "%{count} errores prohibieron este %{resource} de ser guardado:"
|
||||
es-AR:
|
||||
|
@ -46,6 +46,18 @@ hu:
|
||||
extra: Amennyiben nem te kezdeményezted a módosítást, kérjük tekintsd ezt az e-mailt tárgytalannak. A Mastodon fiókodhoz tartozó jelszavad változatlan marad mindaddig, amíg újat nem hozol létre a fenti linkre kattintva.
|
||||
subject: 'Mastodon: Jelszó visszaállítási lépések'
|
||||
title: Jelszó visszaállítása
|
||||
two_factor_disabled:
|
||||
explanation: A fiókod kétlépcsős hitelesítését letiltottuk. A bejelentkezés most már csak e-mail címmel és jelszóval lehetséges.
|
||||
subject: Kétlépcsős azonosítás letiltva
|
||||
title: Kétlépcsős hitelesítés engedélyezve
|
||||
two_factor_enabled:
|
||||
explanation: Kétlépcsős hitelesítés engedélyezve van a fiókodban. Bejelentkezéshez a párosított TOTP alkalmazás által létrehozott tokenre lesz szükség.
|
||||
subject: Kétlépcsős azonosítás engedélyezve
|
||||
title: Kétlépcsős hitelesítés engedélyezve
|
||||
two_factor_recovery_codes_changed:
|
||||
explanation: A korábbi helyreállítási kódokat letiltottuk, és újakat generáltunk.
|
||||
subject: Kétlépcsős helyreállítási kódok újra létrejöttek
|
||||
title: A kétlépcsős kódok megváltozott
|
||||
unlock_instructions:
|
||||
subject: 'Mastodon: Feloldási lépések'
|
||||
omniauth_callbacks:
|
||||
|
@ -46,6 +46,18 @@ ja:
|
||||
extra: この要求に心当たりがない場合、このメールを無視してください。上記リンク先にアクセスし新しいものを作成するまでパスワードは変更されません。
|
||||
subject: 'Mastodon: パスワード再発行'
|
||||
title: パスワード再発行
|
||||
two_factor_disabled:
|
||||
explanation: あなたのアカウントの二段階認証が無効化されました。メールとパスワードのみでログインできます。
|
||||
subject: 'Mastodon: 二段階認証が無効になりました'
|
||||
title: 二段階認証が無効化されました
|
||||
two_factor_enabled:
|
||||
explanation: あなたのアカウントの二段階認証が有効化されました。ログインするには TOTP アプリで生成されたコードが必要です。
|
||||
subject: 'Mastodon: 二段階認証が有効になりました'
|
||||
title: 二段階認証が有効化されました
|
||||
two_factor_recovery_codes_changed:
|
||||
explanation: 以前のリカバリーコードが無効化され、新しいコードが生成されました。
|
||||
subject: 'Mastodon: 二段階認証のリカバリーコードが再生成されました'
|
||||
title: 二段階認証のリカバリーコードが変更されました
|
||||
unlock_instructions:
|
||||
subject: 'Mastodon: アカウントのロックの解除'
|
||||
omniauth_callbacks:
|
||||
|
@ -133,7 +133,7 @@ ar:
|
||||
read:search: البحث مكانك
|
||||
read:statuses: رؤية كافة المنشورات
|
||||
write: تغيير كافة بيانات حسابك
|
||||
write:accounts: تعديل ملفك الشخصي
|
||||
write:accounts: تعديل صفحتك التعريفية
|
||||
write:blocks: حجب الحسابات و النطاقات
|
||||
write:favourites: الإعجاب بمنشورات
|
||||
write:filters: إنشاء عوامل تصفية
|
||||
|
@ -1,148 +1 @@
|
||||
---
|
||||
es:
|
||||
activerecord:
|
||||
attributes:
|
||||
doorkeeper/application:
|
||||
name: Nombre de aplicación
|
||||
redirect_uri: URI para redirección
|
||||
scopes: Ámbitos
|
||||
website: Sitio web
|
||||
errors:
|
||||
models:
|
||||
doorkeeper/application:
|
||||
attributes:
|
||||
redirect_uri:
|
||||
fragment_present: no puede contener un fragmento.
|
||||
invalid_uri: debe ser un URI válido.
|
||||
relative_uri: debe ser una URI absoluta.
|
||||
secured_uri: debe ser un URI HTTPS/SSL.
|
||||
doorkeeper:
|
||||
applications:
|
||||
buttons:
|
||||
authorize: Autorizar
|
||||
cancel: Cancelar
|
||||
destroy: Destruir
|
||||
edit: Editar
|
||||
submit: Enviar
|
||||
confirmations:
|
||||
destroy: "¿Está seguro?"
|
||||
edit:
|
||||
title: Editar aplicación
|
||||
form:
|
||||
error: "¡Uuups! Compruebe su formulario"
|
||||
help:
|
||||
native_redirect_uri: Utilice %{native_redirect_uri} para pruebas locales
|
||||
redirect_uri: Utilice una línea por URI
|
||||
scopes: Separe los ámbitos con espacios. Déjelo en blanco para utilizar los ámbitos por defecto.
|
||||
index:
|
||||
application: Aplicación
|
||||
callback_url: URL de callback
|
||||
delete: Eliminar
|
||||
name: Nombre
|
||||
new: Nueva aplicación
|
||||
scopes: Ámbitos
|
||||
show: Mostrar
|
||||
title: Sus aplicaciones
|
||||
new:
|
||||
title: Nueva aplicación
|
||||
show:
|
||||
actions: Acciones
|
||||
application_id: Id de la aplicación
|
||||
callback_urls: URLs de callback
|
||||
scopes: Ámbitos
|
||||
secret: Secreto
|
||||
title: 'Aplicación: %{name}'
|
||||
authorizations:
|
||||
buttons:
|
||||
authorize: Autorizar
|
||||
deny: Desautorizar
|
||||
error:
|
||||
title: Ha ocurrido un error
|
||||
new:
|
||||
able_to: Será capaz de
|
||||
prompt: La aplicación %{client_name} solicita tener acceso a su cuenta
|
||||
title: Se requiere autorización
|
||||
show:
|
||||
title: Copia este código de autorización y pégalo en la aplicación.
|
||||
authorized_applications:
|
||||
buttons:
|
||||
revoke: Revocar
|
||||
confirmations:
|
||||
revoke: "¿Está seguro?"
|
||||
index:
|
||||
application: Aplicación
|
||||
created_at: Creado el
|
||||
date_format: "%A-%m-%d %H:%M:%S"
|
||||
scopes: Ámbitos
|
||||
title: Sus aplicaciones autorizadas
|
||||
errors:
|
||||
messages:
|
||||
access_denied: El propietario del recurso o servidor de autorización denegó la petición.
|
||||
credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso falló debido a que Doorkeeper.configure.resource_owner_from_credentials está sin configurar.
|
||||
invalid_client: La autentificación del cliente falló debido o a que es un cliente desconocido o no está incluída la autentificación del cliente o el método de autentificación no está confirmado.
|
||||
invalid_grant: La concesión de autorización ofrecida es inválida, venció, se revocó, no coincide con la URI de redirección utilizada en la petición de autorización, o fue emitida para otro cliente.
|
||||
invalid_redirect_uri: La URI de redirección incluida no es válida.
|
||||
invalid_request: En la petición falta un parámetro necesario o incluye un valor de parámetro no soportado o tiene otro tipo de formato incorrecto.
|
||||
invalid_resource_owner: Las credenciales proporcionadas del propietario del recurso no son válidas, o el propietario del recurso no puede ser encontrado
|
||||
invalid_scope: El ámbito pedido es inválido, desconocido o erróneo.
|
||||
invalid_token:
|
||||
expired: El autentificador de acceso expiró
|
||||
revoked: El autentificador de acceso fue revocado
|
||||
unknown: El autentificador de acceso es inválido
|
||||
resource_owner_authenticator_not_configured: El propietario del recurso falló debido a que Doorkeeper.configure.resource_owner_authenticator está sin configurar.
|
||||
server_error: El servidor de la autorización entontró una condición inesperada que le impidió cumplir con la solicitud.
|
||||
temporarily_unavailable: El servidor de la autorización es actualmente incapaz de manejar la petición debido a una sobrecarga temporal o un trabajo de mantenimiento del servidor.
|
||||
unauthorized_client: El cliente no está autorizado a realizar esta petición utilizando este método.
|
||||
unsupported_grant_type: El tipo de concesión de autorización no está soportado por el servidor de autorización.
|
||||
unsupported_response_type: El servidor de autorización no soporta este tipo de respuesta.
|
||||
flash:
|
||||
applications:
|
||||
create:
|
||||
notice: Aplicación creada.
|
||||
destroy:
|
||||
notice: Aplicación eliminada.
|
||||
update:
|
||||
notice: Aplicación actualizada.
|
||||
authorized_applications:
|
||||
destroy:
|
||||
notice: Aplicación revocada.
|
||||
layouts:
|
||||
admin:
|
||||
nav:
|
||||
applications: Aplicaciones
|
||||
oauth2_provider: Proveedor OAuth2
|
||||
application:
|
||||
title: OAuth autorización requerida
|
||||
scopes:
|
||||
admin:read: leer todos los datos en el servidor
|
||||
admin:read:accounts: leer información sensible de todas las cuentas
|
||||
admin:read:reports: leer información sensible de todos los informes y cuentas reportadas
|
||||
admin:write: modificar todos los datos en el servidor
|
||||
admin:write:accounts: realizar acciones de moderación en cuentas
|
||||
admin:write:reports: realizar acciones de moderación en informes
|
||||
follow: seguir, bloquear, desbloquear y dejar de seguir cuentas
|
||||
push: recibir tus notificaciones push
|
||||
read: leer los datos de tu cuenta
|
||||
read:accounts: ver información de cuentas
|
||||
read:blocks: ver a quién has bloqueado
|
||||
read:favourites: ver tus favoritos
|
||||
read:filters: ver tus filtros
|
||||
read:follows: ver a quién sigues
|
||||
read:lists: ver tus listas
|
||||
read:mutes: ver a quién has silenciado
|
||||
read:notifications: ver tus notificaciones
|
||||
read:reports: ver tus informes
|
||||
read:search: buscar en su nombre
|
||||
read:statuses: ver todos los estados
|
||||
write: publicar en tu nombre
|
||||
write:accounts: modifica tu perfil
|
||||
write:blocks: bloquear cuentas y dominios
|
||||
write:favourites: toots favoritos
|
||||
write:filters: crear filtros
|
||||
write:follows: seguir usuarios
|
||||
write:lists: crear listas
|
||||
write:media: subir archivos multimedia
|
||||
write:mutes: silenciar usuarios y conversaciones
|
||||
write:notifications: limpia tus notificaciones
|
||||
write:reports: reportar a otras personas
|
||||
write:statuses: publicar estados
|
||||
es-AR:
|
||||
|
@ -35,6 +35,9 @@ el:
|
||||
status_count_before: Που έγραψαν
|
||||
tagline: Ακολούθησε τους γνωστούς σου και ανακάλυψε νέους ανθρώπους
|
||||
terms: Όροι χρήσης
|
||||
unavailable_content: Μη διαθέσιμο
|
||||
unavailable_content_description:
|
||||
reason: 'Αιτία:'
|
||||
user_count_after:
|
||||
one: χρήστης
|
||||
other: χρήστες
|
||||
@ -235,6 +238,7 @@ el:
|
||||
disabled_msg: Επιτυχής απενεργοποίηση αυτού του emoji
|
||||
emoji: Emoji
|
||||
enable: Ενεργοποίηση
|
||||
enabled: Ενεργοποιημένα
|
||||
enabled_msg: Επιτυχής ενεργοποίηση αυτού του emoji
|
||||
image_hint: PNG έως 50KB
|
||||
listed: Αναφερθέντα
|
||||
@ -618,6 +622,10 @@ el:
|
||||
return: Δείξε το προφίλ του χρήστη
|
||||
web: Πήγαινε στο δίκτυο
|
||||
title: Ακολούθησε %{acct}
|
||||
challenge:
|
||||
confirm: Συνέχεια
|
||||
invalid_password: Μη έγκυρο συνθηματικό
|
||||
prompt: Επιβεβαίωση συνθηματικού για συνέχεια
|
||||
datetime:
|
||||
distance_in_words:
|
||||
about_x_hours: "%{count}ω"
|
||||
@ -686,7 +694,7 @@ el:
|
||||
domain_blocks: Μπλοκαρίσματα κόμβων
|
||||
follows: Ακολουθείς
|
||||
lists: Λίστες
|
||||
mutes: Αποσιωπάς
|
||||
mutes: Αποσιωπήσεις
|
||||
storage: Αποθήκευση πολυμέσων
|
||||
featured_tags:
|
||||
add_new: Προσθήκη νέας
|
||||
@ -790,6 +798,10 @@ el:
|
||||
too_many: Δεν γίνεται να προσθέσεις περισσότερα από 4 αρχεία
|
||||
migrations:
|
||||
acct: ΌνομαΧρήστη@Τομέας του νέου λογαριασμού
|
||||
cancel: Ακύρωση ανακατεύθυνσης
|
||||
errors:
|
||||
not_found: δεν βρέθηκε
|
||||
proceed_with_move: Μετακίνηση ακολούθων
|
||||
moderation:
|
||||
title: Συντονισμός
|
||||
notification_mailer:
|
||||
|
@ -242,8 +242,10 @@ en:
|
||||
disabled_msg: Successfully disabled that emoji
|
||||
emoji: Emoji
|
||||
enable: Enable
|
||||
enabled: Enabled
|
||||
enabled_msg: Successfully enabled that emoji
|
||||
image_hint: PNG up to 50KB
|
||||
list: List
|
||||
listed: Listed
|
||||
new:
|
||||
title: Add new custom emoji
|
||||
@ -252,12 +254,13 @@ en:
|
||||
shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
|
||||
title: Custom emojis
|
||||
uncategorized: Uncategorized
|
||||
unlist: Unlist
|
||||
unlisted: Unlisted
|
||||
update_failed_msg: Could not update that emoji
|
||||
updated_msg: Emoji successfully updated!
|
||||
upload: Upload
|
||||
dashboard:
|
||||
authorized_fetch_mode: Authorized fetch mode
|
||||
authorized_fetch_mode: Secure mode
|
||||
backlog: backlogged jobs
|
||||
config: Configuration
|
||||
feature_deletions: Account deletions
|
||||
@ -383,6 +386,7 @@ en:
|
||||
pending: Waiting for relay's approval
|
||||
save_and_enable: Save and enable
|
||||
setup: Setup a relay connection
|
||||
signatures_not_enabled: Relays will not work correctly while secure mode or whitelist mode is enabled
|
||||
status: Status
|
||||
title: Relays
|
||||
report_notes:
|
||||
@ -827,13 +831,16 @@ en:
|
||||
past_migrations: Past migrations
|
||||
proceed_with_move: Move followers
|
||||
redirecting_to: Your account is redirecting to %{acct}.
|
||||
set_redirect: Set redirect
|
||||
warning:
|
||||
backreference_required: The new account must first be configured to back-reference this one
|
||||
before: 'Before proceeding, please read these notes carefully:'
|
||||
cooldown: After moving there is a cooldown period during which you will not be able to move again
|
||||
disabled_account: Your current account will not be fully usable afterwards. However, you will have access to data export as well as re-activation.
|
||||
followers: This action will move all followers from the current account to the new account
|
||||
only_redirect_html: Alternatively, you can <a href="%{path}">only put up a redirect on your profile</a>.
|
||||
other_data: No other data will be moved automatically
|
||||
redirect: Your current account's profile will be updated with a redirect notice and be excluded from searches
|
||||
moderation:
|
||||
title: Moderation
|
||||
notification_mailer:
|
||||
|
@ -502,6 +502,9 @@ eo:
|
||||
context: Kunteksto
|
||||
directory: En la adresaro
|
||||
in_directory: "%{count} en adresaro"
|
||||
last_active: Lasta aktiva
|
||||
most_recent: Plej lasta
|
||||
name: Kradvorto
|
||||
review: La statuso de la recenzo
|
||||
reviewed: Recenzis
|
||||
title: Kradvortoj
|
||||
@ -530,6 +533,7 @@ eo:
|
||||
advanced_web_interface_hint: 'Se vi volas uzi la tutan larĝecon de via ekrano, la kompleksa reta interfaco permesas al vi agordi multajn malsamajn kolumnojn por vidi tiom da informoj kiom vi volas samtempe: Hejmo, sciigoj, fratara tempolinio, kaj ajna kvanto de listoj kaj kradvortoj.'
|
||||
animations_and_accessibility: Animacioj kaj alirebleco
|
||||
confirmation_dialogs: Konfirmaj fenestroj
|
||||
discovery: Eltrovo
|
||||
sensitive_content: Tikla enhavo
|
||||
application_mailer:
|
||||
notification_preferences: Ŝanĝi retmesaĝajn preferojn
|
||||
@ -552,6 +556,8 @@ eo:
|
||||
checkbox_agreement_html: Mi samopinii al la <a href="%{rules_path}" target="_blank">Servo reguloj</a> kaj <a href="%{terms_path}" target="_blank">kondiĉo al servadon</a>
|
||||
delete_account: Forigi konton
|
||||
delete_account_html: Se vi deziras forigi vian konton, vi povas <a href="%{path}">fari tion ĉi tie</a>. Vi bezonos konfirmi vian peton.
|
||||
description:
|
||||
prefix_sign_up: Registriĝi ĉe Mastodon hodiaŭ!
|
||||
didnt_get_confirmation: Ĉu vi ne ricevis la instrukciojn por konfirmi?
|
||||
forgot_password: Pasvorto forgesita?
|
||||
invalid_reset_password_token: Ĵetono por restarigi pasvorton nevalida aŭ eksvalida. Bonvolu peti novan.
|
||||
@ -586,6 +592,10 @@ eo:
|
||||
return: Montri la profilon de la uzanto
|
||||
web: Iri al reto
|
||||
title: Sekvi %{acct}
|
||||
challenge:
|
||||
confirm: Daŭrigi
|
||||
invalid_password: Nevalida pasvorto
|
||||
prompt: Konfirmi pasvorton por daŭrigi
|
||||
datetime:
|
||||
distance_in_words:
|
||||
about_x_hours: "%{count}h"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,7 +10,7 @@ fa:
|
||||
api: رابط برنامهنویسی کاربردی
|
||||
apps: اپهای موبایل
|
||||
apps_platforms: ماستدون را در iOS، اندروید، و سایر سیستمها داشته باشید
|
||||
browse_directory: در فهرست گزیدهٔ کاربران این سرور چرخی بزنید و کاربران را بر اساس علاقهمندیهایشان پیدا کنید
|
||||
browse_directory: کاربران این سرور را بر اساس علاقهمندیهایشان پیدا کنید
|
||||
browse_public_posts: فهرست لحظهای نوشتههای عمومی در ماستدون را ببینید
|
||||
contact: تماس
|
||||
contact_missing: تعیین نشده
|
||||
|
@ -242,8 +242,10 @@ fr:
|
||||
disabled_msg: Émoji désactivé avec succès !
|
||||
emoji: Émoji
|
||||
enable: Activer
|
||||
enabled: Activé
|
||||
enabled_msg: Émoji activé avec succès
|
||||
image_hint: PNG de moins de 50 Ko
|
||||
list: Liste
|
||||
listed: Listé
|
||||
new:
|
||||
title: Ajouter un nouvel émoji personnalisé
|
||||
@ -252,6 +254,7 @@ fr:
|
||||
shortcode_hint: Au moins deux caractères, seulement des caractères alphanumériques ou des tirets bas
|
||||
title: Émojis personnalisés
|
||||
uncategorized: Non catégorisé
|
||||
unlist: Délisté
|
||||
unlisted: Délisté
|
||||
update_failed_msg: N’a pas pu mettre à jour cet émoji
|
||||
updated_msg: Émoji mis à jour avec succès !
|
||||
@ -383,6 +386,7 @@ fr:
|
||||
pending: En attente de l’approbation du relai
|
||||
save_and_enable: Sauvegarder et activer
|
||||
setup: Paramétrer une connexion de relais
|
||||
signatures_not_enabled: Les relais ne fonctionneront pas correctement lorsque le mode sécurisé ou le mode liste blanche est activé
|
||||
status: Statut
|
||||
title: Relais
|
||||
report_notes:
|
||||
|
@ -35,6 +35,13 @@ hu:
|
||||
status_count_before: eddig
|
||||
tagline: Kövess barátokat és találj újakat
|
||||
terms: Felhasználási feltételek
|
||||
unavailable_content: A tartalom nem elérhető
|
||||
unavailable_content_description:
|
||||
reason: 'Indok:'
|
||||
rejecting_media: A szerverről származó médiafájlok nem kerülnek feldolgozásra, és nem jelennek meg miniatűrök, amelyek kézi átkattintást igényelnek a másik szerverre.
|
||||
silenced: A szerver hozzászólásai csak a saját hírvonalon jelennek meg, ha követik a szerzőt.
|
||||
suspended: Nem fogsz tudni követni senkit ebből a szerverből, és nem kerül feldolgozásra vagy tárolásra a tőle származó adat, és nincs adatcsere.
|
||||
unavailable_content_html: A Mastodon általában mindenféle tartalomcserét és interakciót lehetővé tesz bármelyik szerverrel a fediverzumban. Ezek azok a kivételek, melyek a mi szerverünkön érvényben vannak.
|
||||
user_count_after:
|
||||
one: felhasználónk
|
||||
other: felhasználónk
|
||||
@ -42,6 +49,8 @@ hu:
|
||||
what_is_mastodon: Mi a Mastodon?
|
||||
accounts:
|
||||
choices_html: "%{name} választásai:"
|
||||
endorsements_hint: A webes felületen jóváhagyhatod a követett embereket, és itt jelennek meg.
|
||||
featured_tags_hint: Szerepeltethetsz bizonyos hashtageket, melyek itt jelennek majd meg.
|
||||
follow: Követés
|
||||
followers:
|
||||
one: Követő
|
||||
@ -53,6 +62,7 @@ hu:
|
||||
media: Média
|
||||
moved_html: "%{name} ide költözött: %{new_profile_link}"
|
||||
network_hidden: Ez az információ nem elérhető
|
||||
never_active: Soha
|
||||
nothing_here: Nincs itt semmi!
|
||||
people_followed_by: "%{name} követettjei"
|
||||
people_who_follow: "%{name} követői"
|
||||
@ -219,10 +229,12 @@ hu:
|
||||
deleted_status: "(törölt tülk)"
|
||||
title: Audit napló
|
||||
custom_emojis:
|
||||
assign_category: Kategóriák
|
||||
by_domain: Domain
|
||||
copied_msg: Sikeresen létrehoztuk az emoji helyi másolatát
|
||||
copy: Másolás
|
||||
copy_failed_msg: Emoji helyi másolatának létrehozása sikertelen
|
||||
create_new_category: Új kategória létrehozása
|
||||
created_msg: Emoji létrehozva!
|
||||
delete: Törlés
|
||||
destroyed_msg: Emoji törlése sikeres!
|
||||
@ -239,6 +251,7 @@ hu:
|
||||
shortcode: Rövidítés
|
||||
shortcode_hint: Legalább két karakter, csak betűk, számok és alsóvonás
|
||||
title: Egyedi emojik
|
||||
uncategorized: Nem kategorizált
|
||||
unlisted: Nincs listázva
|
||||
update_failed_msg: Nem sikerült frissíteni az emojit
|
||||
updated_msg: Emoji sikeresen frissítve!
|
||||
@ -418,6 +431,16 @@ hu:
|
||||
custom_css:
|
||||
desc_html: Változtasd meg a kinézetet ebben a CSS-ben, mely minden oldalon be fog töltődni
|
||||
title: Egyedi CSS
|
||||
default_noindex:
|
||||
desc_html: Olyan felhasználókat érinti, akik nem módosították ezt a beállítást
|
||||
title: Alapértelmezésként ne indexeljék a keresők a felhasználóinkat
|
||||
domain_blocks:
|
||||
all: Mindenkinek
|
||||
disabled: Senkinek
|
||||
title: Domain tiltások megjelenitése
|
||||
users: Bejelentkezett helyi felhasználóknak
|
||||
domain_blocks_rationale:
|
||||
title: Mutasd meg az indokolást
|
||||
hero:
|
||||
desc_html: A kezdőoldalon látszik. Legalább 600x100px méret javasolt. Ha nincs beállítva, a szerver bélyegképet használjuk
|
||||
title: Hősi kép
|
||||
@ -487,6 +510,7 @@ hu:
|
||||
delete: Törlés
|
||||
nsfw_off: Szenzitív megjelölés törlése
|
||||
nsfw_on: Megjelölés szenzitív tartalomként
|
||||
deleted: Törölve
|
||||
failed_to_execute: Végrehajtás sikertelen
|
||||
media:
|
||||
title: Média
|
||||
@ -501,6 +525,10 @@ hu:
|
||||
context: Környezet
|
||||
directory: Katalógusban
|
||||
in_directory: "%{count} a katalógusban"
|
||||
last_active: Utoljára aktív
|
||||
most_popular: Legnépszerűbb
|
||||
most_recent: Legutóbbi
|
||||
name: Címke
|
||||
review: Engedélyezés állapota
|
||||
reviewed: Engedélyezett
|
||||
title: Hashtagek
|
||||
@ -526,6 +554,12 @@ hu:
|
||||
new_trending_tag:
|
||||
body: 'A #%{name} hashtag trendi a mai napon, de még nem engedélyeztük eddig. Nem mutatjuk meg nyilvánosan, hacsak nem engedélyezed. Csak simán mentsd az űrlapot, ha soha többé nem akarsz erről a hashtagről hallani.'
|
||||
subject: Új hashtag (#%{name}) engedélyezésre vár a %{instance} szerveren
|
||||
aliases:
|
||||
add_new: Alias készítése
|
||||
created_msg: Elkészült az új aliasod. Most már elkezdheted a költöztetést a régi fiókból.
|
||||
deleted_msg: Sikeresen eltávolítottad az aliast. A fiókról erre a fiókra való áttérés már nem lehetséges.
|
||||
hint_html: Ha másik fiókról kívánsz átlépni erre a fiókra, itt létrehozhatsz egy aliast, amelyre szükség van, mielőtt folytathatod a követők áthelyezését a régi fiókból erre. Ez az áthelyezés önmagában <strong>ártalmatlan és visszafordítható</strong> folyamat. <strong>A fiók áttelepítését a régi fiókból indul el. </strong>
|
||||
remove: Alias szétkapcsolása
|
||||
appearance:
|
||||
advanced_web_interface: Haladó webes felület
|
||||
advanced_web_interface_hint: 'Ha szeretnéd, a teljes képernyőszélességet felhasználhatod. A haladó webes felülettel különböző oszlopokat állíthatsz be, hogy egyszerre annyi infót láthass, amennyit csak akarsz: Saját idővonal, értesítések, föderációs idővonal, bármennyi lista vagy hashtag.'
|
||||
@ -555,6 +589,10 @@ hu:
|
||||
checkbox_agreement_without_rules_html: Egyetértek a <a href="%{terms_path}" target="_blank">felhasználási feltételekkel</a>
|
||||
delete_account: Felhasználói fiók törlése
|
||||
delete_account_html: Felhasználói fiókod törléséhez <a href="%{path}">kattints ide</a>. A rendszer újbóli megerősítést fog kérni.
|
||||
description:
|
||||
prefix_invited_by_user: "@%{name} meghív téged, hogy csatlakozz erre a Mastodon szerverre!"
|
||||
prefix_sign_up: Regisztrláj még ma a Mastodonra!
|
||||
suffix: Egy fiókkal követhetsz másokat, tülkölhetsz, eszmét cserélhetsz más Mastodon szerverek felhasználóival!
|
||||
didnt_get_confirmation: Nem kaptad meg a megerősítési lépéseket?
|
||||
forgot_password: Elfelejtetted a jelszavad?
|
||||
invalid_reset_password_token: A jelszó-visszaállítási kulcs nem megfelelő vagy lejárt. Kérlek generálj egy újat.
|
||||
@ -581,6 +619,7 @@ hu:
|
||||
confirming: Várakozás a visszaigazolásra.
|
||||
functional: A fiókod teljesen működőképes.
|
||||
pending: A jelentkezésed engedélyezésre vár. Ez eltarthat egy ideig. Kapsz egy e-mailt, ha az elbírálás megtörtént.
|
||||
redirecting_to: A fiókod inaktív, mert jelenleg ide %{acct} van átirányítva.
|
||||
trouble_logging_in: Problémád van a bejelentkezéssel?
|
||||
authorize_follow:
|
||||
already_following: Már követed ezt a felhasználót
|
||||
@ -593,6 +632,11 @@ hu:
|
||||
return: Visszatérés a felhasználó profiloldalára
|
||||
web: Megtekintés a weben
|
||||
title: "%{acct} követése"
|
||||
challenge:
|
||||
confirm: Folytatás
|
||||
hint_html: "<strong>Hasznos:</strong> Nem fogjuk megint a jelszavadat kérdezni a következő órában."
|
||||
invalid_password: Érvénytelen jelszó
|
||||
prompt: Add meg a jelszót a folytatáshoz
|
||||
datetime:
|
||||
distance_in_words:
|
||||
about_x_hours: "%{count}ó"
|
||||
@ -608,9 +652,22 @@ hu:
|
||||
x_months: "%{count}h"
|
||||
x_seconds: "%{count}mp"
|
||||
deletes:
|
||||
challenge_not_passed: A beírt információ helytelen
|
||||
confirm_password: Személyazonosságod megerősítéséhez írd be a jelenlegi jelszavad
|
||||
confirm_username: Add meg a felhasználói nevedet a jóváhagyáshoz
|
||||
proceed: Felhasználói fiók törlése
|
||||
success_msg: Felhasználói fiókod sikeresen töröltük
|
||||
warning:
|
||||
before: 'Mielőtt továbbmész, kérlek olvasd el ezt alaposan:'
|
||||
caches: Más szerverek által cache-elt tartalmak még megmaradhatnak
|
||||
data_removal: A tülkjeid és minden más adatod véglegesen törlődni fog
|
||||
email_change_html: <a href="%{path}">Megváltoztathatod az email címed</a> a fiókod törlése nélkül
|
||||
email_contact_html: Ha még mindig nem érkezik meg, emailezhetsz ide <a href="mailto:%{email}">%{email}</a> segítségért
|
||||
email_reconfirmation_html: Ha nem kaptad meg a megerősítő emailt, <a href="%{path}">itt újrakérheted</a>
|
||||
irreversible: Nem fogod tudni visszaállítani vagy újraaktiválni a fiókodat
|
||||
more_details_html: A részletekért nézd meg az <a href="%{terms_path}">adatvédelmi szabályzatot</a>.
|
||||
username_available: A fiókod ismét elérhetővé válik
|
||||
username_unavailable: A fiókod elérhetetlen marad
|
||||
directories:
|
||||
directory: Profilok
|
||||
explanation: Találj másokra érdeklődésük alapján
|
||||
@ -618,10 +675,10 @@ hu:
|
||||
domain_validator:
|
||||
invalid_domain: nem egy valódi domain név
|
||||
errors:
|
||||
'400': The request you submitted was invalid or malformed.
|
||||
'400': A küldött kérés érvénytelen vagy hibás volt.
|
||||
'403': Nincs jogosultságod az oldal megtekintéséhez.
|
||||
'404': Az általad keresett oldal nem található.
|
||||
'406': This page is not available in the requested format.
|
||||
'406': Ez az oldal a kért formátumban nem áll rendelkezésre.
|
||||
'410': Az általad keresett oldal már nem létezik.
|
||||
'422':
|
||||
content: Megerősítés sikertelen. Nem tiltottad le esetleg a sütiket?
|
||||
@ -630,7 +687,7 @@ hu:
|
||||
'500':
|
||||
content: Sajnáljuk, valami hiba történt a mi oldalunkon.
|
||||
title: Az oldal nem megfelelő
|
||||
'503': The page could not be served due to a temporary server failure.
|
||||
'503': Az oldalt nem tudjuk megmutatni átmeneti szerverprobléma miatt.
|
||||
noscript_html: A Mastodon webalkalmazás használatához engedélyezned kell a JavaScriptet. A másik megoldás, hogy kipróbálsz egy platformodnak megfelelő <a href="%{apps_path}">alkalmazást</a>.
|
||||
existing_username_validator:
|
||||
not_found: ezzel a névvel nem találtunk helyi felhasználót
|
||||
@ -654,6 +711,7 @@ hu:
|
||||
add_new: Új hozzáadása
|
||||
errors:
|
||||
limit: Már kiemelted a maximálisan engedélyezett számú hashtaget
|
||||
hint_html: "<strong>Mik a kiemelt hashtagek?</strong> Ezek állandóan megjelennek a nyilvános profilodon és lehetővé teszik, hogy mások kifejezetten az ezekhez tartozó tülkjeidet böngésszék. Jó eszköz ez kreatív munkák vagy hosszútávú projektek nyomonkövetésére."
|
||||
filters:
|
||||
contexts:
|
||||
home: Saját idővonal
|
||||
@ -674,10 +732,12 @@ hu:
|
||||
developers: Fejlesztőknek
|
||||
more: Többet…
|
||||
resources: Segédanyagok
|
||||
trending_now: Most trendi
|
||||
generic:
|
||||
all: Mind
|
||||
changes_saved_msg: A változásokat elmentettük!
|
||||
copy: Másolás
|
||||
no_batch_actions_available: Ezen az oldalon nem elérhetőek kötegelt műveletek
|
||||
order_by: Rendezés
|
||||
save_changes: Változások mentése
|
||||
validation_errors:
|
||||
@ -749,6 +809,31 @@ hu:
|
||||
too_many: Maximum négy fájlt csatolhatsz a tülkhöz
|
||||
migrations:
|
||||
acct: Az új fiók felhasznalonev@domain formátumban
|
||||
cancel: Átirányítás törlése
|
||||
cancel_explanation: Az átirányítás törlése reaktiválja a fiókodat, de nem fogja visszahozni azokat a követőidet, akik közben a másik fiókhoz kerültek át.
|
||||
cancelled_msg: Az átirányítást sikeresen töröltük.
|
||||
errors:
|
||||
already_moved: ugyanaz a fiók, ahová már elköltöztél
|
||||
missing_also_known_as: nem hivatkozza vissza ezt a fiókot
|
||||
move_to_self: nem lehet az aktuális fiók
|
||||
not_found: nem található
|
||||
on_cooldown: Még tart a türelmi idő
|
||||
followers_count: Követő a költözéskor
|
||||
incoming_migrations: Más fiókból költöző
|
||||
incoming_migrations_html: Ahhoz, hogy egy másik fiókból ebbe költözz, először <a href="%{path}">hozz létre egy fiók aliast</a>.
|
||||
moved_msg: A fiókod mostantól ide %{acct} irányít át, a követőidet átköltöztetjük.
|
||||
not_redirecting: A fiókod nincs átirányítva jelenleg sehová sem.
|
||||
on_cooldown: Nemrég költöztetted a fiókod. Ez a funkció %{count} nap múlva lesz megint elérhető.
|
||||
past_migrations: Eddigi költözések
|
||||
proceed_with_move: Követők átköltöztetése
|
||||
redirecting_to: A fiókod át van irányítva ide %{acct}.
|
||||
warning:
|
||||
backreference_required: Az új fiókot először be kell úgy állítani, hogy ezt visszahivatkozza
|
||||
before: 'Mielőtt továbbmész, olvasd el ezeket kérlek figyelmesen:'
|
||||
cooldown: A költözés után van egy türelmi idő, mely alatt nem tudsz majd újra költözni
|
||||
disabled_account: A jelenlegi fiókod nem lesz teljesen használható ezután. Viszont elérhető lesz majd az adatexport funkció, valamint a reaktiválás is.
|
||||
followers: Ez a művelet az összes követődet a jelenlegi fiókról az újra fogja költöztetni
|
||||
other_data: Más adatot nem fogunk automatikusan mozgatni
|
||||
moderation:
|
||||
title: Moderáció
|
||||
notification_mailer:
|
||||
@ -893,6 +978,7 @@ hu:
|
||||
settings:
|
||||
account: Fiók
|
||||
account_settings: Fiók beállítások
|
||||
aliases: Fiók aliasok
|
||||
appearance: Megjelenés
|
||||
authorized_apps: Jóváhagyott alkalmazások
|
||||
back: Vissza a Mastodonhoz
|
||||
@ -1072,7 +1158,9 @@ hu:
|
||||
disable: A fiókod befagyasztott állapotban megtartja minden adatát, de feloldásig nem csinálhatsz vele semmit.
|
||||
silence: A fiókod korlátozott állapotában csak a követőid láthatják a tülkjeidet, valamint nem kerülsz rá nyilvános idővonalakra. Ugyanakkor mások manuálisan még követhetnek.
|
||||
suspend: A fiókodat felfüggesztették, így minden tülköd és feltöltött fájlod menthetetlenül elveszett erről a szerverről és minden olyanról is, ahol voltak követőid.
|
||||
get_in_touch: Válaszolhatsz erre az emailre, hogy kapcsolatba lépj a %{instance} csapatával.
|
||||
review_server_policies: Szerver szabályzat átnézése
|
||||
statuses: 'Különösen hozzá:'
|
||||
subject:
|
||||
disable: A fiókodat %{acct} befagyasztották
|
||||
none: Figyelmeztetés a %{acct} fióknak
|
||||
|
@ -238,8 +238,10 @@ ja:
|
||||
disabled_msg: 絵文字を無効化しました
|
||||
emoji: 絵文字
|
||||
enable: 有効化
|
||||
enabled: 有効
|
||||
enabled_msg: 絵文字を有効化しました
|
||||
image_hint: 50KBまでのPNG画像を利用できます
|
||||
list: 表示
|
||||
listed: 収載
|
||||
new:
|
||||
title: 新規カスタム絵文字の追加
|
||||
@ -248,6 +250,7 @@ ja:
|
||||
shortcode_hint: 2文字以上の半角英数字とアンダーバーのみ利用できます
|
||||
title: カスタム絵文字
|
||||
uncategorized: 未分類
|
||||
unlist: 非表示
|
||||
unlisted: 未収載
|
||||
update_failed_msg: 絵文字を更新できませんでした
|
||||
updated_msg: 絵文字の更新に成功しました!
|
||||
@ -377,6 +380,7 @@ ja:
|
||||
pending: リレーサーバーの承認待ちです
|
||||
save_and_enable: 保存して有効にする
|
||||
setup: リレー接続を設定する
|
||||
signatures_not_enabled: セキュアモードまたはホワイトリストモードが有効の場合、リレーは正常に動作しません
|
||||
status: ステータス
|
||||
title: リレー
|
||||
report_notes:
|
||||
@ -646,9 +650,22 @@ ja:
|
||||
x_months: "%{count}月"
|
||||
x_seconds: "%{count}秒"
|
||||
deletes:
|
||||
challenge_not_passed: 入力された情報は正しくありません
|
||||
confirm_password: 本人確認のため、現在のパスワードを入力してください
|
||||
confirm_username: 確認のためユーザー名を入力してください
|
||||
proceed: アカウントを削除する
|
||||
success_msg: アカウントは正常に削除されました
|
||||
warning:
|
||||
before: '続行する前に、次の点を再度確認してください:'
|
||||
caches: 削除しても他のサーバーに残り続ける場合があります
|
||||
data_removal: あなたの投稿やその他のデータはこのサーバーから完全に削除されます
|
||||
email_change_html: アカウントを削除しなくても<a href="%{path}">メールアドレスを変更</a>できます
|
||||
email_contact_html: それでも届かない場合、<a href="mailto:%{email}">%{email}</a> までメールで問い合わせてください
|
||||
email_reconfirmation_html: 確認のメールが届かない場合、<a href="%{path}">もう一度申請</a>できます。
|
||||
irreversible: アカウントを元に戻したり復活させることはできません
|
||||
more_details_html: 詳しくは<a href="%{terms_path}">プライバシーポリシー</a>をご覧ください。
|
||||
username_available: あなたのユーザー名は再利用できるようになります
|
||||
username_unavailable: あなたのユーザー名は引き続き利用できません
|
||||
directories:
|
||||
directory: ディレクトリ
|
||||
explanation: 関心を軸にユーザーを発見しよう
|
||||
@ -718,6 +735,7 @@ ja:
|
||||
all: すべて
|
||||
changes_saved_msg: 正常に変更されました!
|
||||
copy: コピー
|
||||
no_batch_actions_available: 利用可能なバッチアクションはありません
|
||||
order_by: 並び順
|
||||
save_changes: 変更を保存
|
||||
validation_errors:
|
||||
@ -787,6 +805,31 @@ ja:
|
||||
too_many: 追加できるファイルは4つまでです
|
||||
migrations:
|
||||
acct: 引っ越し先の ユーザー名@ドメイン
|
||||
cancel: 引っ越しを取り消す
|
||||
cancel_explanation: 引っ越しを取り消すと現在のアカウントが再度有効化されますが、引き継がれたフォロワーは戻されません。
|
||||
cancelled_msg: 引っ越し設定を取り消しました。
|
||||
errors:
|
||||
already_moved: は既に引っ越したアカウントと同じです
|
||||
missing_also_known_as: はこのアカウントとエイリアスの設定がされていません
|
||||
move_to_self: 同じアカウントに引っ越すことはできません
|
||||
not_found: 見つかりませんでした
|
||||
on_cooldown: クールダウン期間中です
|
||||
followers_count: 引き継がれるフォロワー
|
||||
incoming_migrations: 別のアカウントから引っ越す
|
||||
incoming_migrations_html: 別のアカウントからこのアカウントに引っ越すには、まず<a href="%{path}">アカウントエイリアスを作成</a>する必要があります。
|
||||
moved_msg: アカウントは %{acct} に引っ越し設定されており、フォロワーは引っ越し先に引き継がれています。
|
||||
not_redirecting: アカウントは現在引っ越し設定されていません。
|
||||
on_cooldown: あなたは最近アカウントを引っ越ししています。この機能は %{count} 日後に再度利用できるようになります。
|
||||
past_migrations: 過去の引っ越し
|
||||
proceed_with_move: フォロワーを引き継ぐ
|
||||
redirecting_to: アカウントは %{acct} に引っ越し設定されています。
|
||||
warning:
|
||||
backreference_required: まずは引っ越し先のアカウントでこのアカウントに対しエイリアスを作成する必要があります
|
||||
before: '続行する前に、次の点を再度確認してください:'
|
||||
cooldown: 引っ越し後はクールダウン期間があります。その間再度引っ越すことはできません
|
||||
disabled_account: 引っ越すと現在のアカウントの機能は完全には利用できなくなります。ただしデータのエクスポートと再有効化は利用できます。
|
||||
followers: この操作により、すべてのフォロワーを現在のアカウントから新しいアカウントに引き継ぎます。
|
||||
other_data: その他のデータは自動的に引き継がれません
|
||||
moderation:
|
||||
title: モデレーション
|
||||
notification_mailer:
|
||||
@ -929,6 +972,7 @@ ja:
|
||||
settings:
|
||||
account: アカウント
|
||||
account_settings: セキュリティ
|
||||
aliases: アカウントエイリアス
|
||||
appearance: 外観
|
||||
authorized_apps: 認証済みアプリ
|
||||
back: Mastodon に戻る
|
||||
@ -1079,7 +1123,7 @@ ja:
|
||||
default: "%Y年%m月%d日 %H:%M"
|
||||
month: "%Y年 %b"
|
||||
two_factor_authentication:
|
||||
code_hint: 確認するには認証アプリで表示されたコードを入力してください
|
||||
code_hint: 続行するには認証アプリで表示されたコードを入力してください
|
||||
description_html: "<strong>二段階認証</strong>を有効にするとログイン時、認証アプリからコードを入力する必要があります。"
|
||||
disable: 無効
|
||||
enable: 有効
|
||||
|
@ -37,6 +37,10 @@ ko:
|
||||
unavailable_content: 이용 불가능한 컨텐츠
|
||||
unavailable_content_description:
|
||||
reason: '이유:'
|
||||
rejecting_media: 이 서버의 미디어 파일들은 처리되지 않고 썸네일또한 보이지 않게 됩니다. 수동으로 클릭하여 해당 서버로 가게 됩니다.
|
||||
silenced: 이 서버의 게시물은 작성자를 팔로우 한 경우에만 홈 피드에 나타나며 이를 제외한 어디에도 나타나지 않습니다.
|
||||
suspended: 이 서버의 아무도 팔로우 할 수 없으며, 어떤 데이터도 처리되거나 저장 되지 않고 데이터가 교환 되지도 않습니다.
|
||||
unavailable_content_html: 마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 유저와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다.
|
||||
user_count_after:
|
||||
other: 명
|
||||
user_count_before: 사용자 수
|
||||
@ -525,7 +529,7 @@ ko:
|
||||
reviewed: 심사 됨
|
||||
title: 해시태그
|
||||
trending_right_now: 지금 유행 중
|
||||
unique_uses_today: 오늘 %{count}개의 포스팅
|
||||
unique_uses_today: 오늘 %{count}명이 포스팅
|
||||
unreviewed: 심사 되지 않음
|
||||
updated_msg: 해시태그 설정이 성공적으로 갱신되었습니다
|
||||
title: 관리
|
||||
@ -546,6 +550,12 @@ ko:
|
||||
new_trending_tag:
|
||||
body: "#%{name}가 오늘 유행하고 있습니다, 하지만 심사 된 적이 없습니다. 허용하지 않는 한 공개적으로 나타나지 않습니다. 또는 그냥 저장을 눌러 더이상 나타나지 않게 할 수 있습니다."
|
||||
subject: 새 해시태그가 %{instance}에서 심사 대기 중입니다(#%{name})
|
||||
aliases:
|
||||
add_new: 별칭 만들기
|
||||
created_msg: 새 별칭이 성공적으로 만들어졌습니다. 이제 기존 계정에서 이주를 시작할 수 있습니다.
|
||||
deleted_msg: 성공적으로 별칭을 삭제했습니다. 해당 계정에서 이 계정으로의 이주는 더이상 가능하지 않습니다.
|
||||
hint_html: 다른 계정에서 이 계정으로 옮기길 원하는 경우, 여기에서 별칭을 만들 수 있습니다, 기존 계정의 팔로워를 이쪽으로 옮기고 싶은 경우 필요한 과정입니다. 이 행동 자체는 <strong>해롭지 않고 되돌리기가 가능합니다</strong>.<strong>계정 이주는 이전 계정에서 착수하게 됩니다</strong>
|
||||
remove: 별칭 연결 끊기
|
||||
appearance:
|
||||
advanced_web_interface: 고급 웹 인터페이스
|
||||
advanced_web_interface_hint: '화면의 가로폭을 가득 채우고 싶다면, 고급 웹 인터페이스는 한 번에 여러 정보를 볼 수 있도록 여러 컬럼을 설정할 수 있도록 합니다: 홈, 알림, 연합타임라인, 리스트, 해시태그 등'
|
||||
@ -605,6 +615,7 @@ ko:
|
||||
confirming: 이메일 확인 과정이 완료되기를 기다리는 중.
|
||||
functional: 계정이 완벽이 작동합니다.
|
||||
pending: 당신의 가입 신청은 스태프의 검사를 위해 대기중입니다. 이것은 시간이 다소 소요됩니다. 가입 신청이 승인 될 경우 이메일을 받게 됩니다.
|
||||
redirecting_to: 계정이 %{acct}로 리다이렉트 중이기 때문에 비활성 상태입니다.
|
||||
trouble_logging_in: 로그인 하는데 문제가 있나요?
|
||||
authorize_follow:
|
||||
already_following: 이미 이 계정을 팔로우 하고 있습니다
|
||||
@ -793,15 +804,28 @@ ko:
|
||||
migrations:
|
||||
acct: 새 계정의 username@domain
|
||||
cancel: 리디렉션 취소
|
||||
cancel_explanation: 리다이렉트를 취소하면 현재 계정이 다시 활성화 됩니다, 새 계정으로 이동한 팔로워를 되찾을 수는 없습니다.
|
||||
cancelled_msg: 리다이렉트를 성공적으로 취소했습니다.
|
||||
errors:
|
||||
already_moved: 이미 이동한 계정과 동일합니다
|
||||
missing_also_known_as: 이 계정을 역으로 참조하지 않고 있습니다
|
||||
move_to_self: 현재 계정은 사용할 수 없습니다
|
||||
not_found: 찾을 수 없습니다
|
||||
on_cooldown: 쿨다운 기간입니다
|
||||
followers_count: 이주 될 팔로워들
|
||||
incoming_migrations: 다른 계정으로부터 옮기기
|
||||
incoming_migrations_html: 다른 계정을 이 계정으로 이주하고 싶은 경우, 먼저 <a href="%{path}">계정 별칭을 만들어야 합니다</a>.
|
||||
moved_msg: 당신의 계정은 %{acct}로 리다이렉트 되고 있으며 팔로워들은 이주 될 것입니다.
|
||||
not_redirecting: 현재 이 계정은 어디로도 리다이렉트 되고 있지 않습니다.
|
||||
on_cooldown: 당신은 최근에 이미 계정을 이동했습니다. 이 기능은 %{count} 일 후에 다시 이용 가능합니다.
|
||||
past_migrations: 이전 마이그레이션
|
||||
proceed_with_move: 팔로워 이동
|
||||
redirecting_to: 당신의 계정은 %{acct} 로 리다이렉트됩니다.
|
||||
warning:
|
||||
backreference_required: 새 계정은 이 계정으로 역참조를 하도록 설정되어 있어야 합니다
|
||||
before: '진행하기 전, 주의사항을 꼼꼼히 읽어보세요:'
|
||||
cooldown: 이주 뒤에는 새로운 이주를 하지 못하는 쿨다운 기간이 존재합니다
|
||||
disabled_account: 이 계정은 완전한 사용이 불가능하게 됩니다. 하지만, 데이터 내보내기나 재활성화를 위해 접근할 수 있습니다.
|
||||
followers: 이 행동은 현재 계정의 모든 팔로워를 새 계정으로 이동시킵니다
|
||||
other_data: 다른 어떤 데이터도 자동적으로 옮겨지지 않을 것입니다
|
||||
moderation:
|
||||
|
@ -41,6 +41,7 @@ nl:
|
||||
rejecting_media: Mediabestanden van deze server worden niet verwerkt en er worden geen thumbnails getoond. Je moet handmatig naar deze server doorklikken om de mediabestanden te kunnen bekijken.
|
||||
silenced: Toots van deze server worden nergens weergegeven, behalve op jouw eigen starttijdlijn wanneer je het account volgt.
|
||||
suspended: Je bent niet in staat om iemand van deze server te volgen, en er worden geen gegevens van deze server verwerkt of opgeslagen, en met deze server uitgewisseld.
|
||||
unavailable_content_html: Met Mastodon kun je in het algemeen berichten bekijken van en communiceren met gebruikers van elke andere server in de fediverse. Dit zijn de uitzonderingen die door deze server zijn gemaakt en expliciet alleen hier gelden.
|
||||
user_count_after:
|
||||
one: gebruiker
|
||||
other: gebruikers
|
||||
@ -48,6 +49,8 @@ nl:
|
||||
what_is_mastodon: Wat is Mastodon?
|
||||
accounts:
|
||||
choices_html: 'Aanbevelingen van %{name}:'
|
||||
endorsements_hint: Je kunt mensen die je volgt in de webomgeving aanbevelen, waarna ze dan hier zullen verschijnen.
|
||||
featured_tags_hint: Je kunt specifieke hashtags uitlichten, waarna ze dan hier zullen verschijnen.
|
||||
follow: Volgen
|
||||
followers:
|
||||
one: Volger
|
||||
@ -428,6 +431,9 @@ nl:
|
||||
custom_css:
|
||||
desc_html: Het uiterlijk van deze server met CSS aanpassen
|
||||
title: Aangepaste CSS
|
||||
default_noindex:
|
||||
desc_html: Heeft invloed op alle gebruikers die deze instelling niet zelf hebben veranderd
|
||||
title: Toots van gebruikers standaard niet door zoekmachines laten indexeren
|
||||
domain_blocks:
|
||||
all: Naar iedereen
|
||||
disabled: Naar niemand
|
||||
@ -486,6 +492,7 @@ nl:
|
||||
title: Aangepaste gebruiksvoorwaarden
|
||||
site_title: Naam Mastodonserver
|
||||
spam_check_enabled:
|
||||
desc_html: Mastodon kan accounts die herhaaldelijk ongevraagde berichten versturen automatisch negeren of rapporteren. Het is mogelijk dat er foutpositieven tussen zitten.
|
||||
title: Automatische spambestrijding
|
||||
thumbnail:
|
||||
desc_html: Gebruikt als voorvertoning voor OpenGraph en de API. 1200x630px aanbevolen
|
||||
@ -495,6 +502,7 @@ nl:
|
||||
title: Tijdlijn op de voorpagina tonen
|
||||
title: Server-instellingen
|
||||
trends:
|
||||
desc_html: Eerder beoordeelde hashtags die op dit moment trending zijn openbaar tonen
|
||||
title: Trending hashtags
|
||||
statuses:
|
||||
back_to_account: Terug naar accountpagina
|
||||
@ -543,10 +551,14 @@ nl:
|
||||
body: "%{reporter} heeft %{target} gerapporteerd"
|
||||
body_remote: Iemand van %{domain} heeft %{target} gerapporteerd
|
||||
subject: Nieuwe rapportage op %{instance} (#%{id})
|
||||
new_trending_tag:
|
||||
body: 'De hashtag #%{name} is vandaag trending, maar is nog niet beoordeeld. Het wordt niet in het openbaar getoond alvorens je de hashtag goedkeurt. Je kunt ook het formulier zoals het nu is opslaan, waarna je er niks meer over zult horen.'
|
||||
subject: Nieuwe hashtag te beoordelen op %{instance} (#%{name})
|
||||
aliases:
|
||||
add_new: Alias aanmaken
|
||||
created_msg: Succesvol een nieuwe alias aangemaakt. Je kunt nu met de verhuizing vanaf het oude account beginnen.
|
||||
deleted_msg: De alias is succesvol verwijderd. Verhuizen vanaf dat account naar dit account is niet meer mogelijk.
|
||||
hint_html: Wanneer je vanaf een ander account naar dit account wilt verhuizen, kun je hier een alias aanmaken. Dit is nodig voordat je verder kunt gaan met het verhuizen van volgers van het oude naar dit nieuwe account. Deze actie is op zich <strong>ongevaarlijk en omkeerbaar</strong>. <strong>De accountmigratie wordt gestart vanaf het oude account</strong>.
|
||||
remove: Alias ontkoppelen
|
||||
appearance:
|
||||
advanced_web_interface: Geavanceerde webomgeving
|
||||
@ -574,10 +586,13 @@ nl:
|
||||
apply_for_account: Een uitnodiging aanvragen
|
||||
change_password: Wachtwoord
|
||||
checkbox_agreement_html: Ik ga akkoord met de <a href="%{rules_path}" target="_blank">regels van deze server</a> en de <a href="%{terms_path}" target="_blank">gebruiksvoorwaarden</a>
|
||||
checkbox_agreement_without_rules_html: Ik ga akkoord met de <a href="%{terms_path}" target="_blank">gebruiksvoorwaarden</a>
|
||||
delete_account: Account verwijderen
|
||||
delete_account_html: Wanneer je jouw account graag wilt verwijderen, kun je dat <a href="%{path}">hier doen</a>. We vragen jou daar om een bevestiging.
|
||||
description:
|
||||
prefix_invited_by_user: "@%{name} nodigt je hierbij uit om een account aan te maken op deze Mastodonserver!"
|
||||
prefix_sign_up: Registreer je vandaag nog op Mastodon!
|
||||
suffix: Met een account ben je in staat om mensen te volgen, berichten te plaatsen en uit te wisselen met mensen die zich op andere Mastodonservers bevinden en meer!
|
||||
didnt_get_confirmation: Geen bevestigingsinstructies ontvangen?
|
||||
forgot_password: Wachtwoord vergeten?
|
||||
invalid_reset_password_token: De code om jouw wachtwoord opnieuw in te stellen is verlopen. Vraag een nieuwe aan.
|
||||
@ -596,10 +611,15 @@ nl:
|
||||
security: Beveiliging
|
||||
set_new_password: Nieuw wachtwoord instellen
|
||||
setup:
|
||||
email_below_hint_html: Wanneer onderstaand e-mailadres niet klopt, kun je dat hier veranderen. Je ontvangt dan hierna een bevestigingsmail.
|
||||
email_settings_hint_html: De bevestigingsmail is verzonden naar %{email}. Wanneer dat e-mailadres niet klopt, kun je dat veranderen in je accountinstellingen.
|
||||
title: Instellen
|
||||
status:
|
||||
account_status: Accountstatus
|
||||
confirming: Aan het wachten totdat de e-mail is bevestigd.
|
||||
functional: Jouw account is volledig operationeel.
|
||||
pending: Jouw aanvraag moet nog worden beoordeeld door een van onze medewerkers. Dit kan misschien eventjes duren. Je ontvangt een e-mail wanneer jouw aanvraag is goedgekeurd.
|
||||
redirecting_to: Jouw account is inactief omdat het momenteel wordt doorverwezen naar %{acct}.
|
||||
trouble_logging_in: Problemen met inloggen?
|
||||
authorize_follow:
|
||||
already_following: Je volgt dit account al
|
||||
@ -614,6 +634,7 @@ nl:
|
||||
title: Volg %{acct}
|
||||
challenge:
|
||||
confirm: Doorgaan
|
||||
hint_html: "<strong>Tip:</strong> We vragen jou het komende uur niet meer naar jouw wachtwoord."
|
||||
invalid_password: Ongeldig wachtwoord
|
||||
prompt: Bevestig wachtwoord om door te gaan
|
||||
datetime:
|
||||
@ -637,6 +658,10 @@ nl:
|
||||
proceed: Account verwijderen
|
||||
success_msg: Jouw account is succesvol verwijderd
|
||||
warning:
|
||||
before: 'Lees deze tekst zorgvuldig voordat je verder gaat:'
|
||||
caches: Toots en media die op andere servers zijn opgeslagen kunnen daar achterblijven
|
||||
data_removal: Jouw toots en andere gegevens worden permanent verwijderd
|
||||
email_change_html: Je kunt <a href="%{path}">je e-mailadres wijzigen</a> zonder dat je jouw account hoeft te verwijderen
|
||||
username_available: Jouw gebruikersnaam zal weer beschikbaar komen
|
||||
username_unavailable: Jouw gebruikersnaam zal onbeschikbaar blijven
|
||||
directories:
|
||||
@ -788,7 +813,7 @@ nl:
|
||||
on_cooldown: Jouw laatste migratie is nog te kort geleden
|
||||
followers_count: Volgers op het moment van verhuizing
|
||||
incoming_migrations: Verhuizen vanaf een ander account
|
||||
incoming_migrations_html: Om te vanaf een ander account naar dit account te verhuizen, moet je eerst <a href="%{path}">een accountalias aanmaken</a>.
|
||||
incoming_migrations_html: Om vanaf een ander account naar dit account te verhuizen, dien je eerst <a href="%{path}">een accountalias aan te maken</a>.
|
||||
moved_msg: Jouw account wordt nu naar %{acct} doorverwezen en jouw volgers worden verhuisd.
|
||||
not_redirecting: Jouw account wordt momenteel niet naar een ander account doorverwezen.
|
||||
on_cooldown: Je hebt recentelijk jouw account verhuisd. Deze mogelijkheid is weer beschikbaar over %{count} dagen.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user